1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
From: <benoit.mortier@opensides.be>
Subject: argument parsing (-tunnel) broken
--- vncsnapshot-1.2a.orig/tunnel.c
+++ vncsnapshot-1.2a/tunnel.c
@@ -106,6 +106,8 @@
if (!runCommand(cmd))
return False;
+ fprintf(stderr, "Successfully runCommand(%s)\n", cmd);
+
return True;
}
@@ -115,11 +117,16 @@
{
char *pdisplay;
+ fprintf(stderr, "processTunnelArgs:");
+ showArgs(*pargc, argv);
+
if (tunnelArgIndex >= *pargc - 1)
usage();
- pdisplay = strchr(argv[*pargc - 1], ':');
- if (pdisplay == NULL || pdisplay == argv[*pargc - 1])
+ fprintf(stderr, "tAI=%d: %s\n", tunnelArgIndex, argv[tunnelArgIndex]);
+ fprintf(stderr, "tAI+1: %s\n", argv[tunnelArgIndex+1]);
+ pdisplay = strchr(argv[tunnelArgIndex + 1], ':');
+ if (pdisplay == NULL || pdisplay == argv[tunnelArgIndex + 1])
usage();
*pdisplay++ = '\0';
@@ -130,12 +137,15 @@
if (*remotePort < 100)
*remotePort += SERVER_PORT_OFFSET;
- sprintf(lastArgv, "localhost:%d", localPort);
+ sprintf(lastArgv, "localhost::%d", localPort); /* see argsresources.c, GetArgsAndResources, Two colons comment */
- *remoteHost = argv[*pargc - 1];
- argv[*pargc - 1] = lastArgv;
+ *remoteHost = argv[tunnelArgIndex + 1];
+
+ argv[tunnelArgIndex + 1] = lastArgv;
removeArgs(pargc, argv, tunnelArgIndex, 1);
+ showArgs(*pargc, argv);
+
}
static void
--- vncsnapshot-1.2a.orig/argsresources.c
+++ vncsnapshot-1.2a/argsresources.c
@@ -337,3 +337,10 @@
*((Bool *)arg) = value;
return 1;
}
+
+void showArgs(int argc, char** argv) {
+ int i;
+ for (i=0; i<argc; i++) {
+ fprintf(stderr, "\tARGV[%d]=%s\n", i, argv[i]);
+ }
+}
|