aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--new/org.freedesktop.ModemManager1.Bearer.xml7
-rw-r--r--src/mm-bearer.c4
2 files changed, 11 insertions, 0 deletions
diff --git a/new/org.freedesktop.ModemManager1.Bearer.xml b/new/org.freedesktop.ModemManager1.Bearer.xml
index 68c51e1d..e771a98e 100644
--- a/new/org.freedesktop.ModemManager1.Bearer.xml
+++ b/new/org.freedesktop.ModemManager1.Bearer.xml
@@ -220,6 +220,13 @@
<property name="Ip6Config" type="a{sv}" access="read" />
<!--
+ IpTimeout:
+
+ Maximum time to wait for a successful IP establishment, when PPP is used.
+ -->
+ <property name="IpTimeout" type="u" access="read" />
+
+ <!--
Properties:
List of properties used when creating the bearer.
diff --git a/src/mm-bearer.c b/src/mm-bearer.c
index 5506d2c7..b14f4789 100644
--- a/src/mm-bearer.c
+++ b/src/mm-bearer.c
@@ -34,6 +34,9 @@
#include "mm-log.h"
#include "mm-modem-helpers.h"
+/* We require up to 20s to get a proper IP when using PPP */
+#define MM_BEARER_IP_TIMEOUT_DEFAULT 20
+
G_DEFINE_TYPE (MMBearer, mm_bearer, MM_GDBUS_TYPE_BEARER_SKELETON);
enum {
@@ -650,6 +653,7 @@ mm_bearer_init (MMBearer *self)
mm_gdbus_bearer_set_connected (MM_GDBUS_BEARER (self), FALSE);
mm_gdbus_bearer_set_suspended (MM_GDBUS_BEARER (self), FALSE);
mm_gdbus_bearer_set_properties (MM_GDBUS_BEARER (self), NULL);
+ mm_gdbus_bearer_set_ip_timeout (MM_GDBUS_BEARER (self), MM_BEARER_IP_TIMEOUT_DEFAULT);
mm_gdbus_bearer_set_ip4_config (MM_GDBUS_BEARER (self),
mm_common_bearer_ip_config_get_dictionary (NULL));
mm_gdbus_bearer_set_ip6_config (MM_GDBUS_BEARER (self),