From 9318287f5a7600ecc5dd070f83291b61aeb08550 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Fri, 7 Jan 2011 16:44:14 -0500 Subject: [PATCH] Implement variable expansion on the filename field from dhcp --- src/core/exec.c | 2 +- src/usr/autoboot.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/exec.c b/src/core/exec.c index bb3b343d..0c8dc2b7 100644 --- a/src/core/exec.c +++ b/src/core/exec.c @@ -95,7 +95,7 @@ int execv ( const char *command, char * const argv[] ) { * The expanded command line is allocated with malloc() and the caller * must eventually free() it. */ -static char * expand_command ( const char *command ) { +char * expand_command ( const char *command ) { char *expcmd; char *start; char *end; diff --git a/src/usr/autoboot.c b/src/usr/autoboot.c index 738c3cea..482fcd17 100644 --- a/src/usr/autoboot.c +++ b/src/usr/autoboot.c @@ -33,6 +33,7 @@ FILE_LICENCE ( GPL2_OR_LATER ); #include #include #include +char * expand_command ( const char *command ); /** @file * @@ -97,7 +98,9 @@ int boot_next_server_and_filename ( struct in_addr next_server, uri_encode ( filename, buf + strlen ( buf ), sizeof ( buf ) - strlen ( buf ), URI_PATH ); filename = buf; - } + } else { /* I don't think it could hurt the tftp case, but might as well stay out of a codepath I don't intend to rigorously test */ + filename = expand_command(filename); + } /* Download and boot image */ image = alloc_image();