diff --git a/src/usr/autoboot.c b/src/usr/autoboot.c index 20c67f34..bb7d692e 100644 --- a/src/usr/autoboot.c +++ b/src/usr/autoboot.c @@ -81,11 +81,11 @@ static struct uri * parse_next_server_and_filename ( struct in_addr next_server, * filenames with and without initial slashes, which is * significant for TFTP. */ - if ( ! uri_is_absolute ( uri ) ) { + if ( next_server.s_addr && filename[0] && ! uri_is_absolute ( uri ) ) { uri_put ( uri ); snprintf ( buf, sizeof ( buf ), "tftp://%s/%s", inet_ntoa ( next_server ), filename ); - uri = parse_uri ( filename ); + uri = parse_uri ( buf ); if ( ! uri ) return NULL; } @@ -130,7 +130,7 @@ int uriboot ( struct uri *filename, struct uri *root_path ) { } /* Treat empty URIs as absent */ - if ( filename && ( ! filename->path ) ) + if ( filename && ( ! uri_has_path ( filename ) ) ) filename = NULL; if ( root_path && ( ! uri_is_absolute ( root_path ) ) ) root_path = NULL;