]>
Commit | Line | Data |
---|---|---|
57875147 | 1 | Index: src/exitcode.h |
2 | --- src/exitcode.h 2 Feb 2003 12:24:29 -0000 1.13 | |
3 | +++ src/exitcode.h 2 Apr 2003 02:42:27 -0000 | |
4 | @@ -33,6 +33,7 @@ | |
5 | * codes. | |
6 | **/ | |
7 | enum dcc_exitcode { | |
8 | + EXIT_VERSION_REQUEST = 001, | |
9 | EXIT_DISTCC_FAILED = 100, /**< General failure */ | |
10 | EXIT_BAD_ARGUMENTS = 101, | |
11 | EXIT_BIND_FAILED = 102, | |
12 | Index: src/rpc.c | |
13 | --- src/rpc.c 27 Mar 2003 04:45:49 -0000 1.25 | |
14 | +++ src/rpc.c 2 Apr 2003 02:42:27 -0000 | |
15 | @@ -160,6 +160,8 @@ | |
16 | } | |
17 | ||
18 | if (memcmp(buf, expected, 4)) { | |
19 | + if (memcmp(expected, "DIST", 4) == 0 && memcmp(buf, "QVER", 4) == 0) | |
20 | + return EXIT_VERSION_REQUEST; | |
21 | rs_log_error("mismatch on token %s", expected); | |
22 | return EXIT_PROTOCOL_ERROR; | |
23 | } | |
24 | Index: src/serve.c | |
25 | --- src/serve.c 31 Mar 2003 08:36:37 -0000 1.83 | |
26 | +++ src/serve.c 2 Apr 2003 02:42:27 -0000 | |
27 | @@ -87,8 +87,11 @@ | |
28 | static int dcc_r_request_header(int ifd) | |
29 | { | |
30 | int vers; | |
31 | + int ret; | |
32 | ||
33 | - if (dcc_r_token_int(ifd, "DIST", &vers) == -1) { | |
34 | + if ((ret = dcc_r_token_int(ifd, "DIST", &vers)) != 0) { | |
35 | + if (ret == EXIT_VERSION_REQUEST) | |
36 | + return ret; | |
37 | rs_log_error("client did not provide distcc magic fairy dust"); | |
38 | return EXIT_PROTOCOL_ERROR; | |
39 | } | |
40 | @@ -260,8 +263,13 @@ | |
41 | ||
42 | if ((ret = dcc_r_request_header(netfd)) | |
43 | || (ret = dcc_r_argv(netfd, &argv)) | |
44 | - || (ret = dcc_scan_args(argv, &orig_input, &orig_output, &argv))) | |
45 | + || (ret = dcc_scan_args(argv, &orig_input, &orig_output, &argv))) { | |
46 | + if (ret == EXIT_VERSION_REQUEST) { | |
47 | + rs_trace("send %s", PACKAGE_VERSION); | |
48 | + return dcc_writex(netfd, PACKAGE_VERSION, strlen(PACKAGE_VERSION)); | |
49 | + } | |
50 | return ret; | |
51 | + } | |
52 | ||
53 | /* TODO: Make sure cleanup is called in case of error. | |
54 | * |