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.
This commit is contained in:
AIDA Shinra
2013-10-14 22:39:55 +09:00
committed by Tatsuya Kinoshita
parent dbd52ac2ca
commit c155b93830

31
url.c
View File

@@ -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" */
@@ -1279,6 +1280,18 @@ getURLScheme(char **url)
return scheme;
}
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)
{
@@ -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)