summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorarron.wang <arron.wang@intel.com>2012-07-20 16:03:05 +0800
committerZhang zhengguang <zhengguang.zhang@intel.com>2013-06-27 14:58:43 +0800
commit5627d0d9d59bc7a5cc0830bcd9f2ab3403ba4174 (patch)
treee30012849f0192d1ea5657a13c12dbb015178c63
parentfaca204b41492b1a2b3ff283ba5556a19244f132 (diff)
downloadconnman-5627d0d9d59bc7a5cc0830bcd9f2ab3403ba4174.tar.gz
connman-5627d0d9d59bc7a5cc0830bcd9f2ab3403ba4174.tar.bz2
connman-5627d0d9d59bc7a5cc0830bcd9f2ab3403ba4174.zip
Tizen: Add option to disable link local address
When dhcp is failed, the user may can't auto-generate IP address, IPV4 link local address may puzzle user when we are connected but failed to surf the Internet
-rw-r--r--configure.ac7
-rw-r--r--src/dhcp.c11
2 files changed, 18 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index ebc8170a..57b06947 100644
--- a/configure.ac
+++ b/configure.ac
@@ -377,6 +377,13 @@ if (test "${enable_wifi}" != "no"); then
$PATH:/sbin:/usr/sbin)
fi
+AC_ARG_ENABLE(linklocaladdr, AC_HELP_STRING([--disable-linklocaladdr],
+ [disable link local address when dhcp failed]), [
+ if (test "${enableval}" = "no"); then
+ CFLAGS="$CFLAGS -DDISABLE_LINK_LOCAL_ADDR"
+ fi
+])
+
AC_ARG_ENABLE(datafiles, AC_HELP_STRING([--disable-datafiles],
[don't install configuration and data files]),
[enable_datafiles=${enableval}])
diff --git a/src/dhcp.c b/src/dhcp.c
index f32bfaef..c5c14a8a 100644
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -368,6 +368,17 @@ static void ipv4ll_available_cb(GDHCPClient *dhcp_client, gpointer user_data)
if (service == NULL)
return;
+#if defined DISABLE_LINK_LOCAL_ADDR
+ dhcp_invalidate(dhcp, TRUE);
+
+ __connman_service_ipconfig_indicate_state(service,
+ CONNMAN_SERVICE_STATE_IDLE,
+ CONNMAN_IPCONFIG_TYPE_IPV4);
+ __connman_service_ipconfig_indicate_state(service,
+ CONNMAN_SERVICE_STATE_IDLE,
+ CONNMAN_IPCONFIG_TYPE_IPV6);
+ return;
+#endif
ipconfig = __connman_service_get_ip4config(service);
if (ipconfig == NULL)
return;