about summary refs log tree commit diff
path: root/libnm-util/nm-setting-ip4-config.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-util/nm-setting-ip4-config.c')
-rw-r--r--libnm-util/nm-setting-ip4-config.c43
1 files changed, 40 insertions, 3 deletions
diff --git a/libnm-util/nm-setting-ip4-config.c b/libnm-util/nm-setting-ip4-config.c
index 4db43cbc..efc226b3 100644
--- a/libnm-util/nm-setting-ip4-config.c
+++ b/libnm-util/nm-setting-ip4-config.c
@@ -24,16 +24,14 @@
 
 #include <string.h>
 #include <dbus/dbus-glib.h>
-#include <glib/gi18n-lib.h>
 
+#include "nm-default.h"
 #include "nm-setting-ip4-config.h"
 #include "nm-param-spec-specialized.h"
 #include "nm-utils.h"
 #include "nm-dbus-glib-types.h"
-#include "nm-glib-compat.h"
 #include "nm-setting-private.h"
 
-
 /**
  * SECTION:nm-setting-ip4-config
  * @short_description: Describes IPv4 addressing, routing, and name service properties
@@ -84,6 +82,7 @@ typedef struct {
 	char *dhcp_client_id;
 	gboolean dhcp_send_hostname;
 	char *dhcp_hostname;
+	int dhcp_timeout;
 	gboolean never_default;
 	gboolean may_fail;
 } NMSettingIP4ConfigPrivate;
@@ -99,6 +98,7 @@ enum {
 	PROP_IGNORE_AUTO_ROUTES,
 	PROP_IGNORE_AUTO_DNS,
 	PROP_DHCP_CLIENT_ID,
+	PROP_DHCP_TIMEOUT,
 	PROP_DHCP_SEND_HOSTNAME,
 	PROP_DHCP_HOSTNAME,
 	PROP_NEVER_DEFAULT,
@@ -803,6 +803,24 @@ nm_setting_ip4_config_get_dhcp_hostname (NMSettingIP4Config *setting)
 }
 
 /**
+ * nm_setting_ip4_config_get_dhcp_timeout:
+ * @setting: the #NMSettingIP4Config
+ *
+ * Returns the value contained in the #NMSettingIP4Config:dhcp-timeout
+ * property.
+ *
+ * Returns: The number of seconds after which unfinished DHCP transaction
+ * fails or zero for "default".
+ **/
+int
+nm_setting_ip4_config_get_dhcp_timeout (NMSettingIP4Config *setting)
+{
+	g_return_val_if_fail (NM_IS_SETTING_IP4_CONFIG (setting), 0);
+
+	return NM_SETTING_IP4_CONFIG_GET_PRIVATE (setting)->dhcp_timeout;
+}
+
+/**
  * nm_setting_ip4_config_get_never_default:
  * @setting: the #NMSettingIP4Config
  *
@@ -1052,6 +1070,9 @@ set_property (GObject *object, guint prop_id,
 		g_free (priv->dhcp_hostname);
 		priv->dhcp_hostname = g_value_dup_string (value);
 		break;
+	case PROP_DHCP_TIMEOUT:
+		priv->dhcp_timeout = g_value_get_uint (value);
+		break;
 	case PROP_NEVER_DEFAULT:
 		priv->never_default = g_value_get_boolean (value);
 		break;
@@ -1105,6 +1126,9 @@ get_property (GObject *object, guint prop_id,
 	case PROP_DHCP_HOSTNAME:
 		g_value_set_string (value, nm_setting_ip4_config_get_dhcp_hostname (setting));
 		break;
+	case PROP_DHCP_TIMEOUT:
+		g_value_set_uint (value, nm_setting_ip4_config_get_dhcp_timeout (setting));
+		break;
 	case PROP_NEVER_DEFAULT:
 		g_value_set_boolean (value, priv->never_default);
 		break;
@@ -1328,6 +1352,19 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *setting_class)
 		                      G_PARAM_STATIC_STRINGS));
 
 	/**
+	 * NMSettingIP4Config:dhcp-timeout:
+	 *
+	 * Number of seconds after which the unfinished DHCP transaction fails
+	 * or zero for default.
+	 **/
+	g_object_class_install_property
+		(object_class, PROP_DHCP_TIMEOUT,
+		 g_param_spec_uint (NM_SETTING_IP4_CONFIG_DHCP_TIMEOUT, "", "",
+		                    0, G_MAXUINT32, 0,
+		                    G_PARAM_READWRITE |
+		                    G_PARAM_STATIC_STRINGS));
+
+	/**
 	 * NMSettingIP4Config:never-default:
 	 *
 	 * If %TRUE, this connection will never be the default IPv4 connection,