summaryrefslogtreecommitdiff
path: root/libnm-util/nm-setting-ppp.c
diff options
context:
space:
mode:
authorTambet Ingo <tambet@gmail.com>2007-11-07 16:06:43 +0000
committerTambet Ingo <tambet@gmail.com>2007-11-07 16:06:43 +0000
commit6b79d40a76a3c8ef516863581fb53b6a0da48ea2 (patch)
tree476dd12e4fd2684405911524903402f5cb2b9b84 /libnm-util/nm-setting-ppp.c
parent2682e916bcbebe12a467f92f8910815515f40c55 (diff)
downloadNetworkManager-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.c326
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));
+}