47 lines
1.5 KiB
Diff
47 lines
1.5 KiB
Diff
diff -rup gtk-vnc-0.3.4.orig/src/gvnc.c gtk-vnc-0.3.4.new/src/gvnc.c
|
|
--- gtk-vnc-0.3.4.orig/src/gvnc.c 2008-04-03 10:16:21.000000000 -0400
|
|
+++ gtk-vnc-0.3.4.new/src/gvnc.c 2008-04-03 10:24:25.000000000 -0400
|
|
@@ -2775,6 +2775,13 @@ gboolean gvnc_is_initialized(struct gvnc
|
|
return FALSE;
|
|
}
|
|
|
|
+static gboolean gvnc_before_version (struct gvnc *gvnc, int major, int minor) {
|
|
+ return (gvnc->major < major) || (gvnc->major == major && gvnc->minor < minor);
|
|
+}
|
|
+static gboolean gvnc_after_version (struct gvnc *gvnc, int major, int minor) {
|
|
+ return !gvnc_before_version (gvnc, major, minor+1);
|
|
+}
|
|
+
|
|
gboolean gvnc_initialize(struct gvnc *gvnc, gboolean shared_flag)
|
|
{
|
|
int ret, i;
|
|
@@ -2790,18 +2797,17 @@ gboolean gvnc_initialize(struct gvnc *gv
|
|
if (ret != 2)
|
|
goto fail;
|
|
|
|
- if (gvnc->major != 3)
|
|
- goto fail;
|
|
- if (gvnc->minor != 3 &&
|
|
- gvnc->minor != 4 &&
|
|
- gvnc->minor != 5 &&
|
|
- gvnc->minor != 6 &&
|
|
- gvnc->minor != 7 &&
|
|
- gvnc->minor != 8)
|
|
- goto fail;
|
|
+ GVNC_DEBUG("Server version: %d.%d\n", gvnc->major, gvnc->minor);
|
|
|
|
- /* For UltraVNC ... */
|
|
- if (gvnc->minor > 3 && gvnc->minor < 7) gvnc->minor = 3;
|
|
+ if (gvnc_before_version(gvnc, 3, 3)) {
|
|
+ GVNC_DEBUG("Server version is not supported (%d.%d)\n", gvnc->major, gvnc->minor);
|
|
+ goto fail;
|
|
+ } else if (gvnc_before_version(gvnc, 3, 7)) {
|
|
+ gvnc->minor = 3;
|
|
+ } else if (gvnc_after_version(gvnc, 3, 8)) {
|
|
+ gvnc->major = 3;
|
|
+ gvnc->minor = 8;
|
|
+ }
|
|
|
|
snprintf(version, 12, "RFB %03d.%03d\n", gvnc->major, gvnc->minor);
|
|
gvnc_write(gvnc, version, 12);
|