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 .

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