static int my_res_init() { #ifdef JDNS_OS_MAC res_init_func mac_res_init; // look up res_init in the system library (qt does this, not sure why) mac_res_init = (res_init_func)dlsym(RTLD_NEXT, "res_init"); if(!mac_res_init) return -1; return mac_res_init(); #elif defined ANDROID memset(&_res, 0, sizeof(_res)); char prop_value[PROP_VALUE_MAX]; char prop_name[PROP_NAME_MAX]; int i = 0; int readed = 0; do { // net.dns properties starts with 1 sprintf(prop_name, "net.dns%d", i + 1); readed = __system_property_get(prop_name, prop_value); if (readed) { if (!inet_aton(prop_value, &_res.nsaddr_list[i].sin_addr)) break; i++; } } while (readed && i < MAXNS); _res.nscount = i; return 0; #else return res_init(); #endif }
static int my_res_init() { #ifdef JDNS_OS_MAC res_init_func mac_res_init; // look up res_init in the system library (qt does this, not sure why) mac_res_init = (res_init_func)dlsym(RTLD_NEXT, "res_init"); if(!mac_res_init) return -1; return mac_res_init(); #else return res_init(); #endif }