commit 0b5d4456768cb3b63a16955ea753661b0613cbdf
parent cc26adbdf1c911c0ae76092bf240ad0d5d7146e1
Author: ukai <ukai>
Date: Tue, 8 Oct 2002 15:28:37 +0000
[w3m-dev 03336] proxy check for https authorization:
* url.c (HTTPrequest): check CONNECT request for ssl
From: AIDA Shinra <aida-s@jcom.home.ne.jp>
Diffstat:
2 files changed, 29 insertions(+), 4 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,8 @@
+2002-10-09 AIDA Shinra <aida-s@jcom.home.ne.jp>
+
+ * [w3m-dev 03336] proxy check for https authorization:
+ * url.c (HTTPrequest): check CONNECT request for ssl
+
2002-10-06 Hiroyuki Ito <hito@crl.go.jp>
* [w3m-dev 03333] x11 image animation
diff --git a/url.c b/url.c
@@ -1310,22 +1310,42 @@ HTTPrequest(ParsedURL *pu, ParsedURL *current, HRequest *hr, TextList *extra)
if (extra != NULL)
for (i = extra->first; i != NULL; i = i->next) {
if (strncasecmp(i->ptr, "Authorization:",
- sizeof("Authorization:") - 1) == 0)
+ sizeof("Authorization:") - 1) == 0) {
seen_www_auth = 1;
+#ifdef USE_SSL
+ if (hr->command == HR_COMMAND_CONNECT)
+ continue;
+#endif
+ }
if (strncasecmp(i->ptr, "Proxy-Authorization:",
- sizeof("Proxy-Authorization:") - 1) == 0)
+ sizeof("Proxy-Authorization:") - 1) == 0) {
seen_proxy_auth = 1;
+#ifdef USE_SSL
+ if (pu->scheme == SCM_HTTPS
+ && hr->command != HR_COMMAND_CONNECT)
+ continue;
+#endif
+ }
Strcat_charp(tmp, i->ptr);
}
- if (!seen_www_auth) {
+ if (!seen_www_auth
+#ifdef USE_SSL
+ && hr->command != HR_COMMAND_CONNECT
+#endif
+ ) {
Str auth_cookie = find_auth_cookie(pu->host, pu->port, pu->file, NULL);
if (auth_cookie)
Strcat_m_charp(tmp, "Authorization: ", auth_cookie->ptr,
"\r\n", NULL);
}
- if (!seen_proxy_auth && (hr->flag & HR_FLAG_PROXY)) {
+ if (!seen_proxy_auth && (hr->flag & HR_FLAG_PROXY)
+#ifdef USE_SSL
+ && (pu->scheme != SCM_HTTPS
+ || hr->command == HR_COMMAND_CONNECT)
+#endif
+ ) {
ParsedURL *proxy_pu = schemeToProxy(pu->scheme);
Str auth_cookie = find_auth_cookie(
proxy_pu->host, proxy_pu->port, proxy_pu->file, NULL);