Show More
@@ -32,7 +32,7 b' enum { CAP_GETENCODING = 0x0001,' | |||||
32 | CAP_ATTACHIO = 0x0100, |
|
32 | CAP_ATTACHIO = 0x0100, | |
33 | CAP_CHDIR = 0x0200, |
|
33 | CAP_CHDIR = 0x0200, | |
34 | CAP_SETENV = 0x0800, |
|
34 | CAP_SETENV = 0x0800, | |
35 | CAP_SETUMASK = 0x1000, |
|
35 | CAP_SETUMASK2 = 0x1000, | |
36 | CAP_VALIDATE = 0x2000, |
|
36 | CAP_VALIDATE = 0x2000, | |
37 | CAP_SETPROCNAME = 0x4000, |
|
37 | CAP_SETPROCNAME = 0x4000, | |
38 | }; |
|
38 | }; | |
@@ -48,7 +48,7 b' static const cappair_t captable[] = {' | |||||
48 | {"attachio", CAP_ATTACHIO}, |
|
48 | {"attachio", CAP_ATTACHIO}, | |
49 | {"chdir", CAP_CHDIR}, |
|
49 | {"chdir", CAP_CHDIR}, | |
50 | {"setenv", CAP_SETENV}, |
|
50 | {"setenv", CAP_SETENV}, | |
51 | {"setumask", CAP_SETUMASK}, |
|
51 | {"setumask2", CAP_SETUMASK2}, | |
52 | {"validate", CAP_VALIDATE}, |
|
52 | {"validate", CAP_VALIDATE}, | |
53 | {"setprocname", CAP_SETPROCNAME}, |
|
53 | {"setprocname", CAP_SETPROCNAME}, | |
54 | {NULL, 0}, /* terminator */ |
|
54 | {NULL, 0}, /* terminator */ | |
@@ -425,10 +425,11 b' static void forwardumask(hgclient_t *hgc' | |||||
425 | mode_t mask = umask(0); |
|
425 | mode_t mask = umask(0); | |
426 | umask(mask); |
|
426 | umask(mask); | |
427 |
|
427 | |||
428 | static const char command[] = "setumask\n"; |
|
|||
429 | sendall(hgc->sockfd, command, sizeof(command) - 1); |
|
|||
430 | uint32_t data = htonl(mask); |
|
428 | uint32_t data = htonl(mask); | |
431 |
|
|
429 | enlargecontext(&hgc->ctx, sizeof(data)); | |
|
430 | memcpy(hgc->ctx.data, &data, sizeof(data)); | |||
|
431 | hgc->ctx.datasize = sizeof(data); | |||
|
432 | writeblockrequest(hgc, "setumask2"); | |||
432 | } |
|
433 | } | |
433 |
|
434 | |||
434 | /*! |
|
435 | /*! | |
@@ -508,7 +509,7 b' hgclient_t *hgc_open(const char *socknam' | |||||
508 | attachio(hgc); |
|
509 | attachio(hgc); | |
509 | if (hgc->capflags & CAP_CHDIR) |
|
510 | if (hgc->capflags & CAP_CHDIR) | |
510 | chdirtocwd(hgc); |
|
511 | chdirtocwd(hgc); | |
511 | if (hgc->capflags & CAP_SETUMASK) |
|
512 | if (hgc->capflags & CAP_SETUMASK2) | |
512 | forwardumask(hgc); |
|
513 | forwardumask(hgc); | |
513 |
|
514 | |||
514 | return hgc; |
|
515 | return hgc; |
General Comments 0
You need to be logged in to leave comments.
Login now