diff options
| author | AIDA Shinra <shinra@j10n.org> | 2013-10-14 13:39:55 +0000 | 
|---|---|---|
| committer | Tatsuya Kinoshita <tats@debian.org> | 2013-10-14 13:39:55 +0000 | 
| commit | c155b93830b353a68468fb063df67987ed284142 (patch) | |
| tree | e2c5ebd6ecd24fd982fd64589dc8653a985656c9 | |
| parent | Merge from upstream on 2012-05-22 (diff) | |
| download | w3m-c155b93830b353a68468fb063df67987ed284142.tar.gz w3m-c155b93830b353a68468fb063df67987ed284142.zip | |
Define schemeNumToName() to fix scheme bug
Patch from <http://www.j10n.org/files/w3m-cvs-1.1055-schemebug.patch>,
[w3m-dev:04470] on 2013-10-14.
| -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" */ @@ -1280,6 +1281,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(); @@ -1603,7 +1616,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; @@ -1645,15 +1658,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;  	    } @@ -1685,8 +1698,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; @@ -1750,7 +1762,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; @@ -1758,8 +1770,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) | 
