diff options
Diffstat (limited to 'src/net')
| -rw-r--r-- | src/net/tcp/http.c | 14 | ||||
| -rw-r--r-- | src/net/udp/dns.c | 7 |
2 files changed, 12 insertions, 9 deletions
diff --git a/src/net/tcp/http.c b/src/net/tcp/http.c index 04e8f9a1d..87f6eee2b 100644 --- a/src/net/tcp/http.c +++ b/src/net/tcp/http.c @@ -35,6 +35,7 @@ #include <gpxe/uri.h> #include <gpxe/buffer.h> #include <gpxe/download.h> +#include <gpxe/resolv.h> #include <gpxe/http.h> static struct async_operations http_async_operations; @@ -391,17 +392,12 @@ int http_get ( struct uri *uri, struct buffer *buffer, struct async *parent ) { http->buffer = buffer; async_init ( &http->async, &http_async_operations, parent ); - -#warning "Quick name resolution hack" - extern int dns_resolv ( const char *name, - struct sockaddr *sa, - struct async *parent ); - - if ( ( rc = dns_resolv ( uri->host, &http->server, - &http->async ) ) != 0 ) + /* Start name resolution. The download proper will start when + * name resolution completes. + */ + if ( ( rc = resolv ( uri->host, &http->server, &http->async ) ) != 0 ) goto err; - return 0; err: diff --git a/src/net/udp/dns.c b/src/net/udp/dns.c index 872e3b296..a5b658c29 100644 --- a/src/net/udp/dns.c +++ b/src/net/udp/dns.c @@ -26,6 +26,7 @@ #include <byteswap.h> #include <gpxe/async.h> #include <gpxe/udp.h> +#include <gpxe/resolv.h> #include <gpxe/dns.h> /** @file @@ -468,3 +469,9 @@ int dns_resolv ( const char *name, struct sockaddr *sa, free ( dns ); return rc; } + +/** DNS name resolver */ +struct resolver dns_resolver __resolver = { + .name = "DNS", + .resolv = dns_resolv, +}; |
