mirror of
https://github.com/Ylianst/MeshAgent
synced 2025-12-14 23:33:38 +00:00
Added gateway support to MeshAGent.NetInfo and OS.networkInterfaces() for macOS
This commit is contained in:
@@ -1486,6 +1486,7 @@ duk_ret_t ILibDuktape_MeshAgent_NetInfo(duk_context *ctx)
|
|||||||
if(ni[tmp[0]][i].family == 'IPv4')\
|
if(ni[tmp[0]][i].family == 'IPv4')\
|
||||||
{\
|
{\
|
||||||
var ret = {v4addr: ni[tmp[0]][i].address, v4mask: ni[tmp[0]][i].netmask, mac: ni[tmp[0]][i].mac.split(':').join(''), gatewaymac: tmp[1], name: tmp[0]};\
|
var ret = {v4addr: ni[tmp[0]][i].address, v4mask: ni[tmp[0]][i].netmask, mac: ni[tmp[0]][i].mac.split(':').join(''), gatewaymac: tmp[1], name: tmp[0]};\
|
||||||
|
if(ni[tmp[0]][i].gateway != null) { ret['gateway'] = ni[tmp[0]][i].gateway; }\
|
||||||
if(dvname != '') {ret['desc'] = dvname;}\
|
if(dvname != '') {ret['desc'] = dvname;}\
|
||||||
return({netif: {0: ret}});\
|
return({netif: {0: ret}});\
|
||||||
}\
|
}\
|
||||||
|
|||||||
@@ -2007,6 +2007,12 @@ void ILibDuktape_ScriptContainer_OS_Push(duk_context *ctx, void *chain)
|
|||||||
var child = child_process.execFile('/bin/sh', ['sh']);\
|
var child = child_process.execFile('/bin/sh', ['sh']);\
|
||||||
child.stdout._lines = '';\
|
child.stdout._lines = '';\
|
||||||
child.stdout.on('data', function (chunk) { this._lines += chunk.toString(); });\
|
child.stdout.on('data', function (chunk) { this._lines += chunk.toString(); });\
|
||||||
|
child.stdin.write(\"route get default | grep : | tr '\\\\n' '`' | awk -F'`' '{\" + ' printf \"{\"; for(i=1;i<NF;++i) { split($i, B, \":\"); gsub(/[ ]/, \"\", B[1]); gsub(/[ ]/, \"\", B[2]); printf \"%s\\\\\"%s\\\\\": \\\\\"%s\\\\\"\", (i>1?\", \":\"\"),B[1], B[2]; } printf \"}\"; ' + \"}'\\nexit\\n\");\
|
||||||
|
child.waitExit();\
|
||||||
|
var gwinfo=JSON.parse(child.stdout._lines.trim());\
|
||||||
|
child = child_process.execFile('/bin/sh', ['sh']);\
|
||||||
|
child.stdout._lines = '';\
|
||||||
|
child.stdout.on('data', function (chunk) { this._lines += chunk.toString(); });\
|
||||||
child.stdin.write('ifconfig\\nexit\\n');\
|
child.stdin.write('ifconfig\\nexit\\n');\
|
||||||
child.waitExit();\
|
child.waitExit();\
|
||||||
var adapters = [];\
|
var adapters = [];\
|
||||||
@@ -2064,7 +2070,11 @@ void ILibDuktape_ScriptContainer_OS_Push(duk_context *ctx, void *chain)
|
|||||||
retval[adapter.device] = [];\
|
retval[adapter.device] = [];\
|
||||||
if (adapter.inet)\
|
if (adapter.inet)\
|
||||||
{\
|
{\
|
||||||
retval[adapter.device].push({ address: adapter.inet, netmask : adapter.netmask, mac : adapter.mac, family : 'IPv4' });\
|
if(adapter.device == gwinfo.interface && gwinfo.gateway != null)\
|
||||||
|
{\
|
||||||
|
adapter.gateway = gwinfo.gateway;\
|
||||||
|
}\
|
||||||
|
retval[adapter.device].push({ address: adapter.inet, netmask : adapter.netmask, mac : adapter.mac, gateway: adapter.gateway, family : 'IPv4' });\
|
||||||
}\
|
}\
|
||||||
if (adapter.inet6)\
|
if (adapter.inet6)\
|
||||||
{\
|
{\
|
||||||
|
|||||||
Reference in New Issue
Block a user