static result_t __config_parse_dns(char *config_buf)
{
int i, count;
cJSON *root = cJSON_Parse(config_buf);
if (NULL == root) {
goto L_ERROR;
}
cJSON *dns_domain = cJSON_GetObjectItem(root, "dns_cache_domain");
if (NULL == dns_domain) {
goto L_ERROR;
}
count = cJSON_GetArraySize(dns_domain);
for (i = 0; i < count; i++) {
cJSON *one = cJSON_GetArrayItem(dns_domain, i);
if (NULL == one) {
continue;
}
cJSON *dns = cJSON_GetObjectItem(one, "domain");
if (NULL == dns) {
continue;
}
cJSON *ip = cJSON_GetObjectItem(one, "ip");
if (NULL == dns) {
continue;
}
__sps_dns_ip_pair_insert(dns->valuestring, ip->valuestring);
LOGD(C_DNS_TAG, "parse %u domain: %s->%s", i + 1, dns->valuestring, ip->valuestring);
}
LOGD(C_DNS_TAG, "cjson to dns domain %s success", dns_domain->valuestring);
cJSON_Delete(root);
return E_OK;
L_ERROR:
if (NULL != root) {
cJSON_Delete(root);
}
return E_FAILED;
}
{
"uid_server_ip": "192.168.3.199",
"dns_cache_domain": [
{
"dns": "pullsdk.test.live.00cdn.com",
"ip": "42.81.26.37"
},
{
"dns": "pl8.live.panda.tv",
"ip": "42.81.26.37"
},
{
"dns": "pullsdk.cloutropy.com",
"ip": "192.168.3.182"
},
{
"dns": "panda.live.cloutropy.com",
"ip": "127.0.0.1"
},
{
"dns": "pullsdk.uid.com",
"ip": "192.168.3.179"
},
{
"dns": "origin.xmtp.com",
"ip": "42.81.26.37"
},
{
"dns": "pullsdk.test.com",
"ip": "192.168.4.244"
}
]
}