diff options
author | Russ Dill | 2003-12-15 22:11:26 +0000 |
---|---|---|
committer | Russ Dill | 2003-12-15 22:11:26 +0000 |
commit | 62419df95cd504bf5823a35194360dc4f6aa86c6 (patch) | |
tree | 72865f8ca59214680c61d481f860115592f09a5c | |
parent | 4a9e34c14867430141c1e510847df0ec91060a5d (diff) | |
download | busybox-62419df95cd504bf5823a35194360dc4f6aa86c6.zip busybox-62419df95cd504bf5823a35194360dc4f6aa86c6.tar.gz |
make udhcp work under uclinux, to an extent
-rw-r--r-- | networking/udhcp/common.c | 4 | ||||
-rw-r--r-- | networking/udhcp/script.c | 4 |
2 files changed, 7 insertions, 1 deletions
diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c index ab4fa30..babd980 100644 --- a/networking/udhcp/common.c +++ b/networking/udhcp/common.c @@ -102,6 +102,9 @@ static void exit_fun(void) void background(const char *pidfile) { +#ifdef __uClinux__ + LOG(LOG_ERR, "Cannot background in uclinux (yet)"); +#else /* __uClinux__ */ int pid_fd = -1; if (pidfile) { @@ -131,6 +134,7 @@ void background(const char *pidfile) lockf(pid_fd, F_UNLCK, 0); close(pid_fd); } +#endif /* __uClinux__ */ } /* Signal handler */ diff --git a/networking/udhcp/script.c b/networking/udhcp/script.c index 7876dd3..0f2a21c 100644 --- a/networking/udhcp/script.c +++ b/networking/udhcp/script.c @@ -225,7 +225,7 @@ void run_script(struct dhcpMessage *packet, const char *name) return; /* call script */ - pid = fork(); + pid = vfork(); if (pid) { waitpid(pid, NULL, 0); return; @@ -235,7 +235,9 @@ void run_script(struct dhcpMessage *packet, const char *name) /* close fd's? */ /* exec script */ +#ifndef __uClinux__ DEBUG(LOG_INFO, "execle'ing %s", client_config.script); +#endif /* __uClinux__ */ execle(client_config.script, client_config.script, name, NULL, envp); LOG(LOG_ERR, "script %s failed: %m", client_config.script); |