From Alexander Stein via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6175 :
authormorriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 11 Aug 2011 00:49:43 +0000 (00:49 +0000)
committermorriss <morriss@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 11 Aug 2011 00:49:43 +0000 (00:49 +0000)
The attached patch adds the method reported_length_remaining to tvb.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@38464 f5534014-38df-0310-8fa8-9805f1628bb7

epan/wslua/wslua_tvb.c

index 89deb5b412a97debc82d2460f7d537b4ff4af7dc..6697ed0211aa04e46555d1a6ee90f0920d0ecb71 100644 (file)
@@ -478,6 +478,22 @@ WSLUA_METHOD Tvb_len(lua_State* L) {
     WSLUA_RETURN(1); /* The length of the Tvb. */
 }
 
+WSLUA_METHOD Tvb_reported_length_remaining(lua_State* L) {
+       /* Obtain the reported length of packet data to end of a TVB */
+#define Tvb_reported_length_remaining_OFFSET 2 /* offset */
+    Tvb tvb = checkTvb(L,1);
+    int offset = luaL_optint(L, Tvb_reported_length_remaining_OFFSET, 0);
+
+    if (!tvb) return 0;
+    if (tvb->expired) {
+        luaL_error(L,"expired tvb");
+        return 0;
+    }
+
+    lua_pushnumber(L,tvb_reported_length_remaining(tvb->ws_tvb, offset));
+    WSLUA_RETURN(1); /* The length of the Tvb. */
+}
+
 WSLUA_METHOD Tvb_offset(lua_State* L) {
        /* Returns the raw offset (from the beginning of the source Tvb) of a sub Tvb. */
     Tvb tvb = checkTvb(L,1);
@@ -578,6 +594,7 @@ static const luaL_reg Tvb_methods[] = {
     {"len", Tvb_len},
     {"offset", Tvb_offset},
     {"reported_len", Tvb_reported_len},
+    {"reported_length_remaining", Tvb_reported_length_remaining},
     { NULL, NULL }
 };