# HG changeset patch # User Yuya Nishihara # Date 1538744917 -32400 # Node ID 413b6b10fdd5273463015ee73496c5df6890b636 # Parent e5fbdc3659fcdbe8968b4cdd954707a374b5d003 chg: upgrade client to use "setumask2" command No compatibility code is added to the client side, since it's unlikely for new client to communicate with the old server. diff -r e5fbdc3659fc -r 413b6b10fdd5 contrib/chg/hgclient.c --- a/contrib/chg/hgclient.c Thu Oct 04 23:25:55 2018 +0900 +++ b/contrib/chg/hgclient.c Fri Oct 05 22:08:37 2018 +0900 @@ -32,7 +32,7 @@ CAP_ATTACHIO = 0x0100, CAP_CHDIR = 0x0200, CAP_SETENV = 0x0800, - CAP_SETUMASK = 0x1000, + CAP_SETUMASK2 = 0x1000, CAP_VALIDATE = 0x2000, CAP_SETPROCNAME = 0x4000, }; @@ -48,7 +48,7 @@ {"attachio", CAP_ATTACHIO}, {"chdir", CAP_CHDIR}, {"setenv", CAP_SETENV}, - {"setumask", CAP_SETUMASK}, + {"setumask2", CAP_SETUMASK2}, {"validate", CAP_VALIDATE}, {"setprocname", CAP_SETPROCNAME}, {NULL, 0}, /* terminator */ @@ -425,10 +425,11 @@ mode_t mask = umask(0); umask(mask); - static const char command[] = "setumask\n"; - sendall(hgc->sockfd, command, sizeof(command) - 1); uint32_t data = htonl(mask); - sendall(hgc->sockfd, &data, sizeof(data)); + enlargecontext(&hgc->ctx, sizeof(data)); + memcpy(hgc->ctx.data, &data, sizeof(data)); + hgc->ctx.datasize = sizeof(data); + writeblockrequest(hgc, "setumask2"); } /*! @@ -508,7 +509,7 @@ attachio(hgc); if (hgc->capflags & CAP_CHDIR) chdirtocwd(hgc); - if (hgc->capflags & CAP_SETUMASK) + if (hgc->capflags & CAP_SETUMASK2) forwardumask(hgc); return hgc;