/* * Sets the specified gateway as the default route for the named interface. * DEPRECATED */ int ifc_set_default_route(const char *ifname, in_addr_t gateway) { struct in_addr addr; int result; ifc_init(); addr.s_addr = gateway; if ((result = ifc_create_default_route(ifname, gateway)) < 0) { ALOGD("failed to add %s as default route for %s: %s", inet_ntoa(addr), ifname, strerror(errno)); } ifc_close(); return result; }
int ifc_configure(const char *ifname, in_addr_t address, in_addr_t netmask, in_addr_t gateway, in_addr_t dns1, in_addr_t dns2) { #if 0 char dns_prop_name[PROPERTY_KEY_MAX]; #endif ifc_init(); if (ifc_up(ifname)) { printerr("failed to turn on interface %s: %s\n", ifname, strerror(errno)); ifc_close(); return -1; } if (ifc_set_addr(ifname, address)) { printerr("failed to set ipaddr %s: %s\n", ipaddr_to_string(address), strerror(errno)); ifc_close(); return -1; } if (ifc_set_mask(ifname, netmask)) { printerr("failed to set netmask %s: %s\n", ipaddr_to_string(netmask), strerror(errno)); ifc_close(); return -1; } if (ifc_create_default_route(ifname, gateway)) { printerr("failed to set default route %s: %s\n", ipaddr_to_string(gateway), strerror(errno)); ifc_close(); return -1; } ifc_close(); #if 0 snprintf(dns_prop_name, sizeof(dns_prop_name), "net.%s.dns1", ifname); property_set(dns_prop_name, dns1 ? ipaddr_to_string(dns1) : ""); snprintf(dns_prop_name, sizeof(dns_prop_name), "net.%s.dns2", ifname); property_set(dns_prop_name, dns2 ? ipaddr_to_string(dns2) : ""); #endif return 0; }
int ifc_configure(const char *ifname, in_addr_t address, uint32_t prefixLength, in_addr_t gateway, in_addr_t dns1, in_addr_t dns2) { char dns_prop_name[PROPERTY_KEY_MAX]; ifc_init(); if (ifc_up(ifname)) { printerr("failed to turn on interface %s: %s\n", ifname, strerror(errno)); ifc_close(); return -1; } if (ifc_set_addr(ifname, address)) { printerr("failed to set ipaddr %s: %s\n", ipaddr_to_string(address), strerror(errno)); ifc_close(); return -1; } if (ifc_set_prefixLength(ifname, prefixLength)) { printerr("failed to set prefixLength %d: %s\n", prefixLength, strerror(errno)); ifc_close(); return -1; } if (ifc_create_default_route(ifname, gateway)) { printerr("failed to set default route %s: %s\n", ipaddr_to_string(gateway), strerror(errno)); ifc_close(); return -1; } ifc_close(); snprintf(dns_prop_name, sizeof(dns_prop_name), "net.%s.dns1", ifname); property_set(dns_prop_name, dns1 ? ipaddr_to_string(dns1) : ""); snprintf(dns_prop_name, sizeof(dns_prop_name), "net.%s.dns2", ifname); property_set(dns_prop_name, dns2 ? ipaddr_to_string(dns2) : ""); snprintf(dns_prop_name, sizeof(dns_prop_name), "net.%s.gw", ifname); property_set(dns_prop_name, gateway ? ipaddr_to_string(gateway) : ""); return 0; }