summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--x11vnc/ChangeLog3
-rw-r--r--x11vnc/README6
-rw-r--r--x11vnc/x11vnc.12
-rw-r--r--x11vnc/x11vnc.c2
-rw-r--r--x11vnc/x11vnc_defs.c2
-rw-r--r--x11vnc/xevents.c28
6 files changed, 31 insertions, 12 deletions
diff --git a/x11vnc/ChangeLog b/x11vnc/ChangeLog
index 19c5225..df0401e 100644
--- a/x11vnc/ChangeLog
+++ b/x11vnc/ChangeLog
@@ -1,3 +1,6 @@
+2007-02-18 Karl Runge <runge@karlrunge.com>
+ * x11vnc: Get ultravnc textchat working with ssvnc.
+
2007-02-16 Karl Runge <runge@karlrunge.com>
* x11vnc: add Files mode to user controlled input. more
ultra/tight filexfer tweaks. rfbversion remote control.
diff --git a/x11vnc/README b/x11vnc/README
index 657ce9a..50655c6 100644
--- a/x11vnc/README
+++ b/x11vnc/README
@@ -1,5 +1,5 @@
-x11vnc README file Date: Fri Feb 16 20:41:26 EST 2007
+x11vnc README file Date: Sun Feb 18 18:24:55 EST 2007
The following information is taken from these URLs:
@@ -10027,7 +10027,7 @@ x11vnc: a VNC server for real X displays
Here are all of x11vnc command line options:
% x11vnc -opts (see below for -help long descriptions)
-x11vnc: allow VNC connections to real X11 displays. 0.8.5 lastmod: 2007-02-16
+x11vnc: allow VNC connections to real X11 displays. 0.8.5 lastmod: 2007-02-18
x11vnc options:
-display disp -auth file -N
@@ -10140,7 +10140,7 @@ libvncserver-tight-extension options:
% x11vnc -help
-x11vnc: allow VNC connections to real X11 displays. 0.8.5 lastmod: 2007-02-16
+x11vnc: allow VNC connections to real X11 displays. 0.8.5 lastmod: 2007-02-18
(type "x11vnc -opts" to just list the options.)
diff --git a/x11vnc/x11vnc.1 b/x11vnc/x11vnc.1
index e25f83f..a68a30d 100644
--- a/x11vnc/x11vnc.1
+++ b/x11vnc/x11vnc.1
@@ -2,7 +2,7 @@
.TH X11VNC "1" "February 2007" "x11vnc " "User Commands"
.SH NAME
x11vnc - allow VNC connections to real X11 displays
- version: 0.8.5, lastmod: 2007-02-16
+ version: 0.8.5, lastmod: 2007-02-18
.SH SYNOPSIS
.B x11vnc
[OPTION]...
diff --git a/x11vnc/x11vnc.c b/x11vnc/x11vnc.c
index 77cb075..38a1fe5 100644
--- a/x11vnc/x11vnc.c
+++ b/x11vnc/x11vnc.c
@@ -3814,6 +3814,7 @@ int main(int argc, char* argv[]) {
#if LIBVNCSERVER_HAVE_FORK && LIBVNCSERVER_HAVE_SETSID
if (bg) {
+ int p, n;
if (getenv("X11VNC_LOOP_MODE_BG")) {
if (screen && screen->listenSock >= 0) {
close(screen->listenSock);
@@ -3835,7 +3836,6 @@ int main(int argc, char* argv[]) {
}
}
/* fork into the background now */
- int p, n;
if ((p = fork()) > 0) {
exit(0);
} else if (p == -1) {
diff --git a/x11vnc/x11vnc_defs.c b/x11vnc/x11vnc_defs.c
index 193b16d..3eb7b2a 100644
--- a/x11vnc/x11vnc_defs.c
+++ b/x11vnc/x11vnc_defs.c
@@ -15,7 +15,7 @@ int xtrap_base_event_type = 0;
int xdamage_base_event_type = 0;
/* date +'lastmod: %Y-%m-%d' */
-char lastmod[] = "0.8.5 lastmod: 2007-02-16";
+char lastmod[] = "0.8.5 lastmod: 2007-02-18";
/* X display info */
diff --git a/x11vnc/xevents.c b/x11vnc/xevents.c
index bf1aa8d..f69588e 100644
--- a/x11vnc/xevents.c
+++ b/x11vnc/xevents.c
@@ -1374,25 +1374,41 @@ void set_server_input(rfbClientPtr cl, int grab) {
}
void set_text_chat(rfbClientPtr cl, int len, char *txt) {
char buf[100];
+ int dochat = 1;
+ rfbClientIteratorPtr iter;
+ rfbClientPtr cl2;
- if (no_ultra_ext) {
+ if (no_ultra_ext || ! dochat) {
return;
}
+#if 0
+ rfbLog("set_text_chat: len=%d\n", len);
rfbLog("set_text_chat: len=0x%x txt='", len);
if (0 < len && len < 10000) write(2, txt, len);
fprintf(stderr, "'\n");
+#endif
if (unixpw_in_progress) {
rfbLog("set_text_chat: unixpw_in_progress, skipping.\n");
return;
}
- if (0 && len == rfbTextChatOpen) {
- if (rfbSendTextChatMessage(cl, rfbTextChatOpen, "")) {
- rfbLog("rfbSendTextChatMessage: true\n");
- } else {
- rfbLog("rfbSendTextChatMessage: false\n");
+ iter = rfbGetClientIterator(screen);
+ while( (cl2 = rfbClientIteratorNext(iter)) ) {
+ if (cl2 == cl) {
+ continue;
+ }
+ if (len == rfbTextChatOpen) {
+ rfbSendTextChatMessage(cl2, rfbTextChatOpen, "");
+ } else if (len == rfbTextChatClose) {
+ rfbSendTextChatMessage(cl2, rfbTextChatClose, "");
+ } else if (len == rfbTextChatFinished) {
+ rfbSendTextChatMessage(cl2, rfbTextChatFinished, "");
+ } else if (len <= rfbTextMaxSize) {
+ rfbSendTextChatMessage(cl2, len, txt);
}
}
+ rfbReleaseClientIterator(iter);
}
+
int get_keyboard_led_state_hook(rfbScreenInfoPtr s) {
if (unixpw_in_progress) {
rfbLog("get_keyboard_led_state_hook: unixpw_in_progress, skipping.\n");