aboutsummaryrefslogtreecommitdiffstats
path: root/epan/wslua/wslua_tvb.c
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2010-01-01 15:57:14 +0000
committerStig Bjørlykke <stig@bjorlykke.org>2010-01-01 15:57:14 +0000
commit3988c9b8484f318ca3d85b70df3916b855712e9d (patch)
treedcf528333d151678bed466563d17b398a479e702 /epan/wslua/wslua_tvb.c
parentce85a08b8d609721566363b37a9bfcb5563f307e (diff)
Add missing stringz tvbrange method.
This fixes bug 2244. svn path=/trunk/; revision=31398
Diffstat (limited to 'epan/wslua/wslua_tvb.c')
-rw-r--r--epan/wslua/wslua_tvb.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/epan/wslua/wslua_tvb.c b/epan/wslua/wslua_tvb.c
index abfc9617c9..9a90a2ca87 100644
--- a/epan/wslua/wslua_tvb.c
+++ b/epan/wslua/wslua_tvb.c
@@ -842,6 +842,21 @@ WSLUA_METHOD TvbRange_string(lua_State* L) {
WSLUA_RETURN(1); /* The string */
}
+WSLUA_METHOD TvbRange_stringz(lua_State* L) {
+ /* Obtain a zero terminated string from a TvbRange */
+ TvbRange tvbr = checkTvbRange(L,1);
+
+ if ( !(tvbr && tvbr->tvb)) return 0;
+ if (tvbr->tvb->expired) {
+ luaL_error(L,"expired tvb");
+ return 0;
+ }
+
+ lua_pushstring(L, (gchar*)tvb_get_ephemeral_stringz(tvbr->tvb->ws_tvb,tvbr->offset,NULL) );
+
+ WSLUA_RETURN(1); /* The zero terminated string */
+}
+
WSLUA_METHOD TvbRange_bytes(lua_State* L) {
/* Obtain a ByteArray */
TvbRange tvbr = checkTvbRange(L,1);
@@ -983,6 +998,7 @@ static const luaL_reg TvbRange_methods[] = {
{"ipv4", TvbRange_ipv4},
{"le_ipv4", TvbRange_le_ipv4},
{"string", TvbRange_string},
+ {"stringz", TvbRange_stringz},
{"bytes", TvbRange_bytes},
{"bitfield", TvbRange_bitfield},
{"range", TvbRange_range},