diff options
author | Guillaume Cottenceau <gc@mandriva.com> | 2001-12-11 14:48:26 +0000 |
---|---|---|
committer | Guillaume Cottenceau <gc@mandriva.com> | 2001-12-11 14:48:26 +0000 |
commit | ff6c12f0ceb79027381fcaa32db851072f2e8387 (patch) | |
tree | f7311b8decf6686323f5c7de4d79ef087c8107f6 /mdk-stage1 | |
parent | ab387f437171d69c39fa5c9754ff8fcdbc04adf5 (diff) | |
download | drakx-ff6c12f0ceb79027381fcaa32db851072f2e8387.tar drakx-ff6c12f0ceb79027381fcaa32db851072f2e8387.tar.gz drakx-ff6c12f0ceb79027381fcaa32db851072f2e8387.tar.bz2 drakx-ff6c12f0ceb79027381fcaa32db851072f2e8387.tar.xz drakx-ff6c12f0ceb79027381fcaa32db851072f2e8387.zip |
support "filename" in DHCP answers and give this
to stage2 as --kickstart parameter
Diffstat (limited to 'mdk-stage1')
-rw-r--r-- | mdk-stage1/dhcp.c | 4 | ||||
-rw-r--r-- | mdk-stage1/stage1.c | 5 | ||||
-rw-r--r-- | mdk-stage1/stage1.h | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/mdk-stage1/dhcp.c b/mdk-stage1/dhcp.c index 44877fd8a..ef7bd6a29 100644 --- a/mdk-stage1/dhcp.c +++ b/mdk-stage1/dhcp.c @@ -27,6 +27,7 @@ #include <stdlib.h> #include <unistd.h> +#include <stdio.h> #include <string.h> #include <sys/socket.h> #include <sys/ioctl.h> @@ -207,6 +208,9 @@ static void parse_reply(struct bootp_request * breq, struct interface_info * int unsigned char * chptr; unsigned char option, length; + if (breq->bootfile && strlen(breq->bootfile) > 0) + stage2_kickstart = strdup(breq->bootfile); + memcpy(&intf->ip, &breq->yiaddr, 4); chptr = breq->vendor; diff --git a/mdk-stage1/stage1.c b/mdk-stage1/stage1.c index bcbf2c0e5..4370ebe1d 100644 --- a/mdk-stage1/stage1.c +++ b/mdk-stage1/stage1.c @@ -68,6 +68,7 @@ * globals */ char * method_name; +char * stage2_kickstart = NULL; void fatal_error(char *msg) @@ -445,6 +446,10 @@ int main(int argc, char **argv, char **env) } if (disable_modules) *argptr++ = "--blank"; + if (stage2_kickstart) { + *argptr++ = "--kickstart"; + *argptr++ = stage2_kickstart; + } *argptr++ = NULL; execve(stage2_args[0], stage2_args, grab_env()); diff --git a/mdk-stage1/stage1.h b/mdk-stage1/stage1.h index 431e10600..f92c45c41 100644 --- a/mdk-stage1/stage1.h +++ b/mdk-stage1/stage1.h @@ -30,6 +30,7 @@ extern char * method_name; extern char * interactive_fifo; +extern char * stage2_kickstart; #define MODE_TESTING (1 << 0) #define MODE_EXPERT (1 << 1) |