From: Russ Dill Date: Mon, 15 Dec 2003 22:11:26 +0000 (-0000) Subject: make udhcp work under uclinux, to an extent X-Git-Tag: 1_00_pre5~44 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=62419df95cd504bf5823a35194360dc4f6aa86c6;p=oweals%2Fbusybox.git make udhcp work under uclinux, to an extent --- diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c index ab4fa305a..babd980e3 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 7876dd3c7..0f2a21c3a 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);