From 207a3f9e9e1ec8952dcecb36a6bfb079c6fad7cf Mon Sep 17 00:00:00 2001 From: kapyar Date: Fri, 10 Oct 2003 20:40:53 +0000 Subject: [PATCH] Mostly cosmetical changes in switches handling --- src/main.c | 106 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 63 insertions(+), 43 deletions(-) diff --git a/src/main.c b/src/main.c index b89513a..b8c6ce4 100644 --- a/src/main.c +++ b/src/main.c @@ -28,10 +28,12 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: main.c,v 1.2 2003/09/27 13:22:52 kapyar Exp $ + * $Id: main.c,v 1.3 2003/10/10 20:40:53 kapyar Exp $ */ #include "globals.h" +#include "string.h" +#include "errno.h" #include "cfg.h" #include "tty.h" #include "sock.h" @@ -42,6 +44,7 @@ # include "log.h" #endif +extern char logfullname[]; int isdaemon = TRUE; void usage(char *exename); @@ -96,35 +99,36 @@ daemon(nochdir, noclose) void usage(char *exename) { - printf("%s-%s copyright (c) Victor Antonovich, 2002-2003 // 2:5055/124.13@fidonet\n" - "usage: %s [] \n" - "-h this help\n" - "-d don't daemonize\n" + printf("%s-%s Copyright (C) 2002, 2003 Victor Antonovich \n\n" + "Usage: %s [-h] [-d] [-v level] [-L name] [-p name] [-s value] [-P number]\n" + " [-C number] [-N number] [-R value] [-W value] [-T value]\n\n" + " -h this help\n" + " -d don't daemonize\n" #ifdef LOG #ifdef DEBUG - "-v set log level (0-9, default %d, 0 - errors only)\n" + " -v set log level (0-9, default %d, 0 - errors only)\n" #else - "-v set log level (0-2, default %d, 0 - errors only)\n" + " -v set log level (0-2, default %d, 0 - errors only)\n" #endif - "-L set log file name (default %s%s)\n" + " -L set log file name (default %s%s)\n" #endif - "-p set serial port device name (default %s)\n" - "-s set serial port speed (default %d)\n" + " -p set serial port device name (default %s)\n" + " -s set serial port speed (default %d)\n" #ifdef TRXCTL - "-t force RTS RS-485 transmitting/receiving control\n" + " -t force RTS RS-485 transmitting/receiving control\n" #endif - "-P set TCP server port number (default %d)\n" - "-C set number of simultaneous connections\n" - " (1-128, default %d)\n" - "-N set number of request retries\n" - " (0-15, default %d, 0 - without retries)\n" - "-R set pause between requests, millisecs\n" - " (1-10000, default %lu)\n" - "-W set response wait time, millisecs\n" - " (1-10000, default %lu)\n" - "-T set connection timeout value, secs\n" - " (0-1000, default %d, 0 - no timeout)" - "\n", PACKAGE, VERSION, exename, + " -P set TCP server port number (default %d)\n" + " -C set maximum number of simultaneous connections\n" + " (1-128, default %d)\n" + " -N set maximum number of request retries\n" + " (0-15, default %d, 0 - without retries)\n" + " -R set pause between requests in milliseconds\n" + " (1-10000, default %lu)\n" + " -W set response wait time in milliseconds\n" + " (1-10000, default %lu)\n" + " -T set connection timeout value in seconds\n" + " (0-1000, default %d, 0 - no timeout)" + "\n", PACKAGE, VERSION, exename, #ifdef LOG cfg.dbglvl, LOGPATH, LOGNAME, #endif @@ -137,10 +141,17 @@ int main(int argc, char *argv[]) { int err = 0, rc; + char *exename; + sig_init(); cfg_init(); - /* command line parsing */ + if ((exename = strrchr(argv[0], '/')) == NULL) + exename = argv[0]; + else + exename++; + + /* command line argument list parsing */ while ((rc = getopt(argc, argv, "dh" #ifdef TRXCTL @@ -153,6 +164,8 @@ main(int argc, char *argv[]) { switch (rc) { + case '?': + exit(-1); case 'd': isdaemon = FALSE; break; @@ -167,13 +180,13 @@ main(int argc, char *argv[]) #ifdef DEBUG if (cfg.dbglvl < 0 || cfg.dbglvl > 9) { /* report about invalid log level */ - printf("-v: invalid loglevel" - " (%d, must be 0-9)\n", cfg.dbglvl); + printf("%s: -v: invalid loglevel value" + " (%d, must be 0-9)\n", exename, cfg.dbglvl); #else if (cfg.dbglvl < 0 || cfg.dbglvl > 9) { /* report about invalid log level */ - printf("-v: invalid loglevel" - " (%d, must be 0-2)\n", cfg.dbglvl); + printf("%s: -v: invalid loglevel value" + " (%d, must be 0-2)\n", exename, cfg.dbglvl); #endif exit(-1); } @@ -190,8 +203,8 @@ main(int argc, char *argv[]) #endif case 'p': if (*optarg != '/') - { /* concatenate given port name with default */ - /* path to devices mountpoint */ + { /* concatenate given port name with default + path to devices mountpoint */ strncpy(cfg.ttyport, "/dev/", INTBUFSIZE); strncat(cfg.ttyport, optarg, INTBUFSIZE - strlen(cfg.ttyport)); @@ -208,17 +221,17 @@ main(int argc, char *argv[]) cfg.maxconn = strtoul(optarg, NULL, 0); if (cfg.maxconn < 1 || cfg.maxconn > 128) { /* report about invalid max conn number */ - printf("-C: invalid number" - " (%d, must be 1-128)\n", cfg.maxconn); + printf("%s: -C: invalid maxconn value" + " (%d, must be 1-128)\n", exename, cfg.maxconn); exit(-1); } break; case 'N': cfg.maxtry = strtoul(optarg, NULL, 0); if (cfg.maxtry > 15) - { /* report about invalid max conn number */ - printf("-N: invalid number" - " (%d, must be 0-15)\n", cfg.maxtry); + { /* report about invalid max try number */ + printf("%s: -N: invalid maxtry value" + " (%d, must be 0-15)\n", exename, cfg.maxtry); exit(-1); } break; @@ -226,8 +239,8 @@ main(int argc, char *argv[]) cfg.rqstpause = strtoul(optarg, NULL, 0); if (cfg.rqstpause < 1 || cfg.rqstpause > 10000) { /* report about invalid rqst pause value */ - printf("-R: invalid number" - " (%lu, must be 1-10000)\n", cfg.rqstpause); + printf("%s: -R: invalid inter-request pause value" + " (%lu, must be 1-10000)\n", exename, cfg.rqstpause); exit(-1); } break; @@ -235,8 +248,8 @@ main(int argc, char *argv[]) cfg.respwait = strtoul(optarg, NULL, 0); if (cfg.respwait < 1 || cfg.respwait > 10000) { /* report about invalid resp wait value */ - printf("-W: invalid number" - " (%lu, must be 1-10000)\n", cfg.respwait); + printf("%s: -W: invalid response wait time value" + " (%lu, must be 1-10000)\n", exename, cfg.respwait); exit(-1); } break; @@ -244,18 +257,25 @@ main(int argc, char *argv[]) cfg.conntimeout = strtoul(optarg, NULL, 0); if (cfg.conntimeout > 1000) { /* report about invalid conn timeout value */ - printf("-T: invalid number" - " (%d, must be 1-1000)\n", cfg.conntimeout); + printf("%s: -T: invalid conn timeout value" + " (%d, must be 1-1000)\n", exename, cfg.conntimeout); exit(-1); } break; case 'h': - usage(argv[0]); + usage(exename); } } #ifdef LOG - log_init(cfg.logname); + if (log_init(cfg.logname) != RC_OK) + { + printf("%s: can't open logfile '%s' (%s), exiting...\n", + exename, + logfullname[0] ? logfullname : "no log name was given", + strerror(errno)); + exit(-1); + } log(2, "%s-%s started...", PACKAGE, VERSION); #endif