{ OPTION_STRING, 0x0f }, /* domain-name */
{ OPTION_U16, 0x1a }, /* mtu */
{ OPTION_IP | OPTION_LIST, 0x2a }, /* ntp-servers */
+#if defined TIZEN_EXT
+ { OPTION_STRING, 0x2b }, /* vendor specific element information */
+#endif
{ OPTION_U32, 0x33 }, /* dhcp-lease-time */
/* Options below will not be exposed to user */
{ OPTION_IP, 0x32 }, /* requested-ip */
#define G_DHCP_HOST_NAME 0x0c
#define G_DHCP_MTU 0x1a
#define G_DHCP_NTP_SERVER 0x2a
+#if defined TIZEN_EXT
+#define G_DHCP_VENDOR_SPECIFIC_IE 0x2b
+#endif
#define G_DHCP_VENDOR_CLASS_ID 0x3c
#define G_DHCP_CLIENT_ID 0x3d
#if defined TIZEN_EXT
void __connman_ipconfig_set_dhcp_lease_duration(struct connman_ipconfig *ipconfig, int dhcp_lease_duration);
+void __connman_ipconfig_set_dhcp_vsie(struct connman_ipconfig *ipconfig, char *dhcp_vsie);
#endif
unsigned char __connman_ipconfig_get_prefixlen(struct connman_ipconfig *ipconfig);
__connman_ipconfig_set_local(dhcp->ipconfig, NULL);
__connman_ipconfig_set_broadcast(dhcp->ipconfig, NULL);
__connman_ipconfig_set_gateway(dhcp->ipconfig, NULL);
+#if defined TIZEN_EXT
+ __connman_ipconfig_set_dhcp_vsie(dhcp->ipconfig, NULL);
+#endif
__connman_ipconfig_set_prefixlen(dhcp->ipconfig, 0);
if (dhcp->callback && callback)
if (option)
__connman_service_set_hostname(service, option->data);
+#if defined TIZEN_EXT
+ option = g_dhcp_client_get_option(dhcp_client, G_DHCP_VENDOR_SPECIFIC_IE);
+ if (option)
+ __connman_ipconfig_set_dhcp_vsie(dhcp->ipconfig, option->data);
+#endif
+
option = g_dhcp_client_get_option(dhcp_client, G_DHCP_NTP_SERVER);
ns_entries = g_list_length(option);
timeservers = g_try_new0(char *, ns_entries + 1);
g_dhcp_client_set_request(dhcp_client, G_DHCP_DNS_SERVER);
g_dhcp_client_set_request(dhcp_client, G_DHCP_DOMAIN_NAME);
g_dhcp_client_set_request(dhcp_client, G_DHCP_NTP_SERVER);
+#if defined TIZEN_EXT
+ g_dhcp_client_set_request(dhcp_client, G_DHCP_VENDOR_SPECIFIC_IE);
+#endif
g_dhcp_client_set_request(dhcp_client, 252);
g_dhcp_client_set_request(dhcp_client, G_DHCP_MTU);
}
struct connman_ipaddress *system;
#if defined TIZEN_EXT
+ char *dhcp_vsie;
int dhcp_lease_duration;
#endif
}
#if defined TIZEN_EXT
+void __connman_ipconfig_set_dhcp_vsie(struct connman_ipconfig *ipconfig, char *dhcp_vsie)
+{
+ DBG("");
+
+ g_free(ipconfig->dhcp_vsie);
+ ipconfig->dhcp_vsie = g_strdup(dhcp_vsie);
+}
+
void __connman_ipconfig_set_dhcp_lease_duration(struct connman_ipconfig *ipconfig,
int dhcp_lease_duration)
{
connman_ipaddress_free(ipconfig->system);
connman_ipaddress_free(ipconfig->address);
+#if defined TIZEN_EXT
+ g_free(ipconfig->dhcp_vsie);
+#endif
g_free(ipconfig->last_dhcp_address);
g_strfreev(ipconfig->last_dhcpv6_prefixes);
g_free(ipconfig);
}
connman_dbus_dict_append_basic(iter, "DHCPLeaseDuration",
DBUS_TYPE_INT32, &ipconfig->dhcp_lease_duration);
+
+ if (ipconfig->dhcp_vsie)
+ connman_dbus_dict_append_basic(iter, "DHCPVsie",
+ DBUS_TYPE_STRING, &ipconfig->dhcp_vsie);
}
#endif
}