|
@@ -474,7 +474,7 @@ bool OSXEthernetTap::addIp(const InetAddress &ip)
|
|
|
|
|
|
long cpid = (long)vfork();
|
|
|
if (cpid == 0) {
|
|
|
- ::execl("/sbin/ifconfig","/sbin/ifconfig",_dev.c_str(),ip.isV4() ? "inet" : "inet6",ip.toString().c_str(),"alias",(const char *)0);
|
|
|
+ ::execl("/sbin/ifconfig","/sbin/ifconfig",_dev.c_str(),(ip.ss_family == AF_INET6) ? "inet6" : "inet",ip.toString().c_str(),"alias",(const char *)0);
|
|
|
::_exit(-1);
|
|
|
} else if (cpid > 0) {
|
|
|
int exitcode = -1;
|
|
@@ -494,7 +494,7 @@ bool OSXEthernetTap::removeIp(const InetAddress &ip)
|
|
|
if (*i == ip) {
|
|
|
long cpid = (long)vfork();
|
|
|
if (cpid == 0) {
|
|
|
- execl("/sbin/ifconfig","/sbin/ifconfig",_dev.c_str(),"inet",ip.toIpString().c_str(),"-alias",(const char *)0);
|
|
|
+ execl("/sbin/ifconfig","/sbin/ifconfig",_dev.c_str(),(ip.ss_family == AF_INET6) ? "inet6" : "inet",ip.toIpString().c_str(),"-alias",(const char *)0);
|
|
|
_exit(-1);
|
|
|
} else if (cpid > 0) {
|
|
|
int exitcode = -1;
|