# HG changeset patch # User Jun Wu # Date 1482709794 0 # Node ID 4677df6b449a3f2ed3b3035dc6cef9df4ebe2704 # Parent fe11f466880db647315e87261b039d109515d19a chg: make "get default sockdir" a separate method The logic to get a default socket directory will become longer in the next patch. So let's move it out. diff -r fe11f466880d -r 4677df6b449a contrib/chg/chg.c --- a/contrib/chg/chg.c Sun Dec 25 23:32:11 2016 +0000 +++ b/contrib/chg/chg.c Sun Dec 25 23:49:54 2016 +0000 @@ -127,21 +127,25 @@ abortmsg("insecure sockdir %s", sockdir); } +static void getdefaultsockdir(char sockdir[], size_t size) +{ + /* by default, put socket file in secure directory + * (permission of socket file may be ignored on some Unices) */ + const char *tmpdir = getenv("TMPDIR"); + if (!tmpdir) + tmpdir = "/tmp"; + int r = snprintf(sockdir, size, "%s/chg%d", tmpdir, geteuid()); + if (r < 0 || (size_t)r >= size) + abortmsg("too long TMPDIR (r = %d)", r); +} + static void setcmdserveropts(struct cmdserveropts *opts) { int r; char sockdir[PATH_MAX]; const char *envsockname = getenv("CHGSOCKNAME"); if (!envsockname) { - /* by default, put socket file in secure directory - * (permission of socket file may be ignored on some Unices) */ - const char *tmpdir = getenv("TMPDIR"); - if (!tmpdir) - tmpdir = "/tmp"; - r = snprintf(sockdir, sizeof(sockdir), "%s/chg%d", - tmpdir, geteuid()); - if (r < 0 || (size_t)r >= sizeof(sockdir)) - abortmsg("too long TMPDIR (r = %d)", r); + getdefaultsockdir(sockdir, sizeof(sockdir)); preparesockdir(sockdir); }