[Kazehakase-devel 1284] Re: リモートブックマークが読めない

Back to archive index

Hidetaka Iwai tyuyu****@sings*****
2004年 6月 14日 (月) 06:54:54 JST


岩井@札幌です。

Jun Mukai <mukai****@jmuk*****> wrote:
Message-ID: <864qp****@verra*****>

> ノートPCで風博士を利用していたのですが、他の場所で接続するネットワーク
> を変えたところ、リモートブックマークを読めなくなってしまいました。
> 普通のブラウジングはできます。
> 
> 普段利用するネットワークではプロキシを使っているのですが、リモートブッ
> クマークの利用時に、プロキシの設定が何か悪さをしているのではないか、と
> 仮説を立てたのですが、残念ながら検証していません。

これは

1. proxyの設定を複数持っている
2. 移動先でメニューからproxyを変えると、リモートブックマークで通信でき
   なくなった

ということでしょうか?もしそうであれば、僕のせいです _| ̄|..........○

とりあえず、添付したパッチを適用するか、設定からproxyを変更すると改善
すると思いますが、いかがでしょう?

--
 Hidetaka Iwai
 tyuyu****@sings*****

-------------- next part --------------
diff -urN kazehakase/src/net/kz-http.c kazehakase-proxy/src/net/kz-http.c
--- kazehakase/src/net/kz-http.c	Fri May  7 23:07:28 2004
+++ kazehakase-proxy/src/net/kz-http.c	Mon Jun 14 06:35:13 2004
@@ -29,6 +29,7 @@
 #include "gnet.h"
 #include "kazehakase.h"
 #include "kz-profile.h"
+#include "kz-proxy-item.h"
 
 #define BUFFER_SIZE 1024
 
@@ -572,39 +573,70 @@
 	KZ_IO_CLASS (parent_class)->io_set_channel(KZ_IO(http));
 }
 
-
 static void
 kz_http_start (KzIO *io)
 {
-	GURI *uri = NULL;
-	gchar proxy[1024];
+	gchar proxy_name[1024];
 	gboolean exist;
 	guint port = 80;
 	gchar *host;
 	KzHTTP *http;
+	KzProxyItem *item = NULL;
 	
 	g_return_if_fail(KZ_IS_HTTP(io));
 	http = KZ_HTTP(io);
-
+	
 	/* proxy check */
-	exist = KZ_CONF_GET("Global", "proxy", proxy, STRING);
+	exist = KZ_CONF_GET("Global", "proxy_name", proxy_name, STRING);
 	if (exist)
 	{
-		uri = gnet_uri_new(proxy);
-		http->priv->use_proxy = TRUE;
-		port = uri->port;
-		host = uri->hostname;
+		item = kz_proxy_find(proxy_name);
+		if(item)
+		{
+			gboolean use_proxy, use_same_proxy;
+			gchar *name, *http_host, *https_host, *ftp_host, *no_proxies_on;
+			guint http_port, https_port, ftp_port;
+
+			g_object_get(G_OBJECT(item),
+				     "name", &name,
+				     "use_proxy", &use_proxy,
+				     "use_same_proxy", &use_same_proxy,
+				     "http_host", &http_host,
+				     "http_port", &http_port,
+				     "https_host", &https_host,
+				     "https_port", &https_port,
+				     "ftp_host", &ftp_host,
+				     "ftp_port", &ftp_port,
+				     "no_proxies_on", &no_proxies_on,
+				     NULL);
+			
+			if (use_proxy)
+			{
+				http->priv->use_proxy = TRUE;
+				port = http_port;
+				host = http_host;
+			}
+			else 
+			{
+				host = http->priv->hostname;
+			}
+		}
+		else
+		{
+			host = http->priv->hostname;
+		}
 	}
 	else 
 	{
 		host = http->priv->hostname;
 	}
-
+	
 	http->priv->sockID = gnet_tcp_socket_connect_async(host, port,
 							   cb_http_connect, http);
 	
-	if(uri)
-		gnet_uri_delete(uri);
+	if(item)
+		g_object_unref(G_OBJECT(item));
+
 }
 
 


Kazehakase-devel メーリングリストの案内
Back to archive index