Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • url.c

    r6fda350 rb7d3cc34  
    22  * BitlBee -- An IRC to other IM-networks gateway                     *
    33  *                                                                    *
    4   * Copyright 2001-2005 Wilmer van der Gaast and others                *
     4  * Copyright 2001-2004 Wilmer van der Gaast and others                *
    55  \********************************************************************/
    66
     
    3030{
    3131        char s[MAX_STRING];
    32         char *i;
     32        char *i, *j;
    3333       
    3434        /* protocol://                                                  */
     
    4242                if( g_strncasecmp( set_url, "http", i - set_url ) == 0 )
    4343                        url->proto = PROTO_HTTP;
    44                 else if( g_strncasecmp( set_url, "https", i - set_url ) == 0 )
    45                         url->proto = PROTO_HTTPS;
    4644                else if( g_strncasecmp( set_url, "socks4", i - set_url ) == 0 )
    4745                        url->proto = PROTO_SOCKS4;
     
    5856        if( ( i = strchr( s, '/' ) ) == NULL )
    5957        {
    60                 strcpy( url->file, "/" );
     58                strcpy( url->dir, "/" );
    6159        }
    6260        else
    6361        {
    64                 strncpy( url->file, i, MAX_STRING );
    6562                *i = 0;
     63                g_snprintf( url->dir, MAX_STRING, "/%s", i + 1 );
     64                if( url->proto == PROTO_HTTP )
     65                        http_encode( url->dir );
    6666        }
    6767        strncpy( url->host, s, MAX_STRING );
     68        j = strchr( url->dir, '?' );
     69        if( j != NULL )
     70                *j = 0;
     71        i = strrchr( url->dir, '/' );
     72        *i = 0;
     73        if( j != NULL )
     74                *j = '?';
     75        if( i == NULL )
     76        {
     77                strcpy( url->file, url->dir );
     78                strcpy( url->dir, "/" );
     79        }
     80        else
     81        {
     82                strcpy( url->file, i + 1 );
     83                strcat( url->dir, "/" );
     84        }
    6885       
    6986        /* Check for username in host field                             */
     
    7996        else
    8097        {
    81                 *url->user = *url->pass = 0;
     98                if( url->proto == PROTO_FTP )
     99                {
     100                        strcpy( url->user, "anonymous" );
     101                        strcpy( url->pass, "-p.artmaps@lintux.cx" );
     102                }
     103                else
     104                {
     105                        *url->user = *url->pass = 0;
     106                }
    82107        }
    83108       
     
    92117        {
    93118                *i = 0;
    94                 sscanf( i + 1, "%d", &url->port );
     119                sscanf( i + 1, "%i", &url->port );
    95120        }
     121        /* Take default port numbers from /etc/services                 */
    96122        else
    97123        {
    98124                if( url->proto == PROTO_HTTP )
    99                         url->port = 80;
    100                 else if( url->proto == PROTO_HTTPS )
    101                         url->port = 443;
     125                        url->port = 8080;
    102126                else if( url->proto == PROTO_SOCKS4 || url->proto == PROTO_SOCKS4 )
    103127                        url->port = 1080;
Note: See TracChangeset for help on using the changeset viewer.