summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordscho <dscho>2005-12-19 18:38:53 +0000
committerdscho <dscho>2005-12-19 18:38:53 +0000
commit1b81e342cbed1b620dec7065b1c06b47df0b6d92 (patch)
treeff90bd1ecaa9e696238637f68594256078bb4508
parent3a8d4bdbe6d264d8f93c75dc62f61ec41e9e7462 (diff)
downloadlibtdevnc-1b81e342cbed1b620dec7065b1c06b47df0b6d92.tar.gz
libtdevnc-1b81e342cbed1b620dec7065b1c06b47df0b6d92.zip
assorted fixes for MinGW32
-rw-r--r--client_examples/SDLvncviewer.c1
-rw-r--r--libvncclient/sockets.c5
-rw-r--r--libvncclient/vncviewer.c2
-rw-r--r--libvncserver/main.c2
-rw-r--r--libvncserver/rfbserver.c2
-rwxr-xr-xlibvncserver/sockets.c31
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;
}