OK, in all fairness this does a bit more than just fix that bug. It also
adds a 'Int64()' and 'UInt64()' __call metamethods. I generally dislike
using __call metamethods, because they're often unintuitive (for example
the wireshark Field and FielInfo use this in a bizarre fashion). But this
happens to be a perfect use for it, and very natural, imho. Another change
is to make the metatables of classes visible to scripts. There was never
really a good reason not to make them visible, and they have to be visible
to do things like use __call on a plain table... not to mention I need them
to be visible to run test scripts verifying evrything is kosher.
I also updated the test suite to test for the div/mod by zero.
Change-Id: Ia4c594c8f59d4e799090716bd032ba2815df032f
Reviewed-on: https://code.wireshark.org/review/149
Reviewed-by: Evan Huus <eapache@gmail.com>
The fix for bug 9712, which involved changing the make-init-lua.pl perl script
to handle the new C-code define names for filetypes in release 1.11,
unfortunately also stopped matching against the timestamp define names.
Arguably the timestamp ones should never have been matched to begin with, at
least not by the same regex function, because they're not "filetypes". But
they've been matched and exported into the Lua table forever, so we'll break
backward-compat if we don't keep doing it. Ugh.
The good news is I caught this bug using a new test script I wrote which
verifies previous release's Lua stuff didn't disappear. I'll submit that
separately when I get a chance to clean it up, hopefully next week.
Change-Id: Ibf1d1da0dc4ed62cc1bacf345742dccf8ec40e30
Reviewed-on: https://code.wireshark.org/review/143
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
A recent fix (made by me) for bug 9707, in Change-Id:
If4ee1906aa60dd37366cf2ef9bc4168e0ea024b6, made the perl regex grab too much
of the menu name. It changed MENU_STAT_CONVERSATION, MENU_STAT_RESPONSE, and
MENU_ANALYZE_CONVERSATION's key names into their longer C-code names. Ugh.
The fix for this is a bit brittle, but I think it's impractical to avoid it
being brittle, due to needing to support legacy Lua scripts. I put comments
in stat_menu.h to warn of the danger.
Change-Id: I41408e9d4f5b5bd73e2871fccabff81c7cbd242d
Reviewed-on: https://code.wireshark.org/review/140
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Similar to bug 9725 and ProtoField.new(), the way the VALUESTRING argument is being checked
in the code for ProtoField.bool() ends up making it non-optional. This patch fixes that,
along with some minor API documentation fixes (text).
Change-Id: Iadb9a8ace9c5514fc623d882301fe16b637fe4ce
Reviewed-on: https://code.wireshark.org/review/125
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Reviewed-by: Evan Huus <eapache@gmail.com>
- packet-bencode.c had the wrong FSF address
- wslua_int64.c had the license as a footer instead of a header
Change-Id: I71204b36a1034af72874d6fe87929c31c9ff03df
Reviewed-on: https://code.wireshark.org/review/123
Reviewed-by: Guy Harris <guy@alum.mit.edu>
Reviewed-by: Hadriel Kaplan <hadrielk@yahoo.com>
Reviewed-by: Evan Huus <eapache@gmail.com>
Tested-by: Evan Huus <eapache@gmail.com>
Using ProtoField.new() is dicey. Many of the optional arguments don't properly check the lua stack - they call lua_isnil() for their index number, instead of lua_gettop() to see the stack size. lua_isnil() may return false in such cases.
Change-Id: I83ca1e5fc34e71ec35899adbedabcee69571b9fe
Reviewed-on: https://code.wireshark.org/review/118
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Stig Bjørlykke <stig@bjorlykke.org>
In Lua 5.2 the bitop library is missing - it's not getting loaded into
the lua global table as "bit", or anything else for that matter. Lua
5.2 has its own bit-operations library ("bit32") which is there, but
that one's not as good as bitop and would break back/forward
compatibility for lua scripts anyway.
Change-Id: I94b7d45bbeb2f637d1c76b0b5c9d8472eebfcaea
Reviewed-on: https://code.wireshark.org/review/100
Reviewed-by: Evan Huus <eapache@gmail.com>
Tested-by: Evan Huus <eapache@gmail.com>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
usefulness, working around bug #9162 until Lua 5.3 is released.
The existing Int64 and UInt64 classes provide virtually no
usefullness, other than for creating a string of their value. While
one could then write Lua code to convert the string to Lua numbers and
such, ultimately Lua has no native 64-bit integer support, making such
a task difficult to handle in Lua. This change adds a host of
functions and operators to the existing Int64 (gint64) and UInt64
(guint64) classes, to enable true 64-bit integer support on par with
native Lua numbers.
A test script is also provided, which tests the functions/operators.
Change-Id: I4c5f8f5219b9a88198902283bd32ddf24c346bbe
Reviewed-on: https://code.wireshark.org/review/83
Tested-by: Evan Huus <eapache@gmail.com>
Reviewed-by: Evan Huus <eapache@gmail.com>
Load system init.lua from build-directory/epan/wslua
Set Lua datafile_path to source-directory/epan/wslua
Made dofile() search in source-directory/epan/wslua
Change-Id: I009234eb8193c1ed3260455b245c256c9747930f
This function can be used to check for files before calling dofile(),
which will fail for non-existing files.
Change-Id: Iae7b7ef6d8eb6e0e18f98fee7c740d2a5705eef3
declares the functions must be included, in order to make sure the
declarations match the function signature. Make it so - which means
creating the header file in the first place.
That means luaopen_bit() doesn't need to, and shouldn't be, declared in
wslua.h.
Have make-reg.pl generate a #include of lua_bitop.h. Also fix the "this
is autogenerated" warning.
svn path=/trunk/; revision=54725
Move COL_* enum to <epan/column-utils.h>
XXX Later we can rename epan/column-info.h to column-int.h (or smth like this)
svn path=/trunk/; revision=54352
as an argument, just as the add_packet_field method for a tree does.
Use tvb_get_string_enc() and tvb_get_stringz_enc() rather than
tvb_get_string(), tvb_get_stringz(), tvb_get_unicode_string(), and
tvb_get_unicode_stringz(). Treat "ustring" as meaning "UTF-16-encoded
Unicode string" rather than "UCS-2-encoded subset-of-Unicode string".
svn path=/trunk/; revision=54310
- Allow both string and integer for type and base (improve usability).
- Check valid base and mask for different types (avoid crashes).
- Remove ftypes.PROTOCOL from valid types.
This should fix bug #9549.
svn path=/trunk/; revision=54292
obvious that the returned string is ephemeral, and opens up the original names
in the API for versions that take a wmem pool (and thus can work in any scope).
svn path=/trunk/; revision=54249
knowledge of particular types of plugins. Instead, let particular types
of plugins register with the common plugin code, giving a name and a
routine to recognize that type of plugin.
In particular applications, only process the relevant plugin types.
Add a Makefile.common to the codecs directory.
svn path=/trunk/; revision=53710