网卡ipv6地址不存在kdk_nc_get_ipv6接口返回NULL
This commit is contained in:
parent
e21a33a579
commit
9cba84f025
|
@ -433,32 +433,35 @@ char **_get_nc_cfg(const char *nc, enum cardcfg cfg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
res = malloc(sizeof(char *));
|
if(strlen(addr) != 0)
|
||||||
if (!res)
|
|
||||||
{
|
{
|
||||||
klog_err("内存申请失败:%s\n", strerror(errno));
|
res = malloc(sizeof(char *));
|
||||||
close(sfd);
|
if (!res)
|
||||||
|
{
|
||||||
|
klog_err("内存申请失败:%s\n", strerror(errno));
|
||||||
|
close(sfd);
|
||||||
|
freeifaddrs(ifap);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
res[0] = malloc(sizeof(char) * INET6_ADDRSTRLEN);
|
||||||
|
if (!res[0])
|
||||||
|
{
|
||||||
|
free(res);
|
||||||
|
klog_err("内存申请失败:%s\n", strerror(errno));
|
||||||
|
close(sfd);
|
||||||
|
freeifaddrs(ifap);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
while (addr[i] != '%' && addr[i] != '\0')
|
||||||
|
i++;
|
||||||
|
addr[i] = '\0';
|
||||||
|
|
||||||
|
sprintf(res[0], "%s", addr);
|
||||||
|
|
||||||
freeifaddrs(ifap);
|
freeifaddrs(ifap);
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
res[0] = malloc(sizeof(char) * INET6_ADDRSTRLEN);
|
|
||||||
if (!res[0])
|
|
||||||
{
|
|
||||||
free(res);
|
|
||||||
klog_err("内存申请失败:%s\n", strerror(errno));
|
|
||||||
close(sfd);
|
|
||||||
freeifaddrs(ifap);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
int i = 0;
|
|
||||||
while (addr[i] != '%' && addr[i] != '\0')
|
|
||||||
i++;
|
|
||||||
addr[i] = '\0';
|
|
||||||
|
|
||||||
sprintf(res[0], "%s", addr);
|
|
||||||
|
|
||||||
freeifaddrs(ifap);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -528,10 +531,12 @@ char *kdk_nc_get_private_ipv6(const char *nc)
|
||||||
if (!nc)
|
if (!nc)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
char *ipv6 = NULL;
|
||||||
|
|
||||||
char **ipv6list = _get_nc_cfg(nc, NCCFG_IPv6);
|
char **ipv6list = _get_nc_cfg(nc, NCCFG_IPv6);
|
||||||
if (!ipv6list)
|
if (!ipv6list)
|
||||||
return NULL;
|
return NULL;
|
||||||
char *ipv6 = ipv6list[0];
|
ipv6 = ipv6list[0];
|
||||||
free(ipv6list);
|
free(ipv6list);
|
||||||
return ipv6;
|
return ipv6;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue