[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[FDclone-users:00915] URLDRIVE で HTTPを HTTPS にリダイレクトされると変に



稲員です。

先日 FDclone-3.00i 上から 'x' で次のコマンドを実行しました。

  wget http://launchpad.net/bzrtools/stable/2.2.0/+download/bzrtools-2.2.0.tar.gz

ところが network access はしている様子なのに一向に download
が始まる気配がないので変だと思い packet を覗いてみると、
延々と同じ request を送り続けていることが判明。慌てて ^C で
止めたら急に download が始まり、それが終了すると今度は何も
入力を受け付けなくなってしまい、結局 kill -9 することに。

その後の調査で、どうやら URLDRIVE=1 の時に http://.. へのア
クセスが https://.. にリダイレクトされる URL を指定した時に
おかしくなっている事が分かりました。

添付の log は localhost 上にでっち上げた http://localhost/..
への request を https://localhost/.. にリダイレクトする Web
Server でテストした時のものです。

やっつけ patch も一緒に付けておきます。

# MINIX で URLDRIVE が動くかテストした時に比較のために FreeBSD
# 側も on にしてそのままになっていたのがこんな形で…。

-- 
Rikito INAKAZU (稲員力士) <riki1017kazu@gmail.com>
Only in FD-3.00i: config.h
diff -ru FD-3.00i.orig/http.c FD-3.00i/http.c
--- FD-3.00i.orig/http.c	2010-07-24 00:00:00.000000000 +0900
+++ FD-3.00i/http.c	2010-09-01 06:52:11.000000000 +0900
@@ -348,6 +348,10 @@
 	int n, ptr, type;
 
 	if ((ptr = urlparse(s, NULL, &cp, &type)) < 0) return(-1);
+	if (type == TYPE_UNKNOWN) {
+		urlhostlist[uh].prototype = TYPE_UNKNOWN;
+		return(-1);
+	}
 	if (ptr > 0) {
 		n = urlgethost(cp, &tmp);
 		Xfree(cp);

Attachment: fd_http.log.gz
Description: Binary data