X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fcommand-line.c;h=b881c042ada693eece3e3d59079d491aaabcbbb6;hb=e892d5ffb5749c0534fecd903e3e6a76819f1346;hp=ca443a344972e43da8681ca47175c08edd169426;hpb=e0edde6fee279cdbbf3c179f5f50adaf0c7c7f1e;p=sliver-openvswitch.git diff --git a/lib/command-line.c b/lib/command-line.c index ca443a344..b881c042a 100644 --- a/lib/command-line.c +++ b/lib/command-line.c @@ -92,7 +92,7 @@ run_command(int argc, char *argv[], const struct command commands[]) /* Process title. */ -#ifdef __linux__ +#ifdef LINUX_DATAPATH static char *argv_start; /* Start of command-line arguments in memory. */ static size_t argv_size; /* Number of bytes of command-line arguments. */ static char *saved_proctitle; /* Saved command-line arguments. */ @@ -140,8 +140,8 @@ proctitle_init(int argc, char **argv) } } -/* Changes the name of the process, as shown by "ps", to 'format', which is - * formatted as if by printf(). */ +/* Changes the name of the process, as shown by "ps", to the program name + * followed by 'format', which is formatted as if by printf(). */ void proctitle_set(const char *format, ...) { @@ -157,7 +157,10 @@ proctitle_set(const char *format, ...) } va_start(args, format); - n = vsnprintf(argv_start, argv_size, format, args); + n = snprintf(argv_start, argv_size, "%s: ", program_name); + if (n < argv_size) { + n += vsnprintf(argv_start + n, argv_size - n, format, args); + } if (n >= argv_size) { /* The name is too long, so add an ellipsis at the end. */ strcpy(&argv_start[argv_size - 4], "..."); @@ -179,7 +182,7 @@ proctitle_restore(void) saved_proctitle = NULL; } } -#else /* !__linux__ */ +#else /* !LINUX_DATAPATH*/ /* Stubs that don't do anything on non-Linux systems. */ void @@ -187,13 +190,16 @@ proctitle_init(int argc OVS_UNUSED, char **argv OVS_UNUSED) { } +#ifndef __FreeBSD__ +/* On FreeBSD we #define this to setproctitle. */ void proctitle_set(const char *format OVS_UNUSED, ...) { } +#endif void proctitle_restore(void) { } -#endif /* !__linux__ */ +#endif /* !LINUX_DATAPATH */