Commit graph

41 commits

Author SHA1 Message Date
Michael Mann
04d9501306 Add capture file reader/writer support for Lua so scripts can implement new capture file formats.
This enables a Lua script to implement a brand new capture file format reader/writer, so that for example one could write a script to read from vendor-specific "logs" of packets, and show them as normal packets in wireshark.

Change-Id: Id394edfffa94529f39789844c382b7ab6cc2d814
Reviewed-on: https://code.wireshark.org/review/431
Reviewed-by: Hadriel Kaplan <hadrielk@yahoo.com>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-03-19 05:04:54 +00:00
Hadriel Kaplan
ea46cdc474 Add GLib's regex library into Lua
While Lua's built-in pattern support is ok for simple things, many people end
up wanting a real regex engine. Since Wireshark already includes the GLib
Regex library (a wrapper for PCRE), it makes sense to expose that library to
Lua scripts. This has been done using Lrexlib, one of the most popular regex
bindings for Lua. Lrexlib didn't support binding GLib's Regex in particular -
it does for PCRE but GLib is a different API - so I've done that. A fairly
thorough testsuite came along with that, which has been incorporated into the
wireshark wslua testuites as well in this commit.

Change-Id: I05811d1edf7af8d7c9f4f081de6850f31c0717c7
Reviewed-on: https://code.wireshark.org/review/332
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-03-10 07:11:12 +00:00
Hadriel Kaplan
9246a709bf Cleanup on aisle 5: normalizes the Lua code to follow common schema/model
Over time the various wslua classes/functions have gotten moldy, with different
ways of doing similar things. Some of it can't be changed without breaking
backwards compatibility for Lua scripts, so I didn't do that. But I did what
I could. The biggest change is a refactoring of how accessors/attributes
are handled in the code, so that most of them work the same way using the
same code.

Specific changes made:
 * Added null/expired checking macro to class declarations for many classes
 * Removed extraneous pointer/expired checking, since checkFoo() does that already
 * Fixed "errors" reported by clang static analyzer; they were false positives, but it was easier to get it to stop complaining by changing the code
 * Moved internal wslua functions from wslua_utils.c into a new 'wslua_internals.c' file
 * Changed Listener/NSTime/Pinfo/Proto to use a common setter/getter accessor/attribute code model, instead of each of them doing their own
 * Fixed some API doc mistakes, mostly around attributes that were documented as read-only but were actually read-write

Change-Id: Idddafc5fbd3545ebff29e063acc767e1c743a1a9
Reviewed-on: https://code.wireshark.org/review/271
Reviewed-by: Evan Huus <eapache@gmail.com>
Tested-by: Evan Huus <eapache@gmail.com>
2014-02-21 02:05:35 +00:00
Hadriel Kaplan
c4f1777a97 Adds support for Lua struct library so one can pack/unpack binary structures
This is based on Roberto Ierusalimschy's struct library, along with additional
options based on Flemming Madsen's patch to the lua-users mailing list, and
some changes I made to support 64-bit integer packing/unpacking.  Details
are in the top comments for wslua_struct.c.  This also includes a test script.

Change-Id: Ifcd0116ba013d5c760927721c8d6e9f28965534b
Reviewed-on: https://code.wireshark.org/review/98
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2014-02-14 10:11:50 +00:00
Hadriel Kaplan
2e7f771a18 Adds support for Lua Int64 and UInt64 operators, functions, and general
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>
2014-02-04 00:37:46 +00:00
Guy Harris
59722b868d In a source file that defines external functions, the header file that
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
2014-01-13 22:06:12 +00:00
Stig Bjørlykke
a31a88b142 Show the Lua plugin being loaded in the splash screen.
svn path=/trunk/; revision=51335
2013-08-13 10:38:30 +00:00
Jaap Keuter
827eb58b04 From David Arnold:
Replace use of INCLUDES with AM_CPPFLAGS in all Makefiles to placate recent autotools.

svn path=/trunk/; revision=48261
2013-03-12 06:53:39 +00:00
Jakub Zawadzki
bf81b42e1e Update Free Software Foundation address.
(COPYING will be updated in next commit)

svn path=/trunk/; revision=43536
2012-06-28 22:56:06 +00:00
Jeff Morriss
75c3c92f19 Add a "-build" argument to checkAPIs.pl. Use that argument when building
from makefiles (and thus from the buildbot).

The intention is to be able to tell when a human is running the tool so we
can provide more code-review guidance.

As a starter, enable the "too many proto_tree_add_text() calls" check when
a human is running the tool.

svn path=/trunk/; revision=41943
2012-04-04 20:46:49 +00:00
Balint Reczey
07cf00cd11 Drop init_wslua.h from EXTRA_DIST
svn path=/trunk/; revision=35164
2010-12-09 15:47:23 +00:00
Jörg Mayer
e37e3ba26a Remaining fixes for
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4788
- Compile the python code directly into epan - don't link it in as
  a static lib.
- Call make-init-lua.pl with the top level directory instead of the
  current directory. Change make-init-lua.pl accordingly.

svn path=/trunk/; revision=33009
2010-05-28 11:48:29 +00:00
Jeff Morriss
54082c6ed0 Add Cmake stuff to the source distribution so more people can try it out.
svn path=/trunk/; revision=32807
2010-05-14 16:27:03 +00:00
Stig Bjørlykke
81807b3e9b Added init_wslua.h
svn path=/trunk/; revision=30676
2009-10-23 18:00:57 +00:00
Stig Bjørlykke
9b0aa6912f Added Lua BitOp, made by Mike Pall.
svn path=/trunk/; revision=28758
2009-06-16 05:26:46 +00:00
Gerald Combs
38f2c5e9c6 Move init.lua from MAINTAINERCLEANFILES to DISTCLEANFILES.
svn path=/trunk/; revision=28666
2009-06-08 19:02:49 +00:00
Stig Bjørlykke
b0cb4d22e9 Enable Lua wlan taps.
svn path=/trunk/; revision=28326
2009-05-10 16:02:35 +00:00
Balint Reczey
a5622ba415 Do not include init.lua in distribution tar.gz.
svn path=/trunk/; revision=27094
2008-12-23 17:01:59 +00:00
Guy Harris
a04774395f Add Makefile.common files for epan/dfilter and epan/ftypes.
Add checkapi rules to Makefile.am files.

svn path=/trunk/; revision=25656
2008-07-02 01:44:30 +00:00
Luis Ontanon
4eb08aad66 From Marton Nemeth:
Addenda and fixes to WSLUA_CLASS_DEFINE documentation

Mine: fix init.lua generation



svn path=/trunk/; revision=25025
2008-04-14 21:16:32 +00:00
Luis Ontanon
db608bdf76 From Marton Nemeth <nm127@freemail.hu>
correct example and documentation about register_menu()

my own: do not fail to make init.lua when building in a different dir



svn path=/trunk/; revision=24879
2008-04-10 20:07:58 +00:00
Guy Harris
dd86332046 Gak. <> makes it too easy to make these make- scripts do what the rest
do, and take $(srcdir) as the first argument.  Back the previous changes
out, for now.

svn path=/trunk/; revision=22441
2007-08-02 16:06:13 +00:00
Guy Harris
ad76a231d4 We have to include Makefile.common if we move definitions we need
there....

svn path=/trunk/; revision=22440
2007-08-02 08:24:00 +00:00
Guy Harris
4f00d5fcc1 Move the list of source files to a Makefile.common file.
Don't put $(srcdir)/ at the beginning of those file names - other
Makefile.am files don't have it, and it appears to break "make
distcheck", at least on my Mac OS X 10.4 machine.

svn path=/trunk/; revision=22439
2007-08-02 07:54:03 +00:00
Jörg Mayer
7c888570e4 Hack to fix out of tree builds
svn path=/trunk/; revision=21861
2007-05-21 16:02:31 +00:00
Stephen Fisher
62f88a4a04 From Sebastien Tandel:
(Temporarily disable the warnings as errors default on Unix to get
to get the buildbots and people with gcc40 going again until those
additional warnings gcc40 generates can be fixed-I'm working on it
ASAP)

   Patch for configure.in which disables by default the treatment of
warnings as errors.
It can be enabled with './configure --with-warnings-as-errors'.
The macro will test first if GCC is present. If it's the case,
HAVE_WARNINGS_AS_ERRORS is defined. All the USING_GCC have been replaced
by HAVE_WARNINGS_AS_ERRORS.
With this switch, people won't suffer from unexpected warnings when
downloading svn sources during the transition time ;)


svn path=/trunk/; revision=21153
2007-03-23 17:49:59 +00:00
Stephen Fisher
84c5becd89 Add -Werror for gcc to a few more directories and fix a few warnings
svn path=/trunk/; revision=21129
2007-03-22 23:24:13 +00:00
Luis Ontanon
5fa8e75149 packet_info.c and packet.c
add sccp_info to struct _packet_info (Sorry but the way private_data works and the fact that TCAP uses it and BSSAP/RANAP can be tunnelled on GSMMAP over TCAP makes it impossible to avoid)

SCCP
- Have SCCP to have a TAP,
- Fix associations so that every message belongs to the association.
- Export message type values so that they can be used by a tap listener

RANAP
 - Have RANAP information attached to the sccp_info 

BSSAP + GSM_A
- Have DTAP, BSSMAP and BSSAP info attached to the sccp_info

svn path=/trunk/; revision=21076
2007-03-21 00:48:46 +00:00
Luis Ontanon
db9803fdd0 fix distcheck
svn path=/trunk/; revision=20578
2007-01-27 04:08:06 +00:00
Guy Harris
1c9939e359 Rename pkgdata_DATA to dist_pkgdata_DATA, to make sure it's in the
distribution.  That means we don't have to include it in EXTRA_DIST.

svn path=/trunk/; revision=20310
2007-01-04 18:35:33 +00:00
Anders Broman
a0438e6cf0 console.lua missing from the svn tarball preventing making a package. I hope this
is the right way to fix it.

svn path=/trunk/; revision=19764
2006-10-31 22:28:50 +00:00
Luis Ontanon
0072205e18 Have Lua disabled by default.
Add more documentation to the code. 
change make-dco.pl so that it creates more readable docbook output.

This should be copied over to 0.99.4



svn path=/trunk/; revision=19670
2006-10-24 13:16:57 +00:00
Luis Ontanon
82abc5f08b - wslua_gui.c:
- remove data_ref where it is not used anymore (callbacks won't pass userdata as this ius better done using lua's closures)
  - have TextWindow:set_editable() using its argument

- add wslua_optbool(L,n,d) to pull an optional boolean from the stack

- several fixes to docbook generation (now it compiles!)



svn path=/trunk/; revision=19608
2006-10-19 17:02:23 +00:00
Luis Ontanon
aee9a87da4 - Fix the makefile
- improve the Lua Console


svn path=/trunk/; revision=19591
2006-10-18 15:05:55 +00:00
Luis Ontanon
b8ef88a6e2 Several changes:
- do not #include a c code file in wslua_register.c compile a separate boject
 - add the console and evaluate windows
 - add some useful vars to the lua environment
 - some cleanup
 - add the dtd generator code (currently disabled)


svn path=/trunk/; revision=19579
2006-10-17 18:20:44 +00:00
Luis Ontanon
ba90067e62 - wslua_util.c: replace Lua's loadfile and dofile for versions that will try to open the file in perscofdir then dataconfdir if there's no such file in cwd
- wslua_field.c: avoid FieldInfo:__tostring() crashing when the ftype has no val_to_string_repr
- init.lua: inform the user that a packet has been disabled, intead of a cryptic "attemt to call nil"
- Makefile.am: add register_wslua.c and declare_wslua.h to MAINTAINERCLEANFILES
- wslua_gui.c: fix a typo


svn path=/trunk/; revision=19425
2006-10-04 14:37:46 +00:00
Ulf Lamping
4d1da73c6f an attempt to fix the Ubuntu buildbot:
ERROR: files left in build directory after distclean:
./epan/wslua/declare_wslua.h
./epan/wslua/register_wslua.c

Louis, could you have a look - I might have produced a mess :-)

svn path=/trunk/; revision=19423
2006-10-03 23:32:51 +00:00
Luis Ontanon
e23201c62a - Make sure that the registration files are created whenever there's a change
- get rid of 5.0.2 stuff
- add the apply_filter() API


svn path=/trunk/; revision=19406
2006-10-03 14:27:45 +00:00
Gerald Combs
d1737fd2eb Fix distcheck errors. Add epan/wslua to the list of distribution
directories, make sure $(scrdir) is prepended to script paths, and 
fixup the wslua distclean target.

svn path=/trunk/; revision=19329
2006-09-26 22:24:50 +00:00
Luis Ontanon
c8a95a0548 Lua 5.1.1 for windows
svn path=/trunk/; revision=19324
2006-09-26 03:31:00 +00:00
Luis Ontanon
6462d05044 Move the Lua interface into epan... (not a plugin anymore).
- Rename Tap into Listener
- add a mechanism to pass protocols' tap data to the Listener


svn path=/trunk/; revision=19319
2006-09-25 01:09:00 +00:00