From c59fb1da9d80486c7f56d18070b22ba0e8f2a70e Mon Sep 17 00:00:00 2001 From: Thomas Osterried Date: Mon, 4 Jul 2016 13:09:44 +0200 Subject: beacon: new option -f: do not fork. patch submitted by Folkert van Heusden . Signed-off-by: Thomas Osterried --- ax25/beacon.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'ax25/beacon.c') diff --git a/ax25/beacon.c b/ax25/beacon.c index ca229c7..e4e4749 100644 --- a/ax25/beacon.c +++ b/ax25/beacon.c @@ -20,6 +20,8 @@ static int logging = FALSE; static int mail = FALSE; static int single = FALSE; +#define STR_USAGE "usage: beacon [-c ] [-d ] [-f] [-l] [-m] [-s] [-t interval] [-v] \n" + static void terminate(int sig) { if (logging) { @@ -37,8 +39,9 @@ int main(int argc, char *argv[]) int s, n, dlen, len, interval = 30; char *addr, *port, *message, *portcall; char *srccall = NULL, *destcall = NULL; + int dofork = 1; - while ((n = getopt(argc, argv, "c:d:lmst:v")) != -1) { + while ((n = getopt(argc, argv, "c:d:flmst:v")) != -1) { switch (n) { case 'c': srccall = optarg; @@ -46,6 +49,9 @@ int main(int argc, char *argv[]) case 'd': destcall = optarg; break; + case 'f': + dofork = 0; + break; case 'l': logging = TRUE; break; @@ -67,7 +73,7 @@ int main(int argc, char *argv[]) return 0; case '?': case ':': - fprintf(stderr, "usage: beacon [-c ] [-d ] [-l] [-m] [-s] [-t interval] [-v] \n"); + fprintf(stderr, STR_USAGE); return 1; } } @@ -75,7 +81,7 @@ int main(int argc, char *argv[]) signal(SIGTERM, terminate); if (optind == argc || optind == argc - 1) { - fprintf(stderr, "usage: beacon [-c ] [-d ] [-l] [-m] [-s] [-t interval] [-v] \n"); + fprintf(stderr, STR_USAGE); return 1; } @@ -123,7 +129,7 @@ int main(int argc, char *argv[]) } if (addr != NULL) free(addr); addr = NULL; - if (!single) { + if (!single && dofork) { if (!daemon_start(FALSE)) { fprintf(stderr, "beacon: cannot become a daemon\n"); return 1; -- cgit v1.2.3