summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Freeman <saurik@saurik.com>2011-10-13 04:12:18 +0000
committerJay Freeman <saurik@saurik.com>2011-10-13 04:12:18 +0000
commit4a695fc19b6c2191cba9ed1a1e95dfd16e216d3f (patch)
treeb91eab1120ef16a6a1225f26822837c6f66b850e
parentd3f34e246677f5d6bed286d4c7455cc36a2c309d (diff)
Upgrade to 0.9.8.1 of libvncserver, and fix a stupid bug in their code.
git-svn-id: http://svn.telesphoreo.org/trunk@761 514c082c-b64e-11dc-b46d-3d985efe055d
-rw-r--r--data/libvncserver/LibVNCServer-0.9.8.1.tar.gzbin0 -> 1238171 bytes
-rw-r--r--data/libvncserver/LibVNCServer-0.9.8.tar.gzbin1240804 -> 0 bytes
-rw-r--r--data/libvncserver/_metadata/version2
-rw-r--r--data/libvncserver/clsockrace.diff48
4 files changed, 49 insertions, 1 deletions
diff --git a/data/libvncserver/LibVNCServer-0.9.8.1.tar.gz b/data/libvncserver/LibVNCServer-0.9.8.1.tar.gz
new file mode 100644
index 000000000..aad3ad8d8
--- /dev/null
+++ b/data/libvncserver/LibVNCServer-0.9.8.1.tar.gz
Binary files differ
diff --git a/data/libvncserver/LibVNCServer-0.9.8.tar.gz b/data/libvncserver/LibVNCServer-0.9.8.tar.gz
deleted file mode 100644
index 789014637..000000000
--- a/data/libvncserver/LibVNCServer-0.9.8.tar.gz
+++ /dev/null
Binary files differ
diff --git a/data/libvncserver/_metadata/version b/data/libvncserver/_metadata/version
index e3e180701..b5343984c 100644
--- a/data/libvncserver/_metadata/version
+++ b/data/libvncserver/_metadata/version
@@ -1 +1 @@
-0.9.8
+0.9.8.1
diff --git a/data/libvncserver/clsockrace.diff b/data/libvncserver/clsockrace.diff
new file mode 100644
index 000000000..56b41e38e
--- /dev/null
+++ b/data/libvncserver/clsockrace.diff
@@ -0,0 +1,48 @@
+diff -ru LibVNCServer-0.9.8.1/libvncserver/main.c LibVNCServer-0.9.8.1+iPhone/libvncserver/main.c
+--- LibVNCServer-0.9.8.1/libvncserver/main.c 2011-10-12 16:52:18.000000000 +0000
++++ LibVNCServer-0.9.8.1+iPhone/libvncserver/main.c 2011-10-13 04:09:56.000000000 +0000
+@@ -517,24 +517,26 @@
+ struct timeval tv;
+ int n;
+
+- if (cl->sock == -1) {
++ int sock = cl->sock;
++
++ if (sock == -1) {
+ /* Client has disconnected. */
+ break;
+ }
+
+ FD_ZERO(&rfds);
+- FD_SET(cl->sock, &rfds);
++ FD_SET(sock, &rfds);
+ FD_ZERO(&efds);
+- FD_SET(cl->sock, &efds);
++ FD_SET(sock, &efds);
+
+ /* Are we transferring a file in the background? */
+ FD_ZERO(&wfds);
+ if ((cl->fileTransfer.fd!=-1) && (cl->fileTransfer.sending==1))
+- FD_SET(cl->sock, &wfds);
++ FD_SET(sock, &wfds);
+
+ tv.tv_sec = 60; /* 1 minute */
+ tv.tv_usec = 0;
+- n = select(cl->sock + 1, &rfds, &wfds, &efds, &tv);
++ n = select(sock + 1, &rfds, &wfds, &efds, &tv);
+ if (n < 0) {
+ rfbLogPerror("ReadExact: select");
+ break;
+@@ -546,10 +548,10 @@
+ }
+
+ /* We have some space on the transmit queue, send some data */
+- if (FD_ISSET(cl->sock, &wfds))
++ if (FD_ISSET(sock, &wfds))
+ rfbSendFileTransferChunk(cl);
+
+- if (FD_ISSET(cl->sock, &rfds) || FD_ISSET(cl->sock, &efds))
++ if (FD_ISSET(sock, &rfds) || FD_ISSET(cl->sock, &efds))
+ rfbProcessClientMessage(cl);
+ }
+