Support SunOS 121. Check for ifaddrs in wscript for SunOS build.

pull/5370/head
Ryan Dahl 2011-07-05 18:31:33 -07:00
parent a845bf74ae
commit 111305c1bd
2 changed files with 22 additions and 1 deletions

View File

@ -36,7 +36,10 @@
#include <net/if.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <ifaddrs.h>
#ifdef SUNOS_HAVE_IFADDRS
# include <ifaddrs.h>
#endif
@ -297,6 +300,11 @@ int Platform::GetLoadAvg(Local<Array> *loads) {
Handle<Value> Platform::GetInterfaceAddresses() {
HandleScope scope;
#ifndef SUNOS_HAVE_IFADDRS
return ThrowException(Exception::Error(String::New(
"This version of sunos doesn't support getifaddrs")));
#else
struct ::ifaddrs *addrs, *ent;
struct ::sockaddr_in *in4;
struct ::sockaddr_in6 *in6;
@ -355,6 +363,8 @@ Handle<Value> Platform::GetInterfaceAddresses() {
freeifaddrs(addrs);
return scope.Close(ret);
#endif // SUNOS_HAVE_IFADDRS
}

11
wscript
View File

@ -351,6 +351,17 @@ def configure(conf):
conf.env.append_value('CPPFLAGS', '-DHAVE_MONOTONIC_CLOCK=0')
if sys.platform.startswith("sunos"):
code = """
#include <ifaddrs.h>
int main(void) {
struct ifaddrs hello;
return 0;
}
"""
if conf.check_cc(msg="Checking for ifaddrs on solaris", fragment=code):
conf.env.append_value('CPPFLAGS', '-DSUNOS_HAVE_IFADDRS')
if not conf.check(lib='socket', uselib_store="SOCKET"):
conf.fatal("Cannot find socket library")
if not conf.check(lib='nsl', uselib_store="NSL"):