Ping. Comments? Thanks, Alex
On Fri, 2013-06-07 at 09:38 -0600, Alex Williamson wrote: > In cases where we have both a DHCP and ProxyDHCP response we retrieve > the next-server and filename independently. This means they can > actually come from different settings blocks. For instance, net0.dhcp > is currently ordered before proxydhcp, so we can take the filename > from proxydhcp and next-server from net0.dhcp. It's sensible that > filename+next-server should be treated as a pair and retrieved from > the same settings block. Re-order fetch_next_server_and_filename to > get filename first, find the origin settings block, and get > next_server from the same. > > Signed-off-by: Alex Williamson <[email protected]> > --- > src/usr/autoboot.c | 16 +++++++++++----- > 1 file changed, 11 insertions(+), 5 deletions(-) > > diff --git a/src/usr/autoboot.c b/src/usr/autoboot.c > index b2d288e..6a1a70c 100644 > --- a/src/usr/autoboot.c > +++ b/src/usr/autoboot.c > @@ -252,15 +252,11 @@ static void close_all_netdevs ( void ) { > */ > struct uri * fetch_next_server_and_filename ( struct settings *settings ) { > struct in_addr next_server; > + struct settings *filename_settings; > char buf[256]; > char *filename; > struct uri *uri; > > - /* Fetch next-server setting */ > - fetch_ipv4_setting ( settings, &next_server_setting, &next_server ); > - if ( next_server.s_addr ) > - printf ( "Next server: %s\n", inet_ntoa ( next_server ) ); > - > /* Fetch filename setting */ > fetch_string_setting ( settings, &filename_setting, > buf, sizeof ( buf ) ); > @@ -272,6 +268,16 @@ struct uri * fetch_next_server_and_filename ( struct > settings *settings ) { > if ( ! filename ) > return NULL; > > + /* Get settings block for filename; use next-server from same */ > + filename_settings = fetch_setting_origin ( settings, > + &filename_setting ); > + > + /* Fetch next-server setting */ > + fetch_ipv4_setting ( filename_settings, > + &next_server_setting, &next_server ); > + if ( next_server.s_addr ) > + printf ( "Next server: %s\n", inet_ntoa ( next_server ) ); > + > /* Parse next server and filename */ > uri = parse_next_server_and_filename ( next_server, filename ); > > > _______________________________________________ > ipxe-devel mailing list > [email protected] > https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel _______________________________________________ ipxe-devel mailing list [email protected] https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

