summaryrefslogtreecommitdiff
path: root/src/node_os.cc
diff options
context:
space:
mode:
authorBen Kelly <ben@wanderview.com>2013-02-10 17:19:43 -0500
committerTimothy J Fontaine <tjfontaine@gmail.com>2013-05-08 17:04:29 -0700
commit8a407f58b96ca6c8a5d1542bde39ebb879eb307d (patch)
treea5ca133522ff86872144c9aa1fa576f2b018016f /src/node_os.cc
parentfbf464146241036598ddbe8141c09f12c06f9b95 (diff)
downloadandroid-node-v8-8a407f58b96ca6c8a5d1542bde39ebb879eb307d.tar.gz
android-node-v8-8a407f58b96ca6c8a5d1542bde39ebb879eb307d.tar.bz2
android-node-v8-8a407f58b96ca6c8a5d1542bde39ebb879eb307d.zip
os: Include netmask in os.networkInterfaces()
re #3765 and #5432 fixes #4743
Diffstat (limited to 'src/node_os.cc')
-rw-r--r--src/node_os.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/node_os.cc b/src/node_os.cc
index 9e80589f46..1d6af2f9ca 100644
--- a/src/node_os.cc
+++ b/src/node_os.cc
@@ -204,6 +204,7 @@ static Handle<Value> GetInterfaceAddresses(const Arguments& args) {
uv_interface_address_t* interfaces;
int count, i;
char ip[INET6_ADDRSTRLEN];
+ char netmask[INET6_ADDRSTRLEN];
Local<Object> ret, o;
Local<String> name, family;
Local<Array> ifarr;
@@ -226,9 +227,11 @@ static Handle<Value> GetInterfaceAddresses(const Arguments& args) {
if (interfaces[i].address.address4.sin_family == AF_INET) {
uv_ip4_name(&interfaces[i].address.address4,ip, sizeof(ip));
+ uv_ip4_name(&interfaces[i].netmask.netmask4, netmask, sizeof(netmask));
family = String::New("IPv4");
} else if (interfaces[i].address.address4.sin_family == AF_INET6) {
uv_ip6_name(&interfaces[i].address.address6, ip, sizeof(ip));
+ uv_ip6_name(&interfaces[i].netmask.netmask6, netmask, sizeof(netmask));
family = String::New("IPv6");
} else {
strncpy(ip, "<unknown sa family>", INET6_ADDRSTRLEN);
@@ -237,6 +240,7 @@ static Handle<Value> GetInterfaceAddresses(const Arguments& args) {
o = Object::New();
o->Set(String::New("address"), String::New(ip));
+ o->Set(String::New("netmask"), String::New(netmask));
o->Set(String::New("family"), family);
const bool internal = interfaces[i].is_internal;