On Wed, 2016-06-29 at 02:08 +0530, Atul Anand wrote:
> Apologies for these stupid mistakes. And there's no reason to export
> ProxyConfig on DBus. Only useful property was pac-url which also
> isn't
> needed to be on Bus as the url is apparently passed into pacrunner.
> Will remove them .

No problem, they aren't stupid mistakes you've worked with the NM and
GDBus code for a couple years.  Plus copy & paste is pretty standard
for a new GObject :)  I'm pretty sure nobody writes them from scratch.

Dan

> Thanks!
> 
> On 6/29/16, Dan Williams <d...@redhat.com> wrote:
> > 
> > On Fri, 2016-06-24 at 00:42 +0530, Atul Anand wrote:
> > > 
> > > A new Object NMProxyConfig added with properties for proxies,
> > > PAC Url and PAC Script. Getters are setters implemented for
> > > manipulating those fields.
> > > 
> > I couldn't find anywhere in the code that actually uses the GObject
> > properties for the ProxyConfig object, it seems everything uses the
> > accessors.  Which is fine, as long as the object isn't exported
> > over D-
> > Bus, and since I don't think it is, we probably don't need GObject
> > properties on the ProxyConfig object yet.
> > 
> > Dan
> > 
> > > 
> > > ---
> > >  src/Makefile.am       |   4 +
> > >  src/nm-proxy-config.c | 243
> > > ++++++++++++++++++++++++++++++++++++++++++++++++++
> > >  src/nm-proxy-config.h |  53 +++++++++++
> > >  3 files changed, 300 insertions(+)
> > >  create mode 100644 src/nm-proxy-config.c
> > >  create mode 100644 src/nm-proxy-config.h
> > > 
> > > diff --git a/src/Makefile.am b/src/Makefile.am
> > > index 5e289d9..700cfc4 100644
> > > --- a/src/Makefile.am
> > > +++ b/src/Makefile.am
> > > @@ -415,6 +415,8 @@ libNetworkManager_la_SOURCES = \
> > >   nm-exported-object.h \
> > >   nm-firewall-manager.c \
> > >   nm-firewall-manager.h \
> > > + nm-proxy-config.c \
> > > + nm-proxy-config.h \
> > >   nm-ip4-config.c \
> > >   nm-ip4-config.h \
> > >   nm-ip6-config.c \
> > > @@ -565,6 +567,8 @@ libnm_iface_helper_la_SOURCES = \
> > >   \
> > >   nm-exported-object.c \
> > >   nm-exported-object.h \
> > > + nm-proxy-config.c \
> > > + nm-proxy-config.h \
> > >   nm-ip4-config.c \
> > >   nm-ip4-config.h \
> > >   nm-ip6-config.c \
> > > diff --git a/src/nm-proxy-config.c b/src/nm-proxy-config.c
> > > new file mode 100644
> > > index 0000000..93f9b21
> > > --- /dev/null
> > > +++ b/src/nm-proxy-config.c
> > > @@ -0,0 +1,243 @@
> > > +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-
> > > offset: 4
> > > -*- */
> > > +
> > > +#include "nm-default.h"
> > > +
> > > +#include "nm-proxy-config.h"
> > > +
> > > +#include <string.h>
> > > +
> > > +#include "nm-utils.h"
> > > +#include "NetworkManagerUtils.h"
> > > +
> > > +#define NM_PROXY_CONFIG_GET_PRIVATE(o)
> > > (G_TYPE_INSTANCE_GET_PRIVATE
> > > ((o), NM_TYPE_PROXY_CONFIG, NMProxyConfigPrivate))
> > > +
> > > +G_DEFINE_TYPE (NMProxyConfig, nm_proxy_config, G_TYPE_OBJECT)
> > > +
> > > +typedef struct {
> > > + NMProxyConfigMethod method;
> > > + GPtrArray *proxies;
> > > + char *pac_url;
> > > + char *pac_script;
> > > +} NMProxyConfigPrivate;
> > > +
> > > +NM_GOBJECT_PROPERTIES_DEFINE (NMProxyConfig,
> > > + PROP_METHOD,
> > > + PROP_PROXIES,
> > > + PROP_PAC_URL,
> > > + PROP_PAC_SCRIPT,
> > > +);
> > > +
> > > +NMProxyConfig *
> > > +nm_proxy_config_new (void)
> > > +{
> > > + return NM_PROXY_CONFIG (g_object_new
> > > (NM_TYPE_PROXY_CONFIG,
> > > NULL));
> > > +}
> > > +
> > > +void
> > > +nm_proxy_config_set_method (NMProxyConfig *config,
> > > NMProxyConfigMethod method)
> > > +{
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (config);
> > > +
> > > + priv->method = method;
> > > +}
> > > +
> > > +NMProxyConfigMethod
> > > +nm_proxy_config_get_method (const NMProxyConfig *config)
> > > +{
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (config);
> > > +
> > > + return priv->method;
> > > +}
> > > +
> > > +void
> > > +nm_proxy_config_reset_proxies (NMProxyConfig *config)
> > > +{
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (config);
> > > +
> > > + if (priv->proxies->len !=0) {
> > > +         g_ptr_array_set_size (priv->proxies, 0);
> > > +         _notify (config, PROP_PROXIES);
> > > + }
> > > +}
> > > +
> > > +void
> > > +nm_proxy_config_add_proxy (NMProxyConfig *config, const char
> > > *proxy)
> > > +{
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (config);
> > > + int i;
> > > +
> > > + g_return_if_fail (proxy != NULL);
> > > + g_return_if_fail (proxy[0] != '\0');
> > > +
> > > + for (i = 0; i < priv->proxies->len; i++)
> > > +         if (!g_strcmp0 (g_ptr_array_index (priv-
> > > >proxies,
> > > i), proxy))
> > > +                 return;
> > > +
> > > + g_ptr_array_add (priv->proxies, g_strdup (proxy));
> > > + _notify (config, PROP_PROXIES);
> > > +}
> > > +
> > > +void
> > > +nm_proxy_config_del_proxy (NMProxyConfig *config, guint i)
> > > +{
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (config);
> > > +
> > > + g_return_if_fail (i < priv->proxies->len);
> > > +
> > > + g_ptr_array_remove_index (priv->proxies, i);
> > > + _notify (config, PROP_PROXIES);
> > > +}
> > > +
> > > +guint32
> > > +nm_proxy_config_get_num_proxies (const NMProxyConfig *config)
> > > +{
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (config);
> > > +
> > > + return priv->proxies->len;
> > > +}
> > > +
> > > +const char *
> > > +nm_proxy_config_get_proxy (const NMProxyConfig *config, guint i)
> > > +{
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (config);
> > > +
> > > + return g_ptr_array_index (priv->proxies, i);
> > > +}
> > > +
> > > +void
> > > +nm_proxy_config_set_pac_url (NMProxyConfig *config, const char
> > > *url)
> > > +{
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (config);
> > > +
> > > + g_free (priv->pac_url);
> > > + priv->pac_url = g_strdup (url);
> > > +}
> > > +
> > > +const char *
> > > +nm_proxy_config_get_pac_url (const NMProxyConfig *config)
> > > +{
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (config);
> > > +
> > > + return priv->pac_url;
> > > +}
> > > +
> > > +void
> > > +nm_proxy_config_set_pac_script (NMProxyConfig *config, const
> > > char
> > > *script)
> > > +{
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (config);
> > > +
> > > + g_free (priv->pac_script);
> > > + priv->pac_script = g_strdup (script);
> > > +}
> > > +
> > > +const char *
> > > +nm_proxy_config_get_pac_script (const NMProxyConfig *config)
> > > +{
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (config);
> > > +
> > > + return priv->pac_script;
> > > +}
> > > +
> > > +static void
> > > +nm_proxy_config_init (NMProxyConfig *config)
> > > +{
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (config);
> > > +
> > > + priv->method = NM_PROXY_CONFIG_METHOD_NONE;
> > > + priv->proxies = g_ptr_array_new_with_free_func (g_free);
> > > +}
> > > +
> > > +static void
> > > +finalize (GObject *object)
> > > +{
> > > + NMProxyConfig *self = NM_PROXY_CONFIG (object);
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (self);
> > > +
> > > + g_ptr_array_unref (priv->proxies);
> > > + g_free (priv->pac_url);
> > > + g_free (priv->pac_script);
> > > +
> > > + G_OBJECT_CLASS (nm_proxy_config_parent_class)->finalize
> > > (object);
> > > +}
> > > +
> > > +static void
> > > +get_property (GObject *object, guint prop_id,
> > > +              GValue *value, GParamSpec *pspec)
> > > +{
> > > + NMProxyConfig *config = NM_PROXY_CONFIG (object);
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (config);
> > > +
> > > + switch (prop_id) {
> > > + case PROP_METHOD:
> > > +         g_value_set_int (value, priv->method);
> > > +         break;
> > > + case PROP_PROXIES:
> > > +         nm_utils_g_value_set_strv (value, priv-
> > > >proxies);
> > > +         break;
> > > + case PROP_PAC_URL:
> > > +         g_value_set_string (value, priv->pac_url);
> > > +         break;
> > > + case PROP_PAC_SCRIPT:
> > > +         g_value_set_string (value, priv->pac_script);
> > > +         break;
> > > + default:
> > > +         G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
> > > prop_id,
> > > pspec);
> > > +         break;
> > > + }
> > > +}
> > > +
> > > +static void
> > > +set_property (GObject *object,
> > > +              guint prop_id,
> > > +              const GValue *value,
> > > +              GParamSpec *pspec)
> > > +{
> > > + NMProxyConfig *self = NM_PROXY_CONFIG (object);
> > > + NMProxyConfigPrivate *priv = NM_PROXY_CONFIG_GET_PRIVATE
> > > (self);
> > > +
> > > + switch (prop_id) {
> > > + case PROP_METHOD:
> > > +         priv->method = g_value_get_int (value);
> > > +         break;
> > > + default:
> > > +         G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
> > > prop_id,
> > > pspec);
> > > +         break;
> > > + }
> > > +}
> > > +
> > > +static void
> > > +nm_proxy_config_class_init (NMProxyConfigClass *klass)
> > > +{
> > > + GObjectClass *object_class = G_OBJECT_CLASS (klass);
> > > +
> > > + g_type_class_add_private (object_class, sizeof
> > > (NMProxyConfigPrivate));
> > > +
> > > + /* virtual methods */
> > > + object_class->get_property = get_property;
> > > + object_class->set_property = set_property;
> > > + object_class->finalize = finalize;
> > > +
> > > + obj_properties[PROP_METHOD] =
> > > +         g_param_spec_int (NM_PROXY_CONFIG_METHOD, "",
> > > "",
> > > +                           0, G_MAXINT, 0,
> > > +                           G_PARAM_READWRITE |
> > > +                           G_PARAM_CONSTRUCT_ONLY |
> > > +                           G_PARAM_STATIC_STRINGS);
> > > + obj_properties[PROP_PROXIES] =
> > > +         g_param_spec_boxed (NM_PROXY_CONFIG_PROXIES, "",
> > > "",
> > > +                             G_TYPE_STRV,
> > > +                             G_PARAM_READABLE |
> > > +                             G_PARAM_STATIC_STRINGS);
> > > + obj_properties[PROP_PAC_URL] =
> > > +         g_param_spec_string (NM_PROXY_CONFIG_PAC_URL,
> > > "",
> > > "",
> > > +                              NULL,
> > > +                              G_PARAM_READABLE |
> > > +                              G_PARAM_STATIC_STRINGS);
> > > + obj_properties[PROP_PAC_SCRIPT] =
> > > +         g_param_spec_string (NM_PROXY_CONFIG_PAC_SCRIPT,
> > > "",
> > > "",
> > > +                              NULL,
> > > +                              G_PARAM_READABLE |
> > > +                              G_PARAM_STATIC_STRINGS);
> > > +
> > > + g_object_class_install_properties (object_class,
> > > _PROPERTY_ENUMS_LAST, obj_properties);
> > > +}
> > > diff --git a/src/nm-proxy-config.h b/src/nm-proxy-config.h
> > > new file mode 100644
> > > index 0000000..b709e82
> > > --- /dev/null
> > > +++ b/src/nm-proxy-config.h
> > > @@ -0,0 +1,53 @@
> > > +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-
> > > offset: 4
> > > -*- */
> > > +
> > > +#include "nm-default.h"
> > > +
> > > +#ifndef __NETWORKMANAGER_PROXY_CONFIG_H__
> > > +#define __NETWORKMANAGER_PROXY_CONFIG_H__
> > > +
> > > +typedef enum {
> > > + NM_PROXY_CONFIG_METHOD_NONE = 0,
> > > + NM_PROXY_CONFIG_METHOD_AUTO,
> > > + NM_PROXY_CONFIG_METHOD_MANUAL
> > > +} NMProxyConfigMethod;
> > > +
> > > +#define NM_TYPE_PROXY_CONFIG (nm_proxy_config_get_type ())
> > > +#define NM_PROXY_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj),
> > > NM_TYPE_PROXY_CONFIG, NMProxyConfig))
> > > +#define NM_PROXY_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST
> > > ((klass), NM_TYPE_PROXY_CONFIG, NMProxyConfigClass))
> > > +#define NM_IS_PROXY_CONFIG(obj) (G_TYPE_CHECK_INSTANCE_TYPE
> > > ((obj),
> > > NM_TYPE_PROXY_CONFIG))
> > > +#define NM_IS_PROXY_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE
> > > ((klass), NM_TYPE_PROXY_CONFIG))
> > > +#define NM_PROXY_CONFIG_GET_CLASS(obj)
> > > (G_TYPE_INSTANCE_GET_CLASS
> > > ((obj), NM_TYPE_PROXY_CONFIG, NMProxyConfigClass))
> > > +
> > > +struct _NMProxyConfig {
> > > + GObject parent;
> > > +};
> > > +
> > > +typedef struct {
> > > + GObjectClass parent;
> > > +} NMProxyConfigClass;
> > > +
> > > +#define NM_PROXY_CONFIG_METHOD "method"
> > > +#define NM_PROXY_CONFIG_PROXIES "proxies"
> > > +#define NM_PROXY_CONFIG_PAC_URL "pac-url"
> > > +#define NM_PROXY_CONFIG_PAC_SCRIPT "pac-script"
> > > +
> > > +GType nm_proxy_config_get_type (void);
> > > +
> > > +NMProxyConfig * nm_proxy_config_new (void);
> > > +
> > > +void nm_proxy_config_set_method (NMProxyConfig *config,
> > > NMProxyConfigMethod method);
> > > +NMProxyConfigMethod nm_proxy_config_get_method (const
> > > NMProxyConfig
> > > *config);
> > > +
> > > +void nm_proxy_config_reset_proxies (NMProxyConfig *config);
> > > +void nm_proxy_config_add_proxy (NMProxyConfig *config, const
> > > char
> > > *proxy);
> > > +void nm_proxy_config_del_proxy (NMProxyConfig *config, guint i);
> > > +guint32 nm_proxy_config_get_num_proxies (const NMProxyConfig
> > > *config);
> > > +const char * nm_proxy_config_get_proxy (const NMProxyConfig
> > > *config,
> > > guint i);
> > > +
> > > +void nm_proxy_config_set_pac_url (NMProxyConfig *config, const
> > > char
> > > *url);
> > > +const char * nm_proxy_config_get_pac_url (const NMProxyConfig
> > > *config);
> > > +
> > > +void nm_proxy_config_set_pac_script (NMProxyConfig *config,
> > > const
> > > char *script);
> > > +const char * nm_proxy_config_get_pac_script (const NMProxyConfig
> > > *config);
> > > +
> > > +#endif /* __NETWORKMANAGER_PROXY_CONFIG_H__ */
_______________________________________________
networkmanager-list mailing list
networkmanager-list@gnome.org
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to