[evolution/express2: 1/2] add proxy support to auto-configuration



commit 8505a33d996442ba045333883518d744263ead23
Author: Michael Meeks <michael meeks novell com>
Date:   Mon Apr 19 17:13:14 2010 +0100

    add proxy support to auto-configuration

 capplet/settings/mail-guess-servers.c |   18 +++++++++++++-----
 modules/calendar/e-cal-shell-view.c   |    3 ++-
 2 files changed, 15 insertions(+), 6 deletions(-)
---
diff --git a/capplet/settings/mail-guess-servers.c b/capplet/settings/mail-guess-servers.c
index 6f42680..f94fbb9 100644
--- a/capplet/settings/mail-guess-servers.c
+++ b/capplet/settings/mail-guess-servers.c
@@ -42,6 +42,8 @@
 #include <libxml/tree.h>
 #include <libxml/xmlmemory.h>
 
+#include <libedataserver/e-proxy.h>
+
 #include <shell/e-shell.h>
 
 #include "mail-guess-servers.h"
@@ -242,10 +244,14 @@ guess_when_online (EmailProvider *provider)
 {
 	const gchar *cafile = NULL;
 	gchar *url;
-	SoupURI *proxy = NULL, *parsed;
+	EProxy *proxy;
+	SoupURI *parsed;
 	SoupMessage *msg;
 	SoupSession *session;
 
+	proxy = e_proxy_new ();
+	e_proxy_setup_proxy (proxy);
+
 	url = g_strdup_printf("%s/%s", "http://api.gnome.org/evolution/autoconfig";, provider->domain);
 	parsed = soup_uri_new (url);
 	soup_uri_free (parsed);
@@ -255,10 +261,11 @@ guess_when_online (EmailProvider *provider)
 		SOUP_SESSION_USER_AGENT, "get ",
 		NULL);
 
-	if (proxy) {
-		g_object_set (G_OBJECT (session),
-			      SOUP_SESSION_PROXY_URI, proxy,
-			      NULL);
+	if (e_proxy_require_proxy_for_uri (proxy, url)) {
+		SoupURI *proxy_uri = e_proxy_peek_uri_for (proxy, url);
+/*		fprintf (stderr, "URL '%s' requires a proxy: '%s'\n",
+			 url, soup_uri_to_string (proxy_uri, FALSE)); */
+		g_object_set (session, SOUP_SESSION_PROXY_URI, proxy_uri, NULL);
 	}
 
 	msg = get_url (session, url);
@@ -267,6 +274,7 @@ guess_when_online (EmailProvider *provider)
 
 	parse_soup_message (msg, provider);
 
+	g_object_unref (proxy);
 	g_object_unref (msg);
 	g_object_unref(session);
 	g_free(url);
diff --git a/modules/calendar/e-cal-shell-view.c b/modules/calendar/e-cal-shell-view.c
index b845fc6..cf356cb 100644
--- a/modules/calendar/e-cal-shell-view.c
+++ b/modules/calendar/e-cal-shell-view.c
@@ -320,7 +320,8 @@ cal_shell_view_update_actions (EShellView *shell_view)
 		
 		item = e_shell_window_get_managed_widget (
 			shell_window, "/main-toolbar/send-receive");
-		gtk_widget_hide(item);	
+		if (item)
+			gtk_widget_hide(item);	
 	}
 	cal_shell_content = priv->cal_shell_content;
 	calendar = e_cal_shell_content_get_calendar (cal_shell_content);



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