From 1b81e342cbed1b620dec7065b1c06b47df0b6d92 Mon Sep 17 00:00:00 2001 From: dscho Date: Mon, 19 Dec 2005 18:38:53 +0000 Subject: [PATCH] assorted fixes for MinGW32 --- client_examples/SDLvncviewer.c | 1 + libvncclient/sockets.c | 5 ++--- libvncclient/vncviewer.c | 2 +- libvncserver/main.c | 2 +- libvncserver/rfbserver.c | 2 ++ libvncserver/sockets.c | 31 +++++++++++++++++-------------- 6 files changed, 24 insertions(+), 19 deletions(-) diff --git a/client_examples/SDLvncviewer.c b/client_examples/SDLvncviewer.c index ece9507..b32c49b 100644 --- a/client_examples/SDLvncviewer.c +++ b/client_examples/SDLvncviewer.c @@ -197,6 +197,7 @@ int main(int argc,char** argv) { #endif SDL_Init(SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE); + SDL_EnableUNICODE(1); /* 16-bit: cl=rfbGetClient(5,3,2); */ cl=rfbGetClient(8,3,4); diff --git a/libvncclient/sockets.c b/libvncclient/sockets.c index aca38aa..7f350e2 100644 --- a/libvncclient/sockets.c +++ b/libvncclient/sockets.c @@ -91,12 +91,11 @@ ReadFromRFBServer(rfbClient* client, char *out, unsigned int n) diff.tv_sec--; diff.tv_usec+=1000000; } - sleep (diff.tv_sec); #ifndef __MINGW32__ - /* FIXME */ + sleep (diff.tv_sec); usleep (diff.tv_usec); #else - rfbClientErr("usleep on MinGW32 NOT IMPLEMENTED\n"); + Sleep (diff.tv_sec * 1000 + diff.tv_usec/1000); #endif } diff --git a/libvncclient/vncviewer.c b/libvncclient/vncviewer.c index 941f512..02f66f1 100644 --- a/libvncclient/vncviewer.c +++ b/libvncclient/vncviewer.c @@ -252,6 +252,7 @@ rfbBool rfbInitClient(rfbClient* client,int* argc,char** argv) { } void rfbClientCleanup(rfbClient* client) { +#ifdef LIBVNCSERVER_HAVE_LIBJPEG int i; for ( i = 0; i < 4; i++ ) { @@ -268,7 +269,6 @@ void rfbClientCleanup(rfbClient* client) { rfbClientLog("inflateEnd: %s\n", client->decompStream.msg ); } -#ifdef LIBVNCSERVER_HAVE_LIBJPEG if (client->jpegSrcManager) free(client->jpegSrcManager); #endif diff --git a/libvncserver/main.c b/libvncserver/main.c index e0c699f..cdf2bfc 100644 --- a/libvncserver/main.c +++ b/libvncserver/main.c @@ -852,7 +852,7 @@ void rfbInitServer(rfbScreenInfoPtr screen) { #ifdef WIN32 WSADATA trash; - int i=WSAStartup(MAKEWORD(2,2),&trash); + WSAStartup(MAKEWORD(2,2),&trash); #endif rfbInitSockets(screen); rfbHttpInitSockets(screen); diff --git a/libvncserver/rfbserver.c b/libvncserver/rfbserver.c index 75516fe..2b61375 100644 --- a/libvncserver/rfbserver.c +++ b/libvncserver/rfbserver.c @@ -412,7 +412,9 @@ rfbNewUDPClient(rfbScreenInfoPtr rfbScreen) void rfbClientConnectionGone(rfbClientPtr cl) { +#ifdef LIBVNCSERVER_HAVE_LIBJPEG int i; +#endif LOCK(rfbClientListMutex); diff --git a/libvncserver/sockets.c b/libvncserver/sockets.c index a225131..fb61fcd 100755 --- a/libvncserver/sockets.c +++ b/libvncserver/sockets.c @@ -84,12 +84,15 @@ int deny_severity=LOG_WARNING; #endif #if defined(WIN32) +#ifndef __MINGW32__ #pragma warning (disable: 4018 4761) -#define close closesocket +#endif #define read(sock,buf,len) recv(sock,buf,len,0) #define EWOULDBLOCK WSAEWOULDBLOCK #define ETIMEDOUT WSAETIMEDOUT #define write(sock,buf,len) send(sock,buf,len,0) +#else +#define closesocket close #endif int rfbMaxClientWait = 20000; /* time (ms) after which we decide client has @@ -185,19 +188,19 @@ void rfbShutdownSockets(rfbScreenInfoPtr rfbScreen) rfbScreen->socketState = RFB_SOCKET_SHUTDOWN; if(rfbScreen->inetdSock>-1) { - close(rfbScreen->inetdSock); + closesocket(rfbScreen->inetdSock); FD_CLR(rfbScreen->inetdSock,&rfbScreen->allFds); rfbScreen->inetdSock=-1; } if(rfbScreen->listenSock>-1) { - close(rfbScreen->listenSock); + closesocket(rfbScreen->listenSock); FD_CLR(rfbScreen->listenSock,&rfbScreen->allFds); rfbScreen->listenSock=-1; } if(rfbScreen->udpSock>-1) { - close(rfbScreen->udpSock); + closesocket(rfbScreen->udpSock); FD_CLR(rfbScreen->udpSock,&rfbScreen->allFds); rfbScreen->udpSock=-1; } @@ -256,7 +259,7 @@ rfbCheckFds(rfbScreenInfoPtr rfbScreen,long usec) #ifndef WIN32 if (fcntl(sock, F_SETFL, O_NONBLOCK) < 0) { rfbLogPerror("rfbCheckFds: fcntl"); - close(sock); + closesocket(sock); return; } #endif @@ -264,7 +267,7 @@ rfbCheckFds(rfbScreenInfoPtr rfbScreen,long usec) if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (char *)&one, sizeof(one)) < 0) { rfbLogPerror("rfbCheckFds: setsockopt"); - close(sock); + closesocket(sock); return; } @@ -273,7 +276,7 @@ rfbCheckFds(rfbScreenInfoPtr rfbScreen,long usec) STRING_UNKNOWN)) { rfbLog("Rejected connection from client %s\n", inet_ntoa(addr.sin_addr)); - close(sock); + closesocket(sock); return; } #endif @@ -364,7 +367,7 @@ rfbCloseClient(rfbClientPtr cl) #ifndef __MINGW32__ shutdown(cl->sock,SHUT_RDWR); #endif - close(cl->sock); + closesocket(cl->sock); cl->sock = -1; } TSIGNAL(cl->updateCond); @@ -395,7 +398,7 @@ rfbConnect(rfbScreenInfoPtr rfbScreen, #ifndef WIN32 if (fcntl(sock, F_SETFL, O_NONBLOCK) < 0) { rfbLogPerror("fcntl failed"); - close(sock); + closesocket(sock); return -1; } #endif @@ -403,7 +406,7 @@ rfbConnect(rfbScreenInfoPtr rfbScreen, if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (char *)&one, sizeof(one)) < 0) { rfbLogPerror("setsockopt failed"); - close(sock); + closesocket(sock); return -1; } @@ -605,15 +608,15 @@ rfbListenOnTCPPort(int port, } if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&one, sizeof(one)) < 0) { - close(sock); + closesocket(sock); return -1; } if (bind(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0) { - close(sock); + closesocket(sock); return -1; } if (listen(sock, 5) < 0) { - close(sock); + closesocket(sock); return -1; } @@ -646,7 +649,7 @@ rfbConnectToTcpAddr(char *host, } if (connect(sock, (struct sockaddr *)&addr, (sizeof(addr))) < 0) { - close(sock); + closesocket(sock); return -1; }