From f9f1d2c84c51ea2d03bd3c292037644afcebba38 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Sun, 1 May 2005 23:58:45 +0000 Subject: More URL parsing moved into url.c --- src/core/nic.c | 42 +++++++----------------------------------- 1 file changed, 7 insertions(+), 35 deletions(-) (limited to 'src') diff --git a/src/core/nic.c b/src/core/nic.c index f846f360..53dac57e 100644 --- a/src/core/nic.c +++ b/src/core/nic.c @@ -291,48 +291,20 @@ int download_url ( char *url, int ( * process ) ( unsigned char *data, unsigned int blocknum, unsigned int len, int eof ) ) { - struct url_info url_info; struct protocol *proto; struct sockaddr_in server; + char *filename; - DBG ( "Loading %s\n", url ); + printf ( "Loading %s\n", url ); /* Parse URL */ - parse_url ( &url_info, url ); - - /* Identify protocol */ - proto = identify_protocol ( url_info.protocol ); - if ( ! proto ) { - if ( url_info.protocol ) { - printf ( "Unknown protocol %s\n", url_info.protocol ); - } else { - printf ( "No default protocols\n" ); - } - goto error_out; - } - - /* Resolve hostname */ - server.sin_addr = arptable[ARP_SERVER].ipaddr; - if ( url_info.host ) { - if ( ! resolv ( &server.sin_addr, url_info.host ) ) { - printf ( "Cannot resolve host %s\n", url_info.host ); - goto error_out; - } + if ( ! parse_url ( url, &proto, &server, &filename ) ) { + DBG ( "Unusable URL %s\n", url ); + return 0; } - - /* Resolve port number */ - server.sin_port = url_info.port ? - strtoul ( url_info.port, NULL, 10 ) : 0; - - /* Restore URL */ - unparse_url ( &url_info ); - + /* Call protocol's method to download the file */ - return proto->load ( url, &server, url_info.file, process ); - - error_out: - unparse_url ( &url_info ); - return 0; + return proto->load ( url, &server, filename, process ); } -- cgit v1.2.3-55-g7522