aboutsummaryrefslogtreecommitdiffstats
path: root/url.c
diff options
context:
space:
mode:
authorFumitoshi UKAI <ukai@debian.or.jp>2002-10-08 15:28:37 +0000
committerFumitoshi UKAI <ukai@debian.or.jp>2002-10-08 15:28:37 +0000
commit3721324a4ae7e449ce0767976521ba27152037cb (patch)
tree31f528ffcb46252ab8f6c288c034fdd3412575ae /url.c
parent* [w3m-dev 03333] x11 image animation (diff)
downloadw3m-3721324a4ae7e449ce0767976521ba27152037cb.tar.gz
w3m-3721324a4ae7e449ce0767976521ba27152037cb.zip
[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 (limited to '')
-rw-r--r--url.c30
1 files changed, 25 insertions, 5 deletions
diff --git a/url.c b/url.c
index a3b2539..8daa3b9 100644
--- a/url.c
+++ b/url.c
@@ -1,4 +1,4 @@
-/* $Id: url.c,v 1.51 2002/09/28 16:30:07 ukai Exp $ */
+/* $Id: url.c,v 1.52 2002/10/08 15:28:37 ukai Exp $ */
#include "fm.h"
#include <sys/types.h>
#include <sys/socket.h>
@@ -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);