diff options
| author | Tatsuya Kinoshita <tats@debian.org> | 2013-10-14 14:04:23 +0000 | 
|---|---|---|
| committer | Tatsuya Kinoshita <tats@debian.org> | 2013-10-14 14:04:23 +0000 | 
| commit | 54b9076584dbce67fc0cc129006b6af15b8bbbdc (patch) | |
| tree | 5aaf0f6c84e932743c9a6c860e4b5fc0b38d8f78 | |
| parent | Merge branch 'bug/win64gc' (diff) | |
| parent | Define schemeNumToName() to fix scheme bug (diff) | |
| download | w3m-54b9076584dbce67fc0cc129006b6af15b8bbbdc.tar.gz w3m-54b9076584dbce67fc0cc129006b6af15b8bbbdc.zip | |
Merge branch 'bug/schemebug'
| -rw-r--r-- | url.c | 31 | 
1 files changed, 21 insertions, 10 deletions
| @@ -121,6 +121,7 @@ static struct table2 DefaultGuess[] = {  };  static void add_index_file(ParsedURL *pu, URLFile *uf); +static char * schemeNumToName(int scheme);  /* #define HTTP_DEFAULT_FILE    "/index.html" */ @@ -1285,6 +1286,18 @@ getURLScheme(char **url)  }  static char * +schemeNumToName(int scheme) +{ +    int i; + +    for (i = 0; schemetable[i].cmdname != NULL; i++) { +	if (schemetable[i].cmd == scheme) +	    return schemetable[i].cmdname; +    } +    return NULL; +} + +static char *  otherinfo(ParsedURL *target, ParsedURL *current, char *referer)  {      Str s = Strnew(); @@ -1616,7 +1629,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,  	    pu->host != NULL && !check_no_proxy(pu->host)) {  	    hr->flag |= HR_FLAG_PROXY;  	    sock = openSocket(FTP_proxy_parsed.host, -			      schemetable[FTP_proxy_parsed.scheme].cmdname, +			      schemeNumToName(FTP_proxy_parsed.scheme),  			      FTP_proxy_parsed.port);  	    if (sock < 0)  		return uf; @@ -1658,15 +1671,15 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,  	    }  	    else if (pu->scheme == SCM_HTTPS) {  		sock = openSocket(HTTPS_proxy_parsed.host, -				  schemetable[HTTPS_proxy_parsed.scheme]. -				  cmdname, HTTPS_proxy_parsed.port); +				  schemeNumToName(HTTPS_proxy_parsed.scheme), +				  HTTPS_proxy_parsed.port);  		sslh = NULL;  	    }  	    else {  #endif				/* USE_SSL */  		sock = openSocket(HTTP_proxy_parsed.host, -				  schemetable[HTTP_proxy_parsed.scheme]. -				  cmdname, HTTP_proxy_parsed.port); +				  schemeNumToName(HTTP_proxy_parsed.scheme), +				  HTTP_proxy_parsed.port);  #ifdef USE_SSL  		sslh = NULL;  	    } @@ -1698,8 +1711,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,  	    }  	}  	else { -	    sock = openSocket(pu->host, -			      schemetable[pu->scheme].cmdname, pu->port); +	    sock = openSocket(pu->host, schemeNumToName(pu->scheme), pu->port);  	    if (sock < 0) {  		*status = HTST_MISSING;  		return uf; @@ -1763,7 +1775,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,  	    pu->host != NULL && !check_no_proxy(pu->host)) {  	    hr->flag |= HR_FLAG_PROXY;  	    sock = openSocket(GOPHER_proxy_parsed.host, -			      schemetable[GOPHER_proxy_parsed.scheme].cmdname, +			      schemeNumToName(GOPHER_proxy_parsed.scheme),  			      GOPHER_proxy_parsed.port);  	    if (sock < 0)  		return uf; @@ -1771,8 +1783,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,  	    tmp = HTTPrequest(pu, current, hr, extra_header);  	}  	else { -	    sock = openSocket(pu->host, -			      schemetable[pu->scheme].cmdname, pu->port); +	    sock = openSocket(pu->host, schemeNumToName(pu->scheme), pu->port);  	    if (sock < 0)  		return uf;  	    if (pu->file == NULL) | 
