]> git.pld-linux.org Git - packages/distcc.git/commitdiff
check client version of distccd
authormisi3k <misi3k@pld-linux.org>
Sun, 6 Apr 2003 08:37:55 +0000 (08:37 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    distccd-version.patch -> 1.1

distccd-version.patch [new file with mode: 0644]

diff --git a/distccd-version.patch b/distccd-version.patch
new file mode 100644 (file)
index 0000000..5692ff3
--- /dev/null
@@ -0,0 +1,54 @@
+Index: src/exitcode.h
+--- src/exitcode.h     2 Feb 2003 12:24:29 -0000       1.13
++++ src/exitcode.h     2 Apr 2003 02:42:27 -0000
+@@ -33,6 +33,7 @@
+  * codes.
+  **/
+ enum dcc_exitcode {
++    EXIT_VERSION_REQUEST          = 001,
+     EXIT_DISTCC_FAILED            = 100, /**< General failure */
+     EXIT_BAD_ARGUMENTS            = 101,
+     EXIT_BIND_FAILED              = 102,
+Index: src/rpc.c
+--- src/rpc.c  27 Mar 2003 04:45:49 -0000      1.25
++++ src/rpc.c  2 Apr 2003 02:42:27 -0000
+@@ -160,6 +160,8 @@
+     }
+     
+     if (memcmp(buf, expected, 4)) {
++        if (memcmp(expected, "DIST", 4) == 0 && memcmp(buf, "QVER", 4) == 0)
++            return EXIT_VERSION_REQUEST;
+         rs_log_error("mismatch on token %s", expected);
+         return EXIT_PROTOCOL_ERROR;
+     }
+Index: src/serve.c
+--- src/serve.c        31 Mar 2003 08:36:37 -0000      1.83
++++ src/serve.c        2 Apr 2003 02:42:27 -0000
+@@ -87,8 +87,11 @@
+ static int dcc_r_request_header(int ifd)
+ {
+     int vers;
++    int ret;
+     
+-    if (dcc_r_token_int(ifd, "DIST", &vers) == -1) {
++    if ((ret = dcc_r_token_int(ifd, "DIST", &vers)) != 0) {
++        if (ret == EXIT_VERSION_REQUEST)
++            return ret;
+         rs_log_error("client did not provide distcc magic fairy dust");
+         return EXIT_PROTOCOL_ERROR;
+     }
+@@ -260,8 +263,13 @@
+     if ((ret = dcc_r_request_header(netfd))
+         || (ret = dcc_r_argv(netfd, &argv))
+-        || (ret = dcc_scan_args(argv, &orig_input, &orig_output, &argv)))
++        || (ret = dcc_scan_args(argv, &orig_input, &orig_output, &argv))) {
++        if (ret == EXIT_VERSION_REQUEST) {
++            rs_trace("send %s", PACKAGE_VERSION);
++            return dcc_writex(netfd, PACKAGE_VERSION, strlen(PACKAGE_VERSION));
++        }
+         return ret;
++    }
+     
+     /* TODO: Make sure cleanup is called in case of error.
+      *
This page took 0.081479 seconds and 4 git commands to generate.