BUG/MINOR: Fix search for -p argument in systemd wrapper.

Searching for the pid file in the list of arguments did not
take flags without parameters into account, like e.g. -de. Because
of this, the wrapper would use a different pid file than haproxy
if such an argument was specified before -p.

The new version can still yield a false positive for some crazy
situations, like your config file name starting with "-p", but
I think this is as good as it gets without using getopt or some
library.

Signed-off-by: Conrad Hoffmann <conrad@soundcloud.com>
This commit is contained in:
Conrad Hoffmann 2014-07-28 23:22:43 +02:00 committed by Willy Tarreau
parent e468d55998
commit eb2cf45b72

View File

@ -130,11 +130,8 @@ static void sigint_handler(int signum __attribute__((unused)))
static void init(int argc, char **argv) static void init(int argc, char **argv)
{ {
while (argc > 1) { while (argc > 1) {
if (**argv == '-') { if ((*argv)[0] == '-' && (*argv)[1] == 'p') {
char *flag = *argv + 1; pid_file = *(argv + 1);
--argc; ++argv;
if (*flag == 'p')
pid_file = *argv;
} }
--argc; ++argv; --argc; ++argv;
} }