diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2010-01-01 15:57:14 +0000 |
---|---|---|
committer | Stig Bjørlykke <stig@bjorlykke.org> | 2010-01-01 15:57:14 +0000 |
commit | 3988c9b8484f318ca3d85b70df3916b855712e9d (patch) | |
tree | dcf528333d151678bed466563d17b398a479e702 /epan/wslua/wslua_tvb.c | |
parent | ce85a08b8d609721566363b37a9bfcb5563f307e (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.c | 16 |
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}, |