aboutsummaryrefslogtreecommitdiffstats
path: root/src/lua
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2014-04-25 14:46:51 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2014-04-25 14:46:51 +0100
commit3ebeaf58bcc20afc239abeb68057faaf9da5c357 (patch)
treed80e7c2657cace99f6063b3eefea4f722b7eae0e /src/lua
parentc321381747a5feef02812acfb6b4728486277bc2 (diff)
downloadrspamd-3ebeaf58bcc20afc239abeb68057faaf9da5c357.tar.gz
rspamd-3ebeaf58bcc20afc239abeb68057faaf9da5c357.zip
Fix pushing octets of lua_ip.
Diffstat (limited to 'src/lua')
-rw-r--r--src/lua/lua_ip.c12
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) {