diff options
author | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-10-08 15:28:37 +0000 |
---|---|---|
committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-10-08 15:28:37 +0000 |
commit | 3721324a4ae7e449ce0767976521ba27152037cb (patch) | |
tree | 31f528ffcb46252ab8f6c288c034fdd3412575ae /url.c | |
parent | * [w3m-dev 03333] x11 image animation (diff) | |
download | w3m-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.c | 30 |
1 files changed, 25 insertions, 5 deletions
@@ -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); |