aboutsummaryrefslogtreecommitdiffstats
path: root/epan/wslua/wslua_tvb.c
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2013-12-22 13:08:39 +0000
committerStig Bjørlykke <stig@bjorlykke.org>2013-12-22 13:08:39 +0000
commita48a5a164f45cd829851b8977708d67d93e34e49 (patch)
treefd951d9a3cb4b0ce3db941a4b8912ab505654376 /epan/wslua/wslua_tvb.c
parenta1c84e00de20a6a9d382d25048fd9f3139c9ed2b (diff)
Made TvbRange string and stringz take an optional encoding argument, and
removed the yet-another-string-function string_enc and stringz_enc. Documented the encoding argument. svn path=/trunk/; revision=54356
Diffstat (limited to 'epan/wslua/wslua_tvb.c')
-rw-r--r--epan/wslua/wslua_tvb.c49
1 files changed, 7 insertions, 42 deletions
diff --git a/epan/wslua/wslua_tvb.c b/epan/wslua/wslua_tvb.c
index 2341abfc1f..1a306ff1df 100644
--- a/epan/wslua/wslua_tvb.c
+++ b/epan/wslua/wslua_tvb.c
@@ -1120,25 +1120,11 @@ WSLUA_METHOD TvbRange_le_nstime(lua_State* L) {
WSLUA_RETURN(1); /* The NSTime */
}
-WSLUA_METHOD TvbRange_string_enc(lua_State* L) {
- /* Obtain a string from a TvbRange, using a specified encoding */
- TvbRange tvbr = checkTvbRange(L,1);
- guint encoding = (guint)luaL_checknumber(L,2);
-
- if ( !(tvbr && tvbr->tvb)) return 0;
- if (tvbr->tvb->expired) {
- luaL_error(L,"expired tvb");
- return 0;
- }
-
- lua_pushlstring(L, (gchar*)tvb_get_string_enc(wmem_packet_scope(),tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,encoding), tvbr->len);
-
- WSLUA_RETURN(1); /* The string */
-}
-
WSLUA_METHOD TvbRange_string(lua_State* L) {
/* Obtain a string from a TvbRange */
+#define WSLUA_OPTARG_TvbRange_string_ENCODING 2 /* The encoding to use. Defaults to ENC_ASCII. */
TvbRange tvbr = checkTvbRange(L,1);
+ guint encoding = (guint)luaL_optint(L,WSLUA_OPTARG_TvbRange_string_ENCODING, ENC_ASCII|ENC_NA);
if ( !(tvbr && tvbr->tvb)) return 0;
if (tvbr->tvb->expired) {
@@ -1146,7 +1132,7 @@ WSLUA_METHOD TvbRange_string(lua_State* L) {
return 0;
}
- lua_pushlstring(L, (gchar*)tvb_get_string_enc(wmem_packet_scope(),tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,ENC_ASCII|ENC_NA), tvbr->len);
+ lua_pushlstring(L, (gchar*)tvb_get_string_enc(wmem_packet_scope(),tvbr->tvb->ws_tvb,tvbr->offset,tvbr->len,encoding), tvbr->len);
WSLUA_RETURN(1); /* The string */
}
@@ -1178,10 +1164,11 @@ WSLUA_METHOD TvbRange_le_ustring(lua_State* L) {
WSLUA_RETURN(TvbRange_ustring_any(L, TRUE)); /* The string */
}
-WSLUA_METHOD TvbRange_stringz_enc(lua_State* L) {
- /* Obtain a zero terminated string from a TvbRange, using a specified encoding */
+WSLUA_METHOD TvbRange_stringz(lua_State* L) {
+ /* Obtain a zero terminated string from a TvbRange */
+#define WSLUA_OPTARG_TvbRange_stringz_ENCODING 2 /* The encoding to use. Defaults to ENC_ASCII. */
TvbRange tvbr = checkTvbRange(L,1);
- guint encoding = (guint)luaL_checknumber(L,2);
+ guint encoding = (guint)luaL_optint(L,WSLUA_OPTARG_TvbRange_stringz_ENCODING, ENC_ASCII|ENC_NA);
gint offset;
gunichar2 uchar;
@@ -1220,26 +1207,6 @@ WSLUA_METHOD TvbRange_stringz_enc(lua_State* L) {
WSLUA_RETURN(1); /* The zero terminated 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;
- }
-
- if (tvb_find_guint8 (tvbr->tvb->ws_tvb, tvbr->offset, -1, 0) == -1) {
- luaL_error(L,"out of bounds");
- return 0;
- }
-
- lua_pushstring(L, (gchar*)tvb_get_stringz_enc(wmem_packet_scope(),tvbr->tvb->ws_tvb,tvbr->offset,NULL,ENC_ASCII|ENC_NA));
-
- WSLUA_RETURN(1); /* The zero terminated string */
-}
-
WSLUA_METHOD TvbRange_strsize(lua_State* L) {
/* Find the size of a zero terminated string from a TvbRange. The size of the string includes the terminating zero. */
TvbRange tvbr = checkTvbRange(L,1);
@@ -1480,9 +1447,7 @@ static const luaL_Reg TvbRange_methods[] = {
{"le_ipv4", TvbRange_le_ipv4},
{"nstime", TvbRange_nstime},
{"le_nstime", TvbRange_le_nstime},
- {"string_enc", TvbRange_string_enc},
{"string", TvbRange_string},
- {"stringz_enc", TvbRange_stringz_enc},
{"stringz", TvbRange_stringz},
{"strsize", TvbRange_strsize},
{"bytes", TvbRange_bytes},