aboutsummaryrefslogtreecommitdiffstats
path: root/lib/url.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-04-02 15:28:23 +0200
committerJelmer Vernooij <jelmer@samba.org>2008-04-02 15:28:23 +0200
commitdd345753c1742905c9f81aa71d8b09109fbc5456 (patch)
tree8689e25f6465c17c3dd5913af6ae289bf13768d4 /lib/url.c
parent0db75ad966458610427dacdd31ecbaddbca18935 (diff)
parentfa75134008bd9206ca02380927c27581feb65c3e (diff)
merge trunk.
Diffstat (limited to 'lib/url.c')
-rw-r--r--lib/url.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/lib/url.c b/lib/url.c
index c6fdc4c8..de9966b4 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -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;