nixio: Fix interface data for layer 3+ interfaces
This commit is contained in:
parent
61b9022e51
commit
53f812b11a
1 changed files with 51 additions and 41 deletions
|
@ -391,9 +391,11 @@ static int nixio_getifaddrs(lua_State *L) {
|
||||||
lua_setfield(L, -2, "multicast");
|
lua_setfield(L, -2, "multicast");
|
||||||
lua_setfield(L, -2, "flags");
|
lua_setfield(L, -2, "flags");
|
||||||
|
|
||||||
if (c->ifa_addr && !nixio__addr_parse(&addr, c->ifa_addr)) {
|
if (c->ifa_addr) {
|
||||||
|
if (!nixio__addr_parse(&addr, c->ifa_addr)) {
|
||||||
lua_pushstring(L, addr.host);
|
lua_pushstring(L, addr.host);
|
||||||
lua_setfield(L, -2, "addr");
|
lua_setfield(L, -2, "addr");
|
||||||
|
}
|
||||||
|
|
||||||
if (c->ifa_addr->sa_family == AF_INET) {
|
if (c->ifa_addr->sa_family == AF_INET) {
|
||||||
lua_pushliteral(L, "inet");
|
lua_pushliteral(L, "inet");
|
||||||
|
@ -415,8 +417,18 @@ static int nixio_getifaddrs(lua_State *L) {
|
||||||
|
|
||||||
lua_pushinteger(L, addr.prefix);
|
lua_pushinteger(L, addr.prefix);
|
||||||
lua_setfield(L, -2, "hatype");
|
lua_setfield(L, -2, "hatype");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __linux__
|
||||||
|
if (c->ifa_data && (!c->ifa_addr
|
||||||
|
|| c->ifa_addr->sa_family == AF_PACKET)) {
|
||||||
|
if (!c->ifa_addr) {
|
||||||
|
lua_pushliteral(L, "packet");
|
||||||
|
lua_setfield(L, -2, "family");
|
||||||
|
}
|
||||||
|
|
||||||
if (c->ifa_data) {
|
|
||||||
lua_createtable(L, 0, 10);
|
lua_createtable(L, 0, 10);
|
||||||
struct nixio__nds *stats = c->ifa_data;
|
struct nixio__nds *stats = c->ifa_data;
|
||||||
|
|
||||||
|
@ -453,9 +465,7 @@ static int nixio_getifaddrs(lua_State *L) {
|
||||||
lua_newtable(L);
|
lua_newtable(L);
|
||||||
}
|
}
|
||||||
lua_setfield(L, -2, "data");
|
lua_setfield(L, -2, "data");
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
|
||||||
|
|
||||||
if (c->ifa_netmask && !nixio__addr_parse(&addr, c->ifa_netmask)) {
|
if (c->ifa_netmask && !nixio__addr_parse(&addr, c->ifa_netmask)) {
|
||||||
lua_pushstring(L, addr.host);
|
lua_pushstring(L, addr.host);
|
||||||
|
|
Loading…
Reference in a new issue