aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@novell.com>2010-04-20 00:13:14 +0800
committerMichael Meeks <michael.meeks@novell.com>2010-04-20 00:13:14 +0800
commit8505a33d996442ba045333883518d744263ead23 (patch)
tree84997679312620f35db5378576a37756cd6e28df
parent574b961a0f75d5fe928e2e529712d39cc1062162 (diff)
downloadgsoc2013-evolution-8505a33d996442ba045333883518d744263ead23.tar.gz
gsoc2013-evolution-8505a33d996442ba045333883518d744263ead23.tar.zst
gsoc2013-evolution-8505a33d996442ba045333883518d744263ead23.zip
add proxy support to auto-configuration
-rw-r--r--capplet/settings/mail-guess-servers.c18
-rw-r--r--modules/calendar/e-cal-shell-view.c3
2 files changed, 15 insertions, 6 deletions
diff --git a/capplet/settings/mail-guess-servers.c b/capplet/settings/mail-guess-servers.c
index 6f42680f11..f94fbb90e6 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 b845fc68d6..cf356cbc6d 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);