[evolution-data-server] EProxy cleanup.
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] EProxy cleanup.
- Date: Mon, 14 Feb 2011 17:34:18 +0000 (UTC)
commit 8c3d8e91e6215686c5afcf5bf612f9c0ebe090c1
Author: Matthew Barnes <mbarnes redhat com>
Date: Mon Feb 14 08:16:04 2011 -0500
EProxy cleanup.
.../libedataserver/libedataserver-sections.txt | 1 +
libedataserver/e-proxy.c | 243 +++++++++-----------
libedataserver/e-proxy.h | 50 +++--
3 files changed, 147 insertions(+), 147 deletions(-)
---
diff --git a/docs/reference/libedataserver/libedataserver-sections.txt b/docs/reference/libedataserver/libedataserver-sections.txt
index a9036f6..141f548 100644
--- a/docs/reference/libedataserver/libedataserver-sections.txt
+++ b/docs/reference/libedataserver/libedataserver-sections.txt
@@ -177,6 +177,7 @@ E_PROXY
E_PROXY_CLASS
E_IS_PROXY
E_IS_PROXY_CLASS
+E_PROXY_GET_CLASS
EProxyClass
<SUBSECTION Private>
EProxyPrivate
diff --git a/libedataserver/e-proxy.c b/libedataserver/e-proxy.c
index c56443c..d743840 100644
--- a/libedataserver/e-proxy.c
+++ b/libedataserver/e-proxy.c
@@ -97,6 +97,10 @@ enum ProxyType {
#define RIGHT_KEY(sufix) (priv->type == PROXY_TYPE_SYSTEM ? KEY_GCONF_SYS_ ## sufix : KEY_GCONF_EVO_ ## sufix)
+#define E_PROXY_GET_PRIVATE(obj) \
+ (G_TYPE_INSTANCE_GET_PRIVATE \
+ ((obj), E_TYPE_PROXY, EProxyPrivate))
+
struct _EProxyPrivate {
SoupURI *uri_http, *uri_https;
guint notify_id_evo, notify_id_sys, notify_id_sys_http; /* conxn id of gconf_client_notify_add */
@@ -124,14 +128,12 @@ enum {
LAST_SIGNAL
};
-static GObjectClass *parent_class;
static guint signals[LAST_SIGNAL] = { 0 };
/* Forward declarations. */
static void ep_setting_changed (GConfClient *client, guint32 cnxn_id,
GConfEntry *entry, gpointer user_data);
-static void e_proxy_dispose (GObject* object);
static void ipv6_network_addr (const struct in6_addr *addr,
const struct in6_addr *mask,
@@ -154,101 +156,81 @@ ep_free_proxy_host_addr (ProxyHostAddr* host)
}
static void
-e_proxy_class_init (EProxyClass *klass)
+e_proxy_dispose (GObject *object)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ EProxyPrivate *priv;
+ GConfClient* client;
- parent_class = g_type_class_peek_parent (klass);
+ priv = E_PROXY_GET_PRIVATE (object);
- object_class->dispose = e_proxy_dispose;
+ client = gconf_client_get_default ();
- /* signals */
-
- /**
- * EProxy::changed:
- * @proxy: the proxy
- *
- * Emitted when proxy settings in gconf changes.
- **/
- signals[CHANGED] =
- g_signal_new ("changed",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (EProxyClass, changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
+ if (priv->notify_id_evo > 0) {
+ gconf_client_notify_remove (client, priv->notify_id_evo);
+ priv->notify_id_evo = 0;
+ }
-}
+ if (priv->notify_id_sys > 0) {
+ gconf_client_notify_remove (client, priv->notify_id_sys);
+ priv->notify_id_sys = 0;
+ }
-static void
-e_proxy_init (EProxy *pxy)
-{
- EProxyPrivate *priv;
+ if (priv->notify_id_sys_http > 0) {
+ gconf_client_notify_remove (client, priv->notify_id_sys_http);
+ priv->notify_id_sys_http = 0;
+ }
- /* allocate internal structure */
- priv = g_new0 (EProxyPrivate, 1);
- pxy->priv = priv;
- priv->ign_hosts = NULL;
- priv->ign_addrs = NULL;
- priv->uri_http = NULL;
- priv->uri_https = NULL;
- priv->notify_id_evo = 0;
- priv->notify_id_sys = 0;
- priv->notify_id_sys_http = 0;
- priv->use_proxy = FALSE;
- priv->type = PROXY_TYPE_SYSTEM;
-}
+ g_object_unref (client);
-static void
-e_proxy_dispose (GObject *object)
-{
- EProxy *proxy = (EProxy *)object;
- EProxyPrivate *priv;
+ if (priv->uri_http)
+ soup_uri_free (priv->uri_http);
- if (!E_IS_PROXY (proxy))
- return;
+ if (priv->uri_https)
+ soup_uri_free (priv->uri_https);
- priv = proxy->priv;
+ g_slist_foreach (priv->ign_hosts, (GFunc) g_free, NULL);
+ g_slist_free (priv->ign_hosts);
- if (priv) {
- GConfClient* client = NULL;
-
- if ((client = gconf_client_get_default ())) {
- if (priv->notify_id_evo > 0)
- gconf_client_notify_remove (client, priv->notify_id_evo);
- if (priv->notify_id_sys > 0)
- gconf_client_notify_remove (client, priv->notify_id_sys);
- if (priv->notify_id_sys_http > 0)
- gconf_client_notify_remove (client, priv->notify_id_sys_http);
- g_object_unref (client);
- }
+ g_slist_foreach (priv->ign_addrs, (GFunc) ep_free_proxy_host_addr, NULL);
+ g_slist_free (priv->ign_addrs);
- if (priv->uri_http)
- soup_uri_free (priv->uri_http);
- if (priv->uri_https)
- soup_uri_free (priv->uri_https);
+ /* Chain up to parent's dispose() method. */
+ G_OBJECT_CLASS (e_proxy_parent_class)->dispose (object);
+}
- if (priv->ign_hosts) {
- g_slist_foreach (priv->ign_hosts, (GFunc) g_free, NULL);
- g_slist_free (priv->ign_hosts);
- }
+static void
+e_proxy_class_init (EProxyClass *class)
+{
+ GObjectClass *object_class;
- if (priv->ign_addrs) {
- g_slist_foreach (priv->ign_addrs, (GFunc) ep_free_proxy_host_addr, NULL);
- g_slist_free (priv->ign_addrs);
- }
+ g_type_class_add_private (class, sizeof (EProxyPrivate));
- priv->notify_id_evo = 0;
- priv->notify_id_sys = 0;
- priv->notify_id_sys_http = 0;
+ object_class = G_OBJECT_CLASS (class);
+ object_class->dispose = e_proxy_dispose;
- g_free (priv);
- priv = NULL;
- }
+ /**
+ * EProxy::changed:
+ * @proxy: the #EProxy which emitted the signal
+ *
+ * Emitted when proxy settings in gconf changes.
+ **/
+ signals[CHANGED] = g_signal_new (
+ "changed",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (EProxyClass, changed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
- /* Chain up to parent's dispose() method. */
- G_OBJECT_CLASS (e_proxy_parent_class)->dispose (object);
+}
+
+static void
+e_proxy_init (EProxy *proxy)
+{
+ proxy->priv = E_PROXY_GET_PRIVATE (proxy);
+
+ proxy->priv->type = PROXY_TYPE_SYSTEM;
}
static gboolean
@@ -756,14 +738,10 @@ ep_setting_changed (GConfClient *client, guint32 cnxn_id, GConfEntry *entry, gpo
*
* Since: 2.24
**/
-EProxy*
+EProxy *
e_proxy_new (void)
{
- EProxy *proxy = NULL;
-
- proxy = g_object_new (E_TYPE_PROXY, NULL);
-
- return proxy;
+ return g_object_new (E_TYPE_PROXY, NULL);
}
/**
@@ -772,7 +750,7 @@ e_proxy_new (void)
* Since: 2.24
**/
void
-e_proxy_setup_proxy (EProxy* proxy)
+e_proxy_setup_proxy (EProxy *proxy)
{
GConfClient *client;
@@ -780,28 +758,34 @@ e_proxy_setup_proxy (EProxy* proxy)
set soup up to use the proxy,
and listen to any changes */
- if (!(client = gconf_client_get_default ()))
- return;
+ /* XXX Why can't we do this automatically in constructed() ? */
- if (!proxy || !proxy->priv)
- return;
+ g_return_if_fail (E_IS_PROXY (proxy));
+
+ client = gconf_client_get_default ();
if (proxy->priv->notify_id_evo == 0) {
/* Listen to the changes in the evolution-shell path */
- gconf_client_add_dir (client, PATH_GCONF_EVO_NETWORK_CONFIG, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
+ gconf_client_add_dir (
+ client, PATH_GCONF_EVO_NETWORK_CONFIG,
+ GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
/* and system proxy setup changes */
- gconf_client_add_dir (client, PATH_GCONF_SYS_PROXY, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
- gconf_client_add_dir (client, PATH_GCONF_SYS_HTTP_PROXY, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
-
- proxy->priv->notify_id_evo = gconf_client_notify_add (client, PATH_GCONF_EVO_NETWORK_CONFIG,
- ep_setting_changed, (gpointer)proxy,
- NULL, NULL);
- proxy->priv->notify_id_sys = gconf_client_notify_add (client, PATH_GCONF_SYS_PROXY,
- ep_setting_changed, (gpointer)proxy,
- NULL, NULL);
- proxy->priv->notify_id_sys_http = gconf_client_notify_add (client, PATH_GCONF_SYS_HTTP_PROXY,
- ep_setting_changed, (gpointer)proxy,
- NULL, NULL);
+ gconf_client_add_dir (
+ client, PATH_GCONF_SYS_PROXY,
+ GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
+ gconf_client_add_dir (
+ client, PATH_GCONF_SYS_HTTP_PROXY,
+ GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
+
+ proxy->priv->notify_id_evo = gconf_client_notify_add (
+ client, PATH_GCONF_EVO_NETWORK_CONFIG,
+ ep_setting_changed, (gpointer) proxy, NULL, NULL);
+ proxy->priv->notify_id_sys = gconf_client_notify_add (
+ client, PATH_GCONF_SYS_PROXY,
+ ep_setting_changed, (gpointer) proxy, NULL, NULL);
+ proxy->priv->notify_id_sys_http = gconf_client_notify_add (
+ client, PATH_GCONF_SYS_HTTP_PROXY,
+ ep_setting_changed, (gpointer) proxy, NULL, NULL);
}
ep_set_proxy (client, proxy, TRUE);
@@ -814,20 +798,21 @@ e_proxy_setup_proxy (EProxy* proxy)
*
* Since: 2.26
**/
-SoupURI*
-e_proxy_peek_uri_for (EProxy* proxy, const gchar *uri)
+SoupURI *
+e_proxy_peek_uri_for (EProxy *proxy,
+ const gchar *uri)
{
- SoupURI *suri;
+ SoupURI *soup_uri;
- if (!proxy || !proxy->priv || !uri || !*uri)
- return NULL;
+ g_return_val_if_fail (E_IS_PROXY (proxy), NULL);
+ g_return_val_if_fail (uri != NULL, NULL);
- suri = soup_uri_new (uri);
- g_return_val_if_fail (suri != NULL, NULL);
+ soup_uri = soup_uri_new (uri);
+ if (soup_uri == NULL)
+ return NULL;
- if (suri->scheme == SOUP_URI_SCHEME_HTTPS) {
+ if (soup_uri->scheme == SOUP_URI_SCHEME_HTTPS)
return proxy->priv->uri_https;
- }
return proxy->priv->uri_http;
}
@@ -838,30 +823,30 @@ e_proxy_peek_uri_for (EProxy* proxy, const gchar *uri)
* Since: 2.24
**/
gboolean
-e_proxy_require_proxy_for_uri (EProxy* proxy, const gchar * uri)
+e_proxy_require_proxy_for_uri (EProxy *proxy,
+ const gchar *uri)
{
- SoupURI *srv_uri = NULL;
- gboolean ret = FALSE;
+ SoupURI *soup_uri = NULL;
+ gboolean need_proxy = FALSE;
- if (!uri || !proxy || !proxy->priv)
- return ret;
+ g_return_val_if_fail (E_IS_PROXY (proxy), FALSE);
+ g_return_val_if_fail (uri != NULL, FALSE);
if (!proxy->priv->use_proxy || proxy->priv->type == PROXY_TYPE_NO_PROXY) {
d(g_print ("[%s] don't need a proxy to connect to internet\n", uri));
- return ret;
+ return FALSE;
}
- srv_uri = soup_uri_new (uri);
+ soup_uri = soup_uri_new (uri);
+ if (soup_uri == NULL)
+ return FALSE;
- if (srv_uri) {
- if (srv_uri->scheme == SOUP_URI_SCHEME_HTTPS) {
- ret = ep_need_proxy_https (proxy, srv_uri->host);
- } else {
- ret = ep_need_proxy_http (proxy, srv_uri->host);
- }
+ if (soup_uri->scheme == SOUP_URI_SCHEME_HTTPS)
+ need_proxy = ep_need_proxy_https (proxy, soup_uri->host);
+ else
+ need_proxy = ep_need_proxy_http (proxy, soup_uri->host);
- soup_uri_free (srv_uri);
- }
+ soup_uri_free (soup_uri);
- return ret;
+ return need_proxy;
}
diff --git a/libedataserver/e-proxy.h b/libedataserver/e-proxy.h
index 3f961a9..62920c9 100644
--- a/libedataserver/e-proxy.h
+++ b/libedataserver/e-proxy.h
@@ -21,21 +21,34 @@
*
*/
-#ifndef __E_PROXY_H__
-#define __E_PROXY_H__
+#ifndef E_PROXY_H
+#define E_PROXY_H
#include <libsoup/soup-uri.h>
-G_BEGIN_DECLS
+/* Standard GObject macros */
+#define E_TYPE_PROXY \
+ (e_proxy_get_type ())
+#define E_PROXY(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST \
+ ((obj), E_TYPE_PROXY, EProxy))
+#define E_PROXY_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_CAST \
+ ((cls), E_TYPE_PROXY, EProxyClass))
+#define E_IS_PROXY(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE \
+ ((obj), E_TYPE_PROXY))
+#define E_IS_PROXY_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_TYPE \
+ ((cls), E_TYPE_PROXY))
+#define E_PROXY_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS \
+ ((obj), E_TYPE_PROXY, EProxyClass))
-#define E_TYPE_PROXY (e_proxy_get_type ())
-#define E_PROXY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), E_TYPE_PROXY, EProxy))
-#define E_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), E_TYPE_PROXY, EProxyClass))
-#define E_IS_PROXY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), E_TYPE_PROXY))
-#define E_IS_PROXY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), E_TYPE_PROXY))
+G_BEGIN_DECLS
-typedef struct _EProxy EProxy;
-typedef struct _EProxyClass EProxyClass;
+typedef struct _EProxy EProxy;
+typedef struct _EProxyClass EProxyClass;
typedef struct _EProxyPrivate EProxyPrivate;
/**
@@ -50,18 +63,19 @@ struct _EProxy {
struct _EProxyClass {
GObjectClass parent_class;
- /* Signals. */
+ /* Signals */
void (*changed) (EProxy *proxy);
};
-EProxy* e_proxy_new (void);
-SoupURI* e_proxy_peek_uri_for (EProxy* proxy, const gchar *uri);
-void e_proxy_setup_proxy (EProxy* proxy);
-GType e_proxy_get_type (void);
-gboolean e_proxy_require_proxy_for_uri (EProxy *proxy,
- const gchar * uri);
+GType e_proxy_get_type (void);
+EProxy * e_proxy_new (void);
+void e_proxy_setup_proxy (EProxy *proxy);
+SoupURI * e_proxy_peek_uri_for (EProxy *proxy,
+ const gchar *uri);
+gboolean e_proxy_require_proxy_for_uri (EProxy *proxy,
+ const gchar *uri);
G_END_DECLS
-#endif
+#endif /* E_PROXY_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]