diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2014-04-25 14:46:51 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2014-04-25 14:46:51 +0100 |
commit | 3ebeaf58bcc20afc239abeb68057faaf9da5c357 (patch) | |
tree | d80e7c2657cace99f6063b3eefea4f722b7eae0e /src/lua | |
parent | c321381747a5feef02812acfb6b4728486277bc2 (diff) | |
download | rspamd-3ebeaf58bcc20afc239abeb68057faaf9da5c357.tar.gz rspamd-3ebeaf58bcc20afc239abeb68057faaf9da5c357.zip |
Fix pushing octets of lua_ip.
Diffstat (limited to 'src/lua')
-rw-r--r-- | src/lua/lua_ip.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lua/lua_ip.c b/src/lua/lua_ip.c index 105a84120..f477e1d77 100644 --- a/src/lua/lua_ip.c +++ b/src/lua/lua_ip.c @@ -73,11 +73,13 @@ lua_ip_to_table (lua_State *L) lua_newtable (L); if (ip->addr.af == AF_INET) { max = 32 / 8; + ptr = (guint8 *)&ip->addr.addr.s4.sin_addr; } else { max = 128 / 8; + ptr = (guint8 *)&ip->addr.addr.s6.sin6_addr; } - ptr = (guint8 *)&ip->addr.addr.s6.sin6_addr; + for (i = 1; i <= max; i ++, ptr ++) { lua_pushnumber (L, *ptr); lua_rawseti (L, -2, i); @@ -101,12 +103,14 @@ lua_ip_str_octets (lua_State *L) if (ip != NULL && ip->is_valid) { lua_newtable (L); if (ip->addr.af == AF_INET) { + ptr = (guint8 *)&ip->addr.addr.s4.sin_addr; max = 32 / 8; } else { max = 128 / 8; + ptr = (guint8 *)&ip->addr.addr.s6.sin6_addr; } - ptr = (guint8 *)&ip->addr.addr.s6.sin6_addr; + for (i = 1; i <= max; i ++, ptr ++) { if (ip->addr.af == AF_INET) { rspamd_snprintf (numbuf, sizeof (numbuf), "%d", *ptr); @@ -142,11 +146,13 @@ lua_ip_inversed_str_octets (lua_State *L) lua_newtable (L); if (ip->addr.af == AF_INET) { max = 32 / 8; + ptr = (guint8 *)&ip->addr.addr.s4.sin_addr; } else { max = 128 / 8; + ptr = (guint8 *)&ip->addr.addr.s6.sin6_addr; } - ptr = (guint8 *)&ip->addr.addr.s6.sin6_addr; + ptr += max - 1; for (i = 1; i <= max; i ++, ptr --) { if (ip->addr.af == AF_INET) { |