diff options
| author | Jelmer Vernooij <jelmer@samba.org> | 2008-04-02 15:28:23 +0200 | 
|---|---|---|
| committer | Jelmer Vernooij <jelmer@samba.org> | 2008-04-02 15:28:23 +0200 | 
| commit | dd345753c1742905c9f81aa71d8b09109fbc5456 (patch) | |
| tree | 8689e25f6465c17c3dd5913af6ae289bf13768d4 /lib/url.c | |
| parent | 0db75ad966458610427dacdd31ecbaddbca18935 (diff) | |
| parent | fa75134008bd9206ca02380927c27581feb65c3e (diff) | |
merge trunk.
Diffstat (limited to 'lib/url.c')
| -rw-r--r-- | lib/url.c | 24 | 
1 files changed, 13 insertions, 11 deletions
| @@ -25,13 +25,16 @@  #include "url.h" -/* Convert an URL to a url_t structure					*/ +/* Convert an URL to a url_t structure */  int url_set( url_t *url, char *set_url )  { -	char s[MAX_STRING]; +	char s[MAX_STRING+1];  	char *i; -	/* protocol://							*/ +	memset( url, 0, sizeof( url_t ) ); +	memset( s, 0, sizeof( s ) ); +	 +	/* protocol:// */  	if( ( i = strstr( set_url, "://" ) ) == NULL )  	{  		url->proto = PROTO_DEFAULT; @@ -48,13 +51,12 @@ int url_set( url_t *url, char *set_url )  		else if( g_strncasecmp( set_url, "socks5", i - set_url ) == 0 )  			url->proto = PROTO_SOCKS5;  		else -		{ -			return( 0 ); -		} +			return 0; +		  		strncpy( s, i + 3, MAX_STRING );  	} -	/* Split							*/ +	/* Split */  	if( ( i = strchr( s, '/' ) ) == NULL )  	{  		strcpy( url->file, "/" ); @@ -66,7 +68,7 @@ int url_set( url_t *url, char *set_url )  	}  	strncpy( url->host, s, MAX_STRING ); -	/* Check for username in host field				*/ +	/* Check for username in host field */  	if( strrchr( url->host, '@' ) != NULL )  	{  		strncpy( url->user, url->host, MAX_STRING ); @@ -75,19 +77,19 @@ int url_set( url_t *url, char *set_url )  		strcpy( url->host, i + 1 );  		*url->pass = 0;  	} -	/* If not: Fill in defaults					*/ +	/* If not: Fill in defaults */  	else  	{  		*url->user = *url->pass = 0;  	} -	/* Password?							*/ +	/* Password? */  	if( ( i = strchr( url->user, ':' ) ) != NULL )  	{  		*i = 0;  		strcpy( url->pass, i + 1 );  	} -	/* Port number?							*/ +	/* Port number? */  	if( ( i = strchr( url->host, ':' ) ) != NULL )  	{  		*i = 0; | 
