Add flag to run in foreground - sdhcp - simple dhcp client | |
git clone git://git.codemadness.org/sdhcp | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
commit 6453b6d68c6452bb0731b3250e308d4e6750dbec | |
parent 4716991b7cf1cf79d3ddf27b16690ccb37e863b7 | |
Author: Michael Forney <[email protected]> | |
Date: Mon, 27 Apr 2015 01:00:03 +0000 | |
Add flag to run in foreground | |
Diffstat: | |
M sdhcp.1 | 3 +++ | |
M sdhcp.c | 8 ++++++-- | |
2 files changed, 9 insertions(+), 2 deletions(-) | |
--- | |
diff --git a/sdhcp.1 b/sdhcp.1 | |
@@ -28,6 +28,9 @@ don't change interface information such as an IP address. | |
.TP | |
.B "\-e program" | |
run program. Variables will be set, see VARIABLES. | |
+.TP | |
+.B \-f | |
+run in foreground. | |
.SH VARIABLES | |
.LP | |
The following variables are set: | |
diff --git a/sdhcp.c b/sdhcp.c | |
@@ -97,6 +97,7 @@ static unsigned long t1; | |
static int dflag = 1; /* change DNS in /etc/resolv.conf ? */ | |
static int iflag = 1; /* set IP ? */ | |
+static int fflag = 0; /* run in foreground */ | |
#define IP(a,b,c,d) (unsigned char[4]){a,b,c,d} | |
@@ -392,7 +393,7 @@ Requesting: | |
} | |
Bound: | |
fputs("Congrats! You should be on the 'net.\n", stdout); | |
- if(!forked) { | |
+ if(!fflag && !forked) { | |
if(fork()) | |
exit(EXIT_SUCCESS); | |
forked = 1; | |
@@ -439,7 +440,7 @@ static void cleanexit(int unused) { | |
static void | |
usage(void) { | |
- eprintf("usage: sdhcp [-i] [-d] [-e program] [ifname] [clientid]\n"); | |
+ eprintf("usage: sdhcp [-i] [-d] [-f] [-e program] [ifname] [clientid]\… | |
} | |
int | |
@@ -460,6 +461,9 @@ main(int argc, char *argv[]) | |
case 'd': /* don't update DNS in/etc/resolv.conf */ | |
dflag = 0; | |
break; | |
+ case 'f': /* run in foreground */ | |
+ fflag = 1; | |
+ break; | |
default: | |
usage(); | |
break; |