diff options
author | Tambet Ingo <tambet@gmail.com> | 2007-11-07 16:06:43 +0000 |
---|---|---|
committer | Tambet Ingo <tambet@gmail.com> | 2007-11-07 16:06:43 +0000 |
commit | 6b79d40a76a3c8ef516863581fb53b6a0da48ea2 (patch) | |
tree | 476dd12e4fd2684405911524903402f5cb2b9b84 /libnm-util/nm-setting-ppp.c | |
parent | 2682e916bcbebe12a467f92f8910815515f40c55 (diff) | |
download | NetworkManager-6b79d40a76a3c8ef516863581fb53b6a0da48ea2.tar.gz |
2007-11-07 Tambet Ingo <tambet@gmail.com>
Rework NMSetting structures: Move each setting to it's own file.
Convert to GObject. Remove home grown setting types and use
GTypes.
Use GObject property introspection for hash conversion,
enumerating
properties, etc.
* libnm-util/nm-setting-connection.[ch]
* libnm-util/nm-setting-ip4-config.[ch]
* libnm-util/nm-setting-ppp.[ch]
* libnm-util/nm-setting-vpn.[ch]
* libnm-util/nm-setting-vpn-properties.[ch]
* libnm-util/nm-setting-wired.[ch]
* libnm-util/nm-setting-wireless.[ch]
* libnm-util/nm-setting-wireless-security.[ch]
New files, each containing a setting.
* libnm-util/nm-setting-template.[ch]: A template for creating
* new
settings. To use it, just replace 'template' with the new
setting
name, and you're half-way done.
* libnm-util/nm-setting.c: Convert to GObject and use GObject
introspection instead of internal types and tables.
* libnm-util/nm-connection.c: Adapt the new NMSetting work.
* libnm-util/nm-param-spec-specialized.[ch]: Implement. Handles
GValue types defined by dbus-glib for composed types like
collections,
structures and maps.
* src/*: The API of NMSetting and NMConnection changed a bit:
* Getting
a setting from connection takes the setting type now. Also,
since
the settings are in multiple files, include relevant settings.
git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3068 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Diffstat (limited to 'libnm-util/nm-setting-ppp.c')
-rw-r--r-- | libnm-util/nm-setting-ppp.c | 326 |
1 files changed, 326 insertions, 0 deletions
diff --git a/libnm-util/nm-setting-ppp.c b/libnm-util/nm-setting-ppp.c new file mode 100644 index 0000000000..1f358cd534 --- /dev/null +++ b/libnm-util/nm-setting-ppp.c @@ -0,0 +1,326 @@ +/* -*- Mode: C; tab-width: 5; indent-tabs-mode: t; c-basic-offset: 5 -*- */ + +#include "nm-setting-ppp.h" + +G_DEFINE_TYPE (NMSettingPPP, nm_setting_ppp, NM_TYPE_SETTING) + +enum { + PROP_0, + PROP_NOAUTH, + PROP_REFUSE_EAP, + PROP_REFUSE_CHAP, + PROP_REFUSE_MSCHAP, + PROP_NOBSDCOMP, + PROP_NODEFLATE, + PROP_REQUIRE_MPPE, + PROP_REQUIRE_MPPE_128, + PROP_MPPE_STATEFUL, + PROP_REQUIRE_MPPC, + PROP_CRTSCTS, + PROP_USEPEERDNS, + PROP_BAUD, + PROP_MRU, + PROP_MTU, + PROP_LCP_ECHO_FAILURE, + PROP_LCP_ECHO_INTERVAL, + + LAST_PROP +}; + +NMSetting * +nm_setting_ppp_new (void) +{ + return (NMSetting *) g_object_new (NM_TYPE_SETTING_PPP, NULL); +} + +static gboolean +verify (NMSetting *setting, GSList *all_settings) +{ +/* NMSettingPPP *self = NM_SETTING_PPP (setting); */ + + /* FIXME: Do we even want this or can we just let pppd evaluate the options? */ + return TRUE; +} + +static void +nm_setting_ppp_init (NMSettingPPP *setting) +{ + ((NMSetting *) setting)->name = g_strdup (NM_SETTING_PPP_SETTING_NAME); +} + +static void +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) +{ + NMSettingPPP *setting = NM_SETTING_PPP (object); + + switch (prop_id) { + case PROP_NOAUTH: + setting->noauth = g_value_get_boolean (value); + break; + case PROP_REFUSE_EAP: + setting->refuse_eap = g_value_get_boolean (value); + break; + case PROP_REFUSE_CHAP: + setting->refuse_chap = g_value_get_boolean (value); + break; + case PROP_REFUSE_MSCHAP: + setting->refuse_mschap = g_value_get_boolean (value); + break; + case PROP_NOBSDCOMP: + setting->nobsdcomp = g_value_get_boolean (value); + break; + case PROP_NODEFLATE: + setting->nodeflate = g_value_get_boolean (value); + break; + case PROP_REQUIRE_MPPE: + setting->require_mppe = g_value_get_boolean (value); + break; + case PROP_REQUIRE_MPPE_128: + setting->require_mppe_128 = g_value_get_boolean (value); + break; + case PROP_MPPE_STATEFUL: + setting->mppe_stateful = g_value_get_boolean (value); + break; + case PROP_REQUIRE_MPPC: + setting->require_mppc = g_value_get_boolean (value); + break; + case PROP_CRTSCTS: + setting->crtscts = g_value_get_boolean (value); + break; + case PROP_USEPEERDNS: + setting->usepeerdns = g_value_get_boolean (value); + break; + case PROP_BAUD: + setting->baud = g_value_get_uint (value); + break; + case PROP_MRU: + setting->mru = g_value_get_uint (value); + break; + case PROP_MTU: + setting->mtu = g_value_get_uint (value); + break; + case PROP_LCP_ECHO_FAILURE: + setting->lcp_echo_failure = g_value_get_uint (value); + break; + case PROP_LCP_ECHO_INTERVAL: + setting->lcp_echo_interval = g_value_get_uint (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) +{ + NMSettingPPP *setting = NM_SETTING_PPP (object); + + switch (prop_id) { + case PROP_NOAUTH: + g_value_set_boolean (value, setting->noauth); + break; + case PROP_REFUSE_EAP: + g_value_set_boolean (value, setting->refuse_eap); + break; + case PROP_REFUSE_CHAP: + g_value_set_boolean (value, setting->refuse_chap); + break; + case PROP_REFUSE_MSCHAP: + g_value_set_boolean (value, setting->refuse_mschap); + break; + case PROP_NOBSDCOMP: + g_value_set_boolean (value, setting->nobsdcomp); + break; + case PROP_NODEFLATE: + g_value_set_boolean (value, setting->nodeflate); + break; + case PROP_REQUIRE_MPPE: + g_value_set_boolean (value, setting->require_mppe); + break; + case PROP_REQUIRE_MPPE_128: + g_value_set_boolean (value, setting->require_mppe_128); + break; + case PROP_MPPE_STATEFUL: + g_value_set_boolean (value, setting->mppe_stateful); + break; + case PROP_REQUIRE_MPPC: + g_value_set_boolean (value, setting->require_mppc); + break; + case PROP_CRTSCTS: + g_value_set_boolean (value, setting->crtscts); + break; + case PROP_USEPEERDNS: + g_value_set_boolean (value, setting->usepeerdns); + break; + case PROP_BAUD: + g_value_set_uint (value, setting->baud); + break; + case PROP_MRU: + g_value_set_uint (value, setting->mru); + break; + case PROP_MTU: + g_value_set_uint (value, setting->mtu); + break; + case PROP_LCP_ECHO_FAILURE: + g_value_set_uint (value, setting->lcp_echo_failure); + break; + case PROP_LCP_ECHO_INTERVAL: + g_value_set_uint (value, setting->lcp_echo_interval); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +nm_setting_ppp_class_init (NMSettingPPPClass *setting_class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (setting_class); + NMSettingClass *parent_class = NM_SETTING_CLASS (setting_class); + + /* virtual methods */ + object_class->set_property = set_property; + object_class->get_property = get_property; + parent_class->verify = verify; + + /* Properties */ + g_object_class_install_property + (object_class, PROP_NOAUTH, + g_param_spec_boolean (NM_SETTING_PPP_NOAUTH, + "NoAuth", + "NoAuth", + FALSE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_REFUSE_EAP, + g_param_spec_boolean (NM_SETTING_PPP_REFUSE_EAP, + "Refuse EAP", + "Refuse EAP", + FALSE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_REFUSE_CHAP, + g_param_spec_boolean (NM_SETTING_PPP_REFUSE_CHAP, + "Refuse CHAP", + "Refuse CHAP", + FALSE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_REFUSE_MSCHAP, + g_param_spec_boolean (NM_SETTING_PPP_REFUSE_MSCHAP, + "Refuse MSCHAP", + "Refuse MSCHAP", + FALSE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_NOBSDCOMP, + g_param_spec_boolean (NM_SETTING_PPP_NOBSDCOMP, + "No BSD compression", + "No BSD compression", + FALSE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_NODEFLATE, + g_param_spec_boolean (NM_SETTING_PPP_NODEFLATE, + "No deflate", + "No deflate", + FALSE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_REQUIRE_MPPE, + g_param_spec_boolean (NM_SETTING_PPP_REQUIRE_MPPE, + "Require MPPE", + "Require MPPE", + FALSE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_REQUIRE_MPPE_128, + g_param_spec_boolean (NM_SETTING_PPP_REQUIRE_MPPE_128, + "Require MPPE 128", + "Require MPPE 128", + FALSE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_MPPE_STATEFUL, + g_param_spec_boolean (NM_SETTING_PPP_MPPE_STATEFUL, + "MPPE stateful", + "MPPE stateful", + FALSE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_REQUIRE_MPPC, + g_param_spec_boolean (NM_SETTING_PPP_REQUIRE_MPPC, + "Require MPPC", + "Require MPPC", + FALSE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_CRTSCTS, + g_param_spec_boolean (NM_SETTING_PPP_CRTSCTS, + "CRTSCTS", + "CRTSCTS", + FALSE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_USEPEERDNS, + g_param_spec_boolean (NM_SETTING_PPP_USEPEERDNS, + "Use peer DNS", + "Use peer DNS", + FALSE, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_BAUD, + g_param_spec_uint (NM_SETTING_PPP_BAUD, + "Baud", + "Baud", + 0, G_MAXUINT32, 0, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_MRU, + g_param_spec_uint (NM_SETTING_PPP_MRU, + "MRU", + "MRU", + 0, G_MAXUINT32, 0, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_MTU, + g_param_spec_uint (NM_SETTING_PPP_MTU, + "MTU", + "MTU", + 0, G_MAXUINT32, 0, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_LCP_ECHO_FAILURE, + g_param_spec_uint (NM_SETTING_PPP_LCP_ECHO_FAILURE, + "LCP echo failure", + "LCP echo failure", + 0, G_MAXUINT32, 0, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); + + g_object_class_install_property + (object_class, PROP_LCP_ECHO_INTERVAL, + g_param_spec_uint (NM_SETTING_PPP_LCP_ECHO_INTERVAL, + "LCP echo interval", + "LCP echo interval", + 0, G_MAXUINT32, 0, + G_PARAM_READWRITE | NM_SETTING_PARAM_SERIALIZE)); +} |