aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/akcom-udpechod.c35
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
149struct app_config 149struct 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};
164static struct app_config cnf = 163static 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};
177static 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
914void my_usage(void) 913void 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}