const char *__connman_network_get_ident(struct connman_network *network);
bool __connman_network_get_weakness(struct connman_network *network);
bool __connman_network_native_autoconnect(struct connman_network *network);
+#if defined TIZEN_EXT
+dbus_bool_t __connman_network_notify_dhcp_changed(const char *key, void *val);
+#endif
int __connman_config_init();
void __connman_config_cleanup(void);
#define RATE_LIMIT_INTERVAL 60 /* delay between successive attempts */
+#if defined TIZEN_EXT
+#define DHCP_SUCCESS "DHCP_SUCCESS"
+#endif
+
struct connman_dhcp {
struct connman_ipconfig *ipconfig;
struct connman_network *network;
#if defined TIZEN_EXT
if (dhcp->network &&
connman_network_get_bool(dhcp->network, "WiFi.RoamingDHCP")) {
+ int lease_time = 0;
+
connman_network_set_bool(dhcp->network, "WiFi.RoamingDHCP", false);
__connman_network_enable_ipconfig(dhcp->network, dhcp->ipconfig);
+ __connman_network_notify_dhcp_changed("DHCP_FAIL", &lease_time);
return;
}
if (connman_setting_get_bool("EnableAutoIp") == false) {
DBG("link-local address autoconfiguration is disabled.");
- if (dhcp->network)
- __connman_network_disconnect(dhcp->network);
+ if (dhcp->network) {
+ int lease_time = 0;
+ DBG("[DHCP-C] auto ip is not used, set dhcp-fail error and disconnect");
+ __connman_network_notify_dhcp_changed("DHCP_FAIL", &lease_time);
+ connman_network_set_error(dhcp->network, CONNMAN_NETWORK_ERROR_DHCP_FAIL);
+ }
return;
}
#endif
#if defined TIZEN_EXT
__connman_ipconfig_set_dhcp_lease_duration(dhcp->ipconfig, dhcp_lease_duration);
+ __connman_network_notify_dhcp_changed(DHCP_SUCCESS, &dhcp_lease_duration);
#endif
/*
#include <connman/acd.h>
#include "src/shared/arp.h"
+#if defined TIZEN_EXT
+#include <gdbus.h>
+
+static DBusConnection *connection;
+#endif
+
/*
* How many times to send RS with the purpose of
* refreshing RDNSS entries before they actually expire.
return err;
}
+#if defined TIZEN_EXT
+dbus_bool_t __connman_network_notify_dhcp_changed(const char *key, void *val)
+{
+ int *value = (int *) val;
+ DBusMessage *signal;
+ DBusMessageIter iter;
+ dbus_bool_t result = FALSE;
+
+ DBG("key %s, val %d", key, *value);
+
+ signal = dbus_message_new_signal(CONNMAN_MANAGER_PATH,
+ CONNMAN_MANAGER_INTERFACE, "DhcpChanged");
+
+ if (!signal)
+ return result;
+
+ dbus_message_iter_init_append(signal, &iter);
+ connman_dbus_property_append_basic(&iter, key, DBUS_TYPE_INT32, val);
+
+ result = dbus_connection_send(connection, signal, NULL);
+ if (result)
+ DBG("Successfuly sent signal");
+ else
+ DBG("Fail to send signal");
+
+ dbus_message_unref(signal);
+
+ return result;
+}
+#endif
+
/**
* __connman_network_connect:
* @network: network structure
int __connman_network_init(void)
{
DBG("");
+#if defined TIZEN_EXT
+ connection = connman_dbus_get_connection();
+#endif
return 0;
}
void __connman_network_cleanup(void)
{
DBG("");
+#if defined TIZEN_EXT
+ dbus_connection_unref(connection);
+#endif
}