diff options
| -rw-r--r-- | src/akcom-udpechod.c | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/src/akcom-udpechod.c b/src/akcom-udpechod.c index d74d619..8012281 100644 --- a/src/akcom-udpechod.c +++ b/src/akcom-udpechod.c | |||
| @@ -148,7 +148,6 @@ static int should_stop = 0; | |||
| 148 | 148 | ||
| 149 | struct app_config | 149 | struct app_config |
| 150 | { | 150 | { |
| 151 | const char * prog_name; | ||
| 152 | const char * pidfile; | 151 | const char * pidfile; |
| 153 | uint16_t port; // UDP port number | 152 | uint16_t port; // UDP port number |
| 154 | uint16_t echoplus; // enable echo plus | 153 | uint16_t echoplus; // enable echo plus |
| @@ -163,7 +162,6 @@ struct app_config | |||
| 163 | }; | 162 | }; |
| 164 | static struct app_config cnf = | 163 | static struct app_config cnf = |
| 165 | { | 164 | { |
| 166 | .prog_name = "a.out", | ||
| 167 | .pidfile = "/var/run/" PROGRAM_NAME ".pid", | 165 | .pidfile = "/var/run/" PROGRAM_NAME ".pid", |
| 168 | .port = 30006, | 166 | .port = 30006, |
| 169 | .echoplus = 0, | 167 | .echoplus = 0, |
| @@ -176,6 +174,7 @@ static struct app_config cnf = | |||
| 176 | .uid = 0, | 174 | .uid = 0, |
| 177 | .gid = 0, | 175 | .gid = 0, |
| 178 | }; | 176 | }; |
| 177 | static const char * prog_name = "a.out"; | ||
| 179 | 178 | ||
| 180 | 179 | ||
| 181 | ////////////////// | 180 | ////////////////// |
| @@ -257,9 +256,9 @@ int main(int argc, char * argv[]) | |||
| 257 | }; | 256 | }; |
| 258 | 257 | ||
| 259 | // determines program name | 258 | // determines program name |
| 260 | cnf.prog_name = argv[0]; | 259 | prog_name = argv[0]; |
| 261 | if ((ptr = rindex(argv[0], '/')) != NULL) | 260 | if ((ptr = rindex(argv[0], '/')) != NULL) |
| 262 | cnf.prog_name = &ptr[1]; | 261 | prog_name = &ptr[1]; |
| 263 | 262 | ||
| 264 | // process arguments | 263 | // process arguments |
| 265 | //while ((c = getopt(argc, argv, "d:D:eEhnp:P:vV")) != -1) | 264 | //while ((c = getopt(argc, argv, "d:D:eEhnp:P:vV")) != -1) |
| @@ -318,9 +317,9 @@ int main(int argc, char * argv[]) | |||
| 318 | if ((gr = getgrnam(optarg)) == NULL) | 317 | if ((gr = getgrnam(optarg)) == NULL) |
| 319 | { | 318 | { |
| 320 | if (errno == 0) | 319 | if (errno == 0) |
| 321 | fprintf(stderr, "%s: invalid group specified\n", cnf.prog_name); | 320 | fprintf(stderr, "%s: invalid group specified\n", prog_name); |
| 322 | else | 321 | else |
| 323 | fprintf(stderr, "%s: getgrnam(): %s\n", cnf.prog_name, strerror(errno)); | 322 | fprintf(stderr, "%s: getgrnam(): %s\n", prog_name, strerror(errno)); |
| 324 | return(1); | 323 | return(1); |
| 325 | }; | 324 | }; |
| 326 | cnf.gid = gr->gr_gid; | 325 | cnf.gid = gr->gr_gid; |
| @@ -355,9 +354,9 @@ int main(int argc, char * argv[]) | |||
| 355 | if ((pw = getpwnam(optarg)) == NULL) | 354 | if ((pw = getpwnam(optarg)) == NULL) |
| 356 | { | 355 | { |
| 357 | if (errno == 0) | 356 | if (errno == 0) |
| 358 | fprintf(stderr, "%s: invalid user specified\n", cnf.prog_name); | 357 | fprintf(stderr, "%s: invalid user specified\n", prog_name); |
| 359 | else | 358 | else |
| 360 | fprintf(stderr, "%s: getpwnam(): %s\n", cnf.prog_name, strerror(errno)); | 359 | fprintf(stderr, "%s: getpwnam(): %s\n", prog_name, strerror(errno)); |
| 361 | return(1); | 360 | return(1); |
| 362 | }; | 361 | }; |
| 363 | cnf.uid = pw->pw_uid; | 362 | cnf.uid = pw->pw_uid; |
| @@ -368,11 +367,11 @@ int main(int argc, char * argv[]) | |||
| 368 | break; | 367 | break; |
| 369 | 368 | ||
| 370 | case 'V': | 369 | case 'V': |
| 371 | printf("%s (%s) %s\n", cnf.prog_name, PACKAGE_NAME, PACKAGE_VERSION); | 370 | printf("%s (%s) %s\n", prog_name, PACKAGE_NAME, PACKAGE_VERSION); |
| 372 | return(0); | 371 | return(0); |
| 373 | 372 | ||
| 374 | case '?': | 373 | case '?': |
| 375 | fprintf(stderr, "Try `%s --help' for more information.\n", cnf.prog_name); | 374 | fprintf(stderr, "Try `%s --help' for more information.\n", prog_name); |
| 376 | return(1); | 375 | return(1); |
| 377 | 376 | ||
| 378 | default: | 377 | default: |
| @@ -386,12 +385,12 @@ int main(int argc, char * argv[]) | |||
| 386 | cnf.uid = (cnf.uid == 0) ? getuid() : cnf.uid; | 385 | cnf.uid = (cnf.uid == 0) ? getuid() : cnf.uid; |
| 387 | if ( (cnf.gid != getgid()) && (getuid() != 0) ) | 386 | if ( (cnf.gid != getgid()) && (getuid() != 0) ) |
| 388 | { | 387 | { |
| 389 | fprintf(stderr, "%s: setgid requires root access\n", cnf.prog_name); | 388 | fprintf(stderr, "%s: setgid requires root access\n", prog_name); |
| 390 | return(1); | 389 | return(1); |
| 391 | }; | 390 | }; |
| 392 | if ( (cnf.uid != getuid()) && (getuid() != 0) ) | 391 | if ( (cnf.uid != getuid()) && (getuid() != 0) ) |
| 393 | { | 392 | { |
| 394 | fprintf(stderr, "%s: setuid requires root access\n", cnf.prog_name); | 393 | fprintf(stderr, "%s: setuid requires root access\n", prog_name); |
| 395 | return(1); | 394 | return(1); |
| 396 | }; | 395 | }; |
| 397 | 396 | ||
| @@ -682,7 +681,7 @@ int my_daemonize(void) | |||
| 682 | close(fd); | 681 | close(fd); |
| 683 | 682 | ||
| 684 | // opens syslog | 683 | // opens syslog |
| 685 | openlog(cnf.prog_name, LOG_PID | (((cnf.dont_fork)) ? LOG_PERROR : 0), cnf.facility); | 684 | openlog(prog_name, LOG_PID | (((cnf.dont_fork)) ? LOG_PERROR : 0), cnf.facility); |
| 686 | syslog(LOG_NOTICE, "%s v%s", PROGRAM_NAME, PACKAGE_VERSION); | 685 | syslog(LOG_NOTICE, "%s v%s", PROGRAM_NAME, PACKAGE_VERSION); |
| 687 | syslog(LOG_NOTICE, "echo plus enabled: %s", ((cnf.echoplus)) ? "yes" : "no"); | 686 | syslog(LOG_NOTICE, "echo plus enabled: %s", ((cnf.echoplus)) ? "yes" : "no"); |
| 688 | syslog(LOG_NOTICE, "random delay: %u us", cnf.delay); | 687 | syslog(LOG_NOTICE, "random delay: %u us", cnf.delay); |
| @@ -703,7 +702,7 @@ void my_debug(const char * fmt, ...) | |||
| 703 | if (!(cnf.verbose)) | 702 | if (!(cnf.verbose)) |
| 704 | return; | 703 | return; |
| 705 | 704 | ||
| 706 | printf("%s: ", cnf.prog_name); | 705 | printf("%s: ", prog_name); |
| 707 | 706 | ||
| 708 | va_start(args, fmt); | 707 | va_start(args, fmt); |
| 709 | vprintf(fmt, args); | 708 | vprintf(fmt, args); |
| @@ -720,7 +719,7 @@ void my_error(const char * fmt, ...) | |||
| 720 | { | 719 | { |
| 721 | va_list args; | 720 | va_list args; |
| 722 | 721 | ||
| 723 | fprintf(stderr, "%s: error: ", cnf.prog_name); | 722 | fprintf(stderr, "%s: error: ", prog_name); |
| 724 | 723 | ||
| 725 | va_start(args, fmt); | 724 | va_start(args, fmt); |
| 726 | vfprintf(stderr, fmt, args); | 725 | vfprintf(stderr, fmt, args); |
| @@ -913,7 +912,7 @@ void my_sighandler(int signum) | |||
| 913 | // display program usage | 912 | // display program usage |
| 914 | void my_usage(void) | 913 | void my_usage(void) |
| 915 | { | 914 | { |
| 916 | printf("Usage: %s [options]\n", cnf.prog_name); | 915 | printf("Usage: %s [options]\n", prog_name); |
| 917 | printf("OPTIONS:\n"); | 916 | printf("OPTIONS:\n"); |
| 918 | printf(" -d num, --drop=num set packet drop probability [0-99] (default: %u)\n", cnf.drop_perct); | 917 | printf(" -d num, --drop=num set packet drop probability [0-99] (default: %u)\n", cnf.drop_perct); |
| 919 | printf(" -D usec, --delay=usec set echo delay range to microseconds (default: %u us)\n", cnf.delay); | 918 | printf(" -D usec, --delay=usec set echo delay range to microseconds (default: %u us)\n", cnf.delay); |
| @@ -939,13 +938,13 @@ void my_usage_error(const char * fmt, ...) | |||
| 939 | { | 938 | { |
| 940 | va_list args; | 939 | va_list args; |
| 941 | 940 | ||
| 942 | fprintf(stderr, "%s: ", cnf.prog_name); | 941 | fprintf(stderr, "%s: ", prog_name); |
| 943 | 942 | ||
| 944 | va_start(args, fmt); | 943 | va_start(args, fmt); |
| 945 | vfprintf(stderr, fmt, args); | 944 | vfprintf(stderr, fmt, args); |
| 946 | va_end(args); | 945 | va_end(args); |
| 947 | 946 | ||
| 948 | fprintf(stderr, "\nTry `%s --help' for more information.\n", cnf.prog_name); | 947 | fprintf(stderr, "\nTry `%s --help' for more information.\n", prog_name); |
| 949 | 948 | ||
| 950 | return; | 949 | return; |
| 951 | } | 950 | } |
