diff --git a/nvtsrv/nvtsrv.c b/nvtsrv/nvtsrv.c index 0a2707b..9b09d22 100644 --- a/nvtsrv/nvtsrv.c +++ b/nvtsrv/nvtsrv.c @@ -12,6 +12,11 @@ #include "lib/nvt_socket.h" #include "telnet.h" + +#define HELP \ + "Usage: nvtsrv -dq\n" + + struct { unsigned char mline; tn_ctx_t *tnct; @@ -34,7 +39,7 @@ static void _tn_cli_close(void) { int i = 2; - printf("%d: fd=%d: Closed\n", i, pfds[i].fd); + nvt_log(LOG_INFO, "%d: fd=%d: Closed\n", i, pfds[i].fd); close(pfds[i].fd); pfds[i].fd = -1; nfds = 2; @@ -44,25 +49,25 @@ static void _tn_tx(void *cctx, const void *buf, int len) { int nw; - nvt_log_buf(LOG_INFO, "Tx", buf, len); + DBG2_BUF("Tx", buf, len); if (fd_cli < 0) { - printf("Write fd is closed - drop Tx\n"); + nvt_log(LOG_NOTICE, "Write fd is closed - drop Tx\n"); return; } nw = write(fd_cli, buf, len); if (nw != len) { - printf("Write failed %d != %d\n", nw, len); + nvt_log(LOG_ERR, "Write failed %d != %d\n", nw, len); _tn_cli_close(); } } static void _tn_ss(void *cctx, int signal, int value) { - printf("RFC2217 signal %d: %02x", signal, value); + nvt_log(LOG_INFO, "RFC2217 signal %d: %02x", signal, value); } static void _nvtsrv_init(void) @@ -107,22 +112,35 @@ static void _nvtsrv_set_signal_handlers(void) int main(int argc, char **argv) { - const char *s; + int opt; char buf[128]; int rc, nr, i, len; + int debug, quiet; - for (;;) + debug = quiet = 0; + + while ((opt = getopt(argc, argv, "dq")) != -1) { - s = *argv++; - argc--; - if (*s != '-') + switch (opt) + { + default: /* '?' */ + fprintf(stderr, HELP); + exit(EXIT_FAILURE); + case 'd': + debug += 1; break; + case 'q': + quiet = 1; + break; + } } + argc -= optind; + argv += optind; if (argc <= 0) _nvtsrv_usage(); - nvt_log_level(0, 10); + nvt_log_level(quiet, debug); nvt_log_dest(NVT_LOG_STDOUT); _nvtsrv_set_signal_handlers(); @@ -148,7 +166,7 @@ int main(int argc, char **argv) rc = poll(pfds, nfds, -1); if (rc < 0) { - printf("poll failed: %m\n"); + nvt_log(LOG_ERR, "poll failed: %m\n"); break; } @@ -159,8 +177,7 @@ int main(int argc, char **argv) if (nr <= 0) break; buf[nr] = 0; -// printf("%d: fd=%d: r %d: '%.*s'\n", i, pfds[i].fd, nr, nr, buf); - nvt_log_buf(LOG_INFO, "Con Rx", buf, nr); + DBG2_BUF("Con Rx", buf, nr); _nvtsrv_cmd(dd.tnct, buf, nr); } @@ -185,11 +202,9 @@ int main(int argc, char **argv) if (nr > 0) { buf[nr] = 0; - nvt_log_buf(LOG_INFO, "Rx", buf, nr); + DBG2_BUF("Rx", buf, nr); len = nr; rc = telnet_rx(dd.tnct, buf, &len); - printf("%d: fd=%d: r %d: '%.*s'\n", i, pfds[i].fd, rc, - len, buf); } } @@ -198,11 +213,12 @@ int main(int argc, char **argv) { if (pfds[2].fd >= 0) { - printf("Client already connected on fd=%d\n", pfds[2].fd); + nvt_log(LOG_NOTICE, "Client already connected on fd=%d\n", + pfds[2].fd); break; } pfds[2].fd = socket_create_server_client(pfds[i].fd); - printf("%d: fd=%d: Connected\n", 2, pfds[2].fd); + nvt_log(LOG_INFO, "%d: fd=%d: Connected\n", 2, pfds[2].fd); pfds[2].events = POLLIN; nfds = 3; _nvtsrv_init();