aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFumitoshi UKAI <ukai@debian.or.jp>2001-12-25 18:14:59 +0000
committerFumitoshi UKAI <ukai@debian.or.jp>2001-12-25 18:14:59 +0000
commit90150252ad18cd756c471f4324035833ee548a2a (patch)
treebb624a6948ec338c46b8938a543f9a510466305f
parent[w3m-dev 02729] (diff)
downloadw3m-90150252ad18cd756c471f4324035833ee548a2a.tar.gz
w3m-90150252ad18cd756c471f4324035833ee548a2a.zip
[w3m-dev 02732] fix Debian Bug#126381 - Passwords entered for HTTPS are used for HTTP
From: Kiyokazu SUTO <suto@ks-and-ks.ne.jp>
-rw-r--r--ChangeLog17
-rw-r--r--etc.c15
-rw-r--r--file.c6
-rw-r--r--fm.h3
-rw-r--r--ftp.c6
-rw-r--r--proto.h6
6 files changed, 35 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index a7a754e..d77aa3e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2001-12-26 Kiyokazu SUTO <suto@ks-and-ks.ne.jp>
+
+ * [w3m-dev 02732] fix Debian Bug#126381
+ - Passwords entered for HTTPS are used for HTTP
+ * etc.c (find_auth): add port arg
+ * etc.c (find_auth_cookie): add port arg
+ * etc.c (add_auth_cookie): add port arg
+ * file.c (getAuthCookie): find_auth_cookie(host, port, realm)
+ * file.c (loadGeneralFile): add_auth_cookie(host, port, realm, ss)
+ * fm.h (struct auth_cookie): add port
+ * ftp.c (openFTP): find_auth_cookie(host, port, user)
+ * ftp.c (openFTP): add_auth_cookie(host, port, user, pwd)
+ * proto.h (find_auth_cookie): add port
+ * proto.h (add_auth_cookie): add port
+
2001-12-26 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 02729]
@@ -1578,4 +1593,4 @@
* release-0-2-1
* import w3m-0.2.1
-$Id: ChangeLog,v 1.176 2001/12/25 17:29:31 ukai Exp $
+$Id: ChangeLog,v 1.177 2001/12/25 18:14:59 ukai Exp $
diff --git a/etc.c b/etc.c
index 9d48e09..c7596e2 100644
--- a/etc.c
+++ b/etc.c
@@ -1,4 +1,4 @@
-/* $Id: etc.c,v 1.14 2001/12/25 16:49:42 ukai Exp $ */
+/* $Id: etc.c,v 1.15 2001/12/25 18:15:00 ukai Exp $ */
#include "fm.h"
#include <pwd.h>
#include "myctype.h"
@@ -888,39 +888,40 @@ correct_irrtag(int status)
/* authentication */
struct auth_cookie *
-find_auth(char *host, char *realm)
+find_auth(char *host, int port, char *realm)
{
struct auth_cookie *p;
for (p = Auth_cookie; p != NULL; p = p->next) {
if (!Strcasecmp_charp(p->host, host) &&
- !Strcasecmp_charp(p->realm, realm))
+ p->port == port && !Strcasecmp_charp(p->realm, realm))
return p;
}
return NULL;
}
Str
-find_auth_cookie(char *host, char *realm)
+find_auth_cookie(char *host, int port, char *realm)
{
- struct auth_cookie *p = find_auth(host, realm);
+ struct auth_cookie *p = find_auth(host, port, realm);
if (p)
return p->cookie;
return NULL;
}
void
-add_auth_cookie(char *host, char *realm, Str cookie)
+add_auth_cookie(char *host, int port, char *realm, Str cookie)
{
struct auth_cookie *p;
- p = find_auth(host, realm);
+ p = find_auth(host, port, realm);
if (p) {
p->cookie = cookie;
return;
}
p = New(struct auth_cookie);
p->host = Strnew_charp(host);
+ p->port = port;
p->realm = Strnew_charp(realm);
p->cookie = cookie;
p->next = Auth_cookie;
diff --git a/file.c b/file.c
index f8afd70..89bd2bd 100644
--- a/file.c
+++ b/file.c
@@ -1,4 +1,4 @@
-/* $Id: file.c,v 1.33 2001/12/25 16:49:42 ukai Exp $ */
+/* $Id: file.c,v 1.34 2001/12/25 18:15:00 ukai Exp $ */
#include "fm.h"
#include <sys/types.h>
#include "myctype.h"
@@ -901,7 +901,7 @@ getAuthCookie(char *realm, char *auth_header, TextList *extra_header,
* extra_header */
}
else
- ss = find_auth_cookie(pu->host, realm);
+ ss = find_auth_cookie(pu->host, pu->port, realm);
if (ss == NULL) {
/* input username and password */
sleep(2);
@@ -1203,7 +1203,7 @@ loadGeneralFile(char *path, ParsedURL *volatile current, char *referer,
}
if (add_auth_cookie_flag)
/* If authorization is required and passed */
- add_auth_cookie(pu.host, realm->ptr, ss);
+ add_auth_cookie(pu.host, pu.port, realm->ptr, ss);
if (status == HTST_CONNECT) {
of = &f;
goto load_doc;
diff --git a/fm.h b/fm.h
index 855a317..3534e96 100644
--- a/fm.h
+++ b/fm.h
@@ -1,4 +1,4 @@
-/* $Id: fm.h,v 1.32 2001/12/25 16:19:29 ukai Exp $ */
+/* $Id: fm.h,v 1.33 2001/12/25 18:15:00 ukai Exp $ */
/*
* w3m: WWW wo Miru utility
*
@@ -537,6 +537,7 @@ struct html_feed_environ {
struct auth_cookie {
Str host;
+ int port;
Str realm;
Str cookie;
struct auth_cookie *next;
diff --git a/ftp.c b/ftp.c
index b1a89d0..46b564a 100644
--- a/ftp.c
+++ b/ftp.c
@@ -1,4 +1,4 @@
-/* $Id: ftp.c,v 1.8 2001/11/29 10:22:58 ukai Exp $ */
+/* $Id: ftp.c,v 1.9 2001/12/25 18:15:00 ukai Exp $ */
#include <stdio.h>
#include <pwd.h>
#include <Str.h>
@@ -420,7 +420,7 @@ openFTP(ParsedURL *pu)
if (pu->pass)
pass = pu->pass;
else if (pu->user) {
- pwd = find_auth_cookie(pu->host, pu->user);
+ pwd = find_auth_cookie(pu->host, pu->port, pu->user);
if (pwd == NULL) {
if (fmInitialized) {
term_raw();
@@ -450,7 +450,7 @@ openFTP(ParsedURL *pu)
if (FtpError(s))
return NULL;
if (add_auth_cookie_flag)
- add_auth_cookie(pu->host, pu->user, pwd);
+ add_auth_cookie(pu->host, pu->port, pu->user, pwd);
if (pu->file == NULL || *pu->file == '\0')
goto ftp_dir;
else
diff --git a/proto.h b/proto.h
index d6e6a39..48b40b3 100644
--- a/proto.h
+++ b/proto.h
@@ -1,4 +1,4 @@
-/* $Id: proto.h,v 1.19 2001/12/25 13:43:51 ukai Exp $ */
+/* $Id: proto.h,v 1.20 2001/12/25 18:15:00 ukai Exp $ */
/*
* This file was automatically generated by version 1.7 of cextract.
* Manual editing not recommended.
@@ -470,8 +470,8 @@ extern Buffer *dirBuffer(char *dirname);
extern void set_environ(char *var, char *value);
extern FILE *localcgi_post(char *, char *, FormList *, char *);
extern FILE *localcgi_get(char *, char *, char *);
-extern Str find_auth_cookie(char *host, char *realm);
-extern void add_auth_cookie(char *host, char *realm, Str cookie);
+extern Str find_auth_cookie(char *host, int port, char *realm);
+extern void add_auth_cookie(char *host, int port, char *realm, Str cookie);
extern char *last_modified(Buffer *buf);
extern Str romanNumeral(int n);
extern Str romanAlphabet(int n);