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:
committed by
Tatsuya Kinoshita
parent
dbd52ac2ca
commit
c155b93830
31
url.c
31
url.c
@@ -121,6 +121,7 @@ static struct table2 DefaultGuess[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static void add_index_file(ParsedURL *pu, URLFile *uf);
|
static void add_index_file(ParsedURL *pu, URLFile *uf);
|
||||||
|
static char * schemeNumToName(int scheme);
|
||||||
|
|
||||||
/* #define HTTP_DEFAULT_FILE "/index.html" */
|
/* #define HTTP_DEFAULT_FILE "/index.html" */
|
||||||
|
|
||||||
@@ -1279,6 +1280,18 @@ getURLScheme(char **url)
|
|||||||
return scheme;
|
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 *
|
static char *
|
||||||
otherinfo(ParsedURL *target, ParsedURL *current, char *referer)
|
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)) {
|
pu->host != NULL && !check_no_proxy(pu->host)) {
|
||||||
hr->flag |= HR_FLAG_PROXY;
|
hr->flag |= HR_FLAG_PROXY;
|
||||||
sock = openSocket(FTP_proxy_parsed.host,
|
sock = openSocket(FTP_proxy_parsed.host,
|
||||||
schemetable[FTP_proxy_parsed.scheme].cmdname,
|
schemeNumToName(FTP_proxy_parsed.scheme),
|
||||||
FTP_proxy_parsed.port);
|
FTP_proxy_parsed.port);
|
||||||
if (sock < 0)
|
if (sock < 0)
|
||||||
return uf;
|
return uf;
|
||||||
@@ -1645,15 +1658,15 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,
|
|||||||
}
|
}
|
||||||
else if (pu->scheme == SCM_HTTPS) {
|
else if (pu->scheme == SCM_HTTPS) {
|
||||||
sock = openSocket(HTTPS_proxy_parsed.host,
|
sock = openSocket(HTTPS_proxy_parsed.host,
|
||||||
schemetable[HTTPS_proxy_parsed.scheme].
|
schemeNumToName(HTTPS_proxy_parsed.scheme),
|
||||||
cmdname, HTTPS_proxy_parsed.port);
|
HTTPS_proxy_parsed.port);
|
||||||
sslh = NULL;
|
sslh = NULL;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#endif /* USE_SSL */
|
#endif /* USE_SSL */
|
||||||
sock = openSocket(HTTP_proxy_parsed.host,
|
sock = openSocket(HTTP_proxy_parsed.host,
|
||||||
schemetable[HTTP_proxy_parsed.scheme].
|
schemeNumToName(HTTP_proxy_parsed.scheme),
|
||||||
cmdname, HTTP_proxy_parsed.port);
|
HTTP_proxy_parsed.port);
|
||||||
#ifdef USE_SSL
|
#ifdef USE_SSL
|
||||||
sslh = NULL;
|
sslh = NULL;
|
||||||
}
|
}
|
||||||
@@ -1685,8 +1698,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
sock = openSocket(pu->host,
|
sock = openSocket(pu->host, schemeNumToName(pu->scheme), pu->port);
|
||||||
schemetable[pu->scheme].cmdname, pu->port);
|
|
||||||
if (sock < 0) {
|
if (sock < 0) {
|
||||||
*status = HTST_MISSING;
|
*status = HTST_MISSING;
|
||||||
return uf;
|
return uf;
|
||||||
@@ -1750,7 +1762,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,
|
|||||||
pu->host != NULL && !check_no_proxy(pu->host)) {
|
pu->host != NULL && !check_no_proxy(pu->host)) {
|
||||||
hr->flag |= HR_FLAG_PROXY;
|
hr->flag |= HR_FLAG_PROXY;
|
||||||
sock = openSocket(GOPHER_proxy_parsed.host,
|
sock = openSocket(GOPHER_proxy_parsed.host,
|
||||||
schemetable[GOPHER_proxy_parsed.scheme].cmdname,
|
schemeNumToName(GOPHER_proxy_parsed.scheme),
|
||||||
GOPHER_proxy_parsed.port);
|
GOPHER_proxy_parsed.port);
|
||||||
if (sock < 0)
|
if (sock < 0)
|
||||||
return uf;
|
return uf;
|
||||||
@@ -1758,8 +1770,7 @@ openURL(char *url, ParsedURL *pu, ParsedURL *current,
|
|||||||
tmp = HTTPrequest(pu, current, hr, extra_header);
|
tmp = HTTPrequest(pu, current, hr, extra_header);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
sock = openSocket(pu->host,
|
sock = openSocket(pu->host, schemeNumToName(pu->scheme), pu->port);
|
||||||
schemetable[pu->scheme].cmdname, pu->port);
|
|
||||||
if (sock < 0)
|
if (sock < 0)
|
||||||
return uf;
|
return uf;
|
||||||
if (pu->file == NULL)
|
if (pu->file == NULL)
|
||||||
|
Reference in New Issue
Block a user