=== modified file 'Makefile' --- Makefile 2008-08-12 23:13:41 +0000 +++ Makefile 2008-08-14 01:32:34 +0000 @@ -11,7 +11,7 @@ # FORTIFY=-D_FORTIFY_SOURCE=2 # -fstack-protector-all #COVERAGE=--coverage -OPTIMIZE=-Os +#OPTIMIZE=-Os LANGUAGE=-std=gnu99 # Do not change these two === modified file 'mandos-client.c' --- mandos-client.c 2008-08-12 16:47:22 +0000 +++ mandos-client.c 2008-08-14 01:32:34 +0000 @@ -51,7 +51,7 @@ close() */ #include /* fcntl(), F_GETFD, F_SETFD, FD_CLOEXEC */ -#include /* strtok, strlen(), strcpy(), +#include /* strsep, strlen(), strcpy(), strcat() */ #include /* errno */ #include /* struct argp_option, struct @@ -248,23 +248,33 @@ switch (key) { case 'g': if (arg != NULL){ - char *p = strtok(arg, ","); - do{ + char *p; + while((p = strsep(&arg, ",")) != NULL){ + if(strcmp(p, "") == 0){ + continue; + } addargument(getplugin(NULL, plugins), p); - p = strtok(NULL, ","); - } while (p != NULL); + } } break; case 'o': if (arg != NULL){ - char *name = strtok(arg, ":"); - char *p = strtok(NULL, ":"); - if(p != NULL){ - p = strtok(p, ","); - do{ + char *name = strsep(&arg, ":"); + if(strcmp(name, "") == 0){ + break; + } + char *opt = strsep(&arg, ":"); + if(strcmp(opt, "") == 0){ + break; + } + if(opt != NULL){ + char *p; + while((p = strsep(&opt, ",")) != NULL){ + if(strcmp(p, "") == 0){ + continue; + } addargument(getplugin(name, plugins), p); - p = strtok(NULL, ","); - } while (p != NULL); + } } } break; @@ -328,8 +338,8 @@ } plus_argv[0] = argv[0]; plus_argv[1] = NULL; - arg = strtok(plus_options, delims); /* Get first argument */ - while(arg != NULL){ + + while((arg = strsep(&plus_options, delims)) != NULL){ new_argc++; plus_argv = realloc(plus_argv, sizeof(char *) * ((unsigned int) new_argc + 1)); @@ -340,8 +350,8 @@ } plus_argv[new_argc-1] = arg; plus_argv[new_argc] = NULL; - arg = strtok(NULL, delims); /* Get next argument */ } + ret = argp_parse (&argp, new_argc, plus_argv, 0, 0, &plugin_list); if (ret == ARGP_ERR_UNKNOWN){ fprintf(stderr, "Unknown error while parsing arguments\n");