.ip_release = service_ip_release,
};
-static void setup_ip4config(struct connman_service *service, int index)
+static void setup_ip4config(struct connman_service *service, int index,
+ enum connman_ipconfig_method method)
{
if (index < 0)
return;
if (service->ipconfig_ipv4 == NULL)
return;
- connman_ipconfig_set_method(service->ipconfig_ipv4,
- CONNMAN_IPCONFIG_METHOD_DHCP);
+ connman_ipconfig_set_method(service->ipconfig_ipv4, method);
connman_ipconfig_set_data(service->ipconfig_ipv4, service);
if (service->ipconfig_ipv4 != NULL)
return;
- setup_ip4config(service, index);
+ setup_ip4config(service, index, CONNMAN_IPCONFIG_METHOD_DHCP);
if (ident == NULL)
return;
index = connman_network_get_index(network);
if (service->ipconfig_ipv4 == NULL)
- setup_ip4config(service, index);
+ setup_ip4config(service, index, CONNMAN_IPCONFIG_METHOD_DHCP);
if (service->ipconfig_ipv6 == NULL)
setup_ip6config(service, index);
service->strength = 0;
if (service->ipconfig_ipv4 == NULL)
- service->ipconfig_ipv4 = connman_ipconfig_create(index,
- CONNMAN_IPCONFIG_TYPE_IPV4);
- if (service->ipconfig_ipv4 == NULL)
- return service;
-
- connman_ipconfig_set_method(service->ipconfig_ipv4,
- CONNMAN_IPCONFIG_METHOD_MANUAL);
- connman_ipconfig_set_data(service->ipconfig_ipv4, service);
- connman_ipconfig_set_ops(service->ipconfig_ipv4, &service_ops);
+ setup_ip4config(service, index, CONNMAN_IPCONFIG_METHOD_MANUAL);
if (service->ipconfig_ipv6 == NULL)
- service->ipconfig_ipv6 = connman_ipconfig_create(index,
- CONNMAN_IPCONFIG_TYPE_IPV6);
- if (service->ipconfig_ipv6 == NULL)
- return service;
-
- connman_ipconfig_set_method(service->ipconfig_ipv6,
- CONNMAN_IPCONFIG_METHOD_OFF);
- connman_ipconfig_set_data(service->ipconfig_ipv6, service);
- connman_ipconfig_set_ops(service->ipconfig_ipv6, &service_ops);
+ setup_ip6config(service, index);
service_register(service);