Commit Graph

748 Commits

Author SHA1 Message Date
Luis Ontanon 8b84860a23 - Some more comments
svn path=/trunk/; revision=17415
2006-02-27 01:54:22 +00:00
Luis Ontanon 27e2c87833 The semantics of luaL_checkudata() change between 5.0 and 5.1 (the later triggers an error).
make sure isXxx() functions do not trigger an error, we want them to return not to pop the stack back to the lua caller.


svn path=/trunk/; revision=17411
2006-02-25 12:54:25 +00:00
Luis Ontanon b67337aacf - elua_proto
- add doComments
  - fix an error in DissectorTable_remove
  - reorganize DissectorTable_try

 - elua.h
   squelch some warnings

- Makefile.nmake
  - replace the $^ macro with the targets (i.e. do what nmake was supposed to do)
  - move the doc target into the conditional part


svn path=/trunk/; revision=17406
2006-02-25 03:21:00 +00:00
Luis Ontanon eddf915e40 I changed some vanames and did not compile...
svn path=/trunk/; revision=17399
2006-02-24 08:44:49 +00:00
Luis Ontanon 48551d9d85 - More "docOMMentation" of the API
- also supress Address__ge and Address_gt because re-reading the ref manual I noticed that they are suplerfluous (Lua assumes that a > b is equivalent to b < a, which in most cases (as this) it does)

- have elua_makedoc.pl hanlde docomments in more than one line and after the line where the entity s defined.


svn path=/trunk/; revision=17382
2006-02-23 17:02:29 +00:00
Jörg Mayer e4be8f1a19 Delete docs in maintainer-clean target
svn path=/trunk/; revision=17379
2006-02-23 10:18:05 +00:00
Luis Ontanon 7cd1757c80 Forgot...
Elua functions in elua.c moved to this new file.


svn path=/trunk/; revision=17375
2006-02-22 23:58:21 +00:00
Luis Ontanon 251d769ef7 - More documentation embeded in the source code.
- Changed some Macros
- Have dump:close NULLyfing the boxed object so that no futher operations are performed on a dumper once is closed.
- Check if elua_register.h has changed and avoid overwriting it if it hasn't changed to avoid unnecessary compilations.


svn path=/trunk/; revision=17374
2006-02-22 23:55:11 +00:00
Jörg Mayer 15cae24313 elua_register.h wasn't built automatically
svn path=/trunk/; revision=17371
2006-02-22 14:19:39 +00:00
Luis Ontanon 3db1ff91a7 - rename all the c files
- have elua_makereg.pl generating the declaration and registration Macros for each module
- start of elua_makedoc.pl that should generate the Reference Manual from the code.


svn path=/trunk/; revision=17362
2006-02-21 21:52:28 +00:00
Jaap Keuter 48f6c25460 Fix for bug 756. Handle CR as part of separator as well.
svn path=/trunk/; revision=17359
2006-02-21 11:48:40 +00:00
Luis Ontanon c3c7f8a0c3 - Use lua 5.1
- Compress *_register() functions



svn path=/trunk/; revision=17354
2006-02-19 21:51:34 +00:00
Luis Ontanon accc35dd2a rename plugin.c to lua_plugin.c
svn path=/trunk/; revision=17348
2006-02-18 05:12:58 +00:00
Luis Ontanon 871381514f Add dual version
svn path=/trunk/; revision=17347
2006-02-18 05:11:29 +00:00
Luis Ontanon d9462b4a45 Prepare for lua 5.1
svn path=/trunk/; revision=17346
2006-02-18 04:03:24 +00:00
Luis Ontanon 0b2d1add6f - Make sure the right globals are set before invoking user tap caallbaccks
- Have Dumper.new_for_current() and dumper:dump_current() work.


svn path=/trunk/; revision=17336
2006-02-17 16:16:42 +00:00
Luis Ontanon d238e5ef1e - avoid the user been flooded with report_error windows if there's an error in a tap callback
- fix args of Dumper:new_for_current
- add a semicolon after LUA_CLASS_DECLARE(PseudoHeader,PSEUDOHEADER) that caused an error (Lesson: Even if trivial one should test changes, there's always a typo arround the corner)


svn path=/trunk/; revision=17329
2006-02-17 05:16:06 +00:00
Luis Ontanon bafca77aad - pass the tvb too to tap packet callbacks
- Dumper (an interface to Wiretap dumpers)


svn path=/trunk/; revision=17328
2006-02-17 02:50:23 +00:00
Luis Ontanon 1b096ab156 Have Field extractors being defined while reading the body of the script instead that during initialization.
Change their semantics too:

ip_src_f = Field("ip.src")

function tap.packet(pinfo)
	ip_src = ip_src()
end


svn path=/trunk/; revision=17315
2006-02-16 00:54:56 +00:00
Luis Ontanon 0646b11758 Protect The tree and The tvb from being used outside their scope
svn path=/trunk/; revision=17307
2006-02-15 02:10:07 +00:00
Luis Ontanon 2d7b55d808 - protect proto_items and proto_trees from being used out of their scope
- fix the severity variables



svn path=/trunk/; revision=17306
2006-02-15 02:00:18 +00:00
Luis Ontanon 86ea89f2aa - protect column, columns and pinfo from dereferencing invalid data saved by the user.
- columns live for less than a packet's time, use ep_alloc not g_malloc
- tvbranges are ephemeral too

doc/ is to remain as a placeholder for upcoming docs.

lualib/ is to be deleted (if needed it should go in trunk) but it appears that once I added if I do not check it in I cannot delete it.


svn path=/trunk/; revision=17305
2006-02-15 01:21:51 +00:00
Gerald Combs 844ec9f7a1 mgcp-plugin -> plugin-mgcp.
svn path=/trunk/; revision=17304
2006-02-14 18:52:58 +00:00
Jörg Mayer e10101b774 Experiment with a somewhat generic packet-to-plugin wrapper
svn path=/trunk/; revision=17300
2006-02-14 14:51:18 +00:00
Luis Ontanon 0980473a80 - fix a sure crash after an error in lua code lua_tap_draw.
- make sure no reference to a Tvb in lua is used after the lua dissector has returned.


svn path=/trunk/; revision=17296
2006-02-14 01:29:55 +00:00
Luis Ontanon 184349063f - disable print
- add a log facility to lua (so far just prints to stderr)
- add settings to disable lua even if installed, to load or not to load user scripts when superuser
- create a default /usr/local/share/ethereal/init.lua that blocks all the io/system calls when running as superuser



svn path=/trunk/; revision=17290
2006-02-13 22:13:31 +00:00
Luis Ontanon 9fd26b71ef * DissectorTable.add does not allow to add lua protocols that don't have a dissector.
* ProtoFiled.uint checks the base to be a valid value to avoid an assertion in proto.c while registering the field array
* save one lua table lookup by using a reference to the dissectors table instead of looking for it by name
* set data_hanlde's value to avoid a crash while invoking it.
* make the TvbRange of Tree:add_item really optional. 


svn path=/trunk/; revision=17220
2006-02-08 23:26:52 +00:00
Jörg Mayer 2d668534a9 Include glib.h, so FALSE is defined when compiling statically.
svn path=/trunk/; revision=17218
2006-02-08 17:04:21 +00:00
Luis Ontanon afa7c90487 Changed how files are loaded.
load $ETH/init.lua if it exists
if we are not runninig on special privileges
  load $USER/init.lua
  and then all the files given with cmd line option -X lua_script:file.lua 


svn path=/trunk/; revision=17210
2006-02-08 00:02:15 +00:00
Lars Roland 5f1e470cc2 changes to build lua plugin with MSVC6:
- nmake makefile for lua plugin added.
- declare variables at the beginning of a function.
- proto_reg_handoff_lua was removed, remove remaining calls, too.
- missing functions to libethereal.def added.

add lua plugin to installer, if available.

svn path=/trunk/; revision=17196
2006-02-07 09:12:43 +00:00
Luis Ontanon 5bf6a2939f init_routines was moved back to globals.
svn path=/trunk/; revision=17192
2006-02-07 03:47:13 +00:00
Luis Ontanon 5a2013cdfc I Noticed a crash when registering a tap with filter during handoff (that's when I had lua starting) trying to see if I could move dfilter_init() before protocol registration I discovered register_final_registration_routine() neat!
Lua protocols won't need a handoff routine anymore!!


svn path=/trunk/; revision=17191
2006-02-07 03:06:02 +00:00
Luis Ontanon 1352ce5fe6 + gui_enabled()
* make  the gui routines call-able since the first line of the script


svn path=/trunk/; revision=17190
2006-02-06 23:58:07 +00:00
Jörg Mayer 76ef87393c svn eol-style and keywords
svn path=/trunk/; revision=17183
2006-02-06 12:21:31 +00:00
Luis Ontanon 41a8855e1b Lua uses the simple dialog
svn path=/trunk/; revision=17173
2006-02-06 01:29:05 +00:00
Luis Ontanon 3ed65a40e4 Add an example of tap,text window and menu usage
svn path=/trunk/; revision=17167
2006-02-05 20:07:19 +00:00
Luis Ontanon 2427624d5a * move all the tap functions to lua_tap
* change the way taps work (docs coming)
* add an at_close method to the textwindow that allows the user to set a callback function to be called when the window is closed


svn path=/trunk/; revision=17166
2006-02-05 20:06:05 +00:00
Luis Ontanon 174291f7f7 Allow lua to register menu items
svn path=/trunk/; revision=17162
2006-02-05 04:02:52 +00:00
Luis Ontanon 246dc75d35 Propset eol-style and Id for all
lua_gui.h has a licence


svn path=/trunk/; revision=17152
2006-02-04 20:34:16 +00:00
Luis Ontanon fedb9b5c92 Give lua a minimal gui.
svn path=/trunk/; revision=17150
2006-02-04 20:00:58 +00:00
Luis Ontanon 1434f575d5 * packet-lua.h
* add a shiftC() function to every class for extracting values from the stack
   
* lua_pinfo.c
   * fix pinfo.dst pinfo.dl_dst pinfo.dl_src pinfo.net_dst pinfo.net_src
   
* lua_tree.c
   * ProtoTree_add_item_any() changed to use TvbRanges, a more handy way to give it optional arguments 

* lua_tvb.c
   * get ByteArray up and running
   * create TvbRange class and use it to access the tvb (this class takes care of checking bounds so that exceptions are not thrown)



svn path=/trunk/; revision=17146
2006-02-03 21:25:26 +00:00
Anders Broman e5e25269c9 From Eric Hultin:
This patch adds support for dissection of the DCC packet as defined in 
CableLab's (http://www.cablelabs.com/) DOCSIS Radio Frequency Interface 
(RFI) specification. The latest version of this specification is currently 
available at 
http://www.cablemodem.com/specifications/specifications20.html . Packet 
formats for DCC are defined in sections 8.3.20 (DCC-REQ), 8.3.21 
(DCC-RSP), and 8.3.22 (DCC-ACK) of the RFI specifications (referencing 
version CM-SP-RFIv2.0-I10-051209). In addition, this patch adds support 
for the DCD packet as defined in the DOCSIS Set-Top Gateway (DSG) 
Specification. The latest version of this specification is currently 
available at http://www.cablemodem.com/specifications/gateway.html . The 
format of the DCD packet is defined in section 5.3.1 of the DSG 
specification (referencing version CM-SP-DSG-I06-051209).

svn path=/trunk/; revision=17138
2006-02-01 05:44:20 +00:00
Luis Ontanon c8dd927e0c It was hard.. but at the end I won (or at least i believe so...).
After install hello_world.lua works.


svn path=/trunk/; revision=17137
2006-01-31 22:22:05 +00:00
Jörg Mayer 133a10823e Warning fixes: no ';' at the end of functions.
svn path=/trunk/; revision=17124
2006-01-29 23:48:43 +00:00
Luis Ontanon 3b08aa956c * packet-lua.h
* add an isXxx() declaration
   
* packet-lua.c
   * move the dissectors, handoffs and inits tables to the registry
   
* lua_proto.c
   * new_protocol is now called Protocol
   * move the dissectors, handoffs and inits tables to the registry



svn path=/trunk/; revision=17117
2006-01-29 03:13:26 +00:00
Luis Ontanon ef78577292 * lua_pinfo.c
* Address' gt, ge, eq, le and lt operators
   
* lua_proto.c
   * DissectorTable:remove and DissectorTable:add
      - can take either Proto or Dissector as third argument
   
* lua_tree.c
   * make sure we have a lua_etts array on which to add etts
   * ProtoItem:add_subtree() if no ett is given don't fail use the default one.
   



svn path=/trunk/; revision=17111
2006-01-28 21:09:59 +00:00
Luis Ontanon 31aa31f626 * packet-lua.h
* SubTreeType (ett) was renamed as SubTree 

* lua_tap.c
   - change the way the taps register (still to be finished so I won't comment)
   
* lua_tree.c
   * SubTree(ett) moved here, now it autoregisters all subtrees created at once. The user neither does need to create a SubTreeArray(eliminated) anymore nor to register it.

* lua_proto.c
   * SubTree moved out from here its "global" variables are used by lua_tree.c .
   * SubTreeArray was eliminated (now ett's "autoregister")
   * Created usertypes for
      - Pref a preference
      - Prefs all preferences of one protocol
      So far they are transparent to the user.
   * Proto has become a pseudo-table instead of a method based (registration in nicer)

* packet-lua.c
  * runtime errors go where they are meant to:
    - errors in dissector code go to the tree (a-la malformed)
    - errors in registration/handoff/init use reporte_failure()
  * no more Lua code to be compiled at runtime


svn path=/trunk/; revision=17110
2006-01-28 03:15:45 +00:00
Luis Ontanon 263caacb94 * we need not to register the interesting fields via a tap its registration should be transparent to the user.
- as of now I'm using a "boring" tap  (NULL packet_cb)  with a filter containing all the registered ones

* Lua code in init_lua() is not to be compiled anymore (I did)


svn path=/trunk/; revision=17108
2006-01-26 23:06:48 +00:00
Luis Ontanon 094840aa97 * lua_tree.c
* protect proto_item_add_* calls with a TRY CATCH to avoid the Lua state getting corrupted
   * new ProtoItem:add_expert_info() call

 * lua_proto.c
   * protect call_dissector() and dissector_try_*() calls with TRY CATCH to avoid the Lua state getting corrupted
   * ValueString makes no sense, get rid of it we'll use Lua's associative arrays instead

 * lua_tvb.c
   * while creating a tvb from a ByteArray copy the ByteArray's data and set the tvb's free_cb
   * check bounds before calling tvb_*() to avoid a longjmp breaking Lua
   * do not leak the string in Tvb_tostring()
   * new Tvb:get_ipv4() call
   * new Tvb:get_eth() call

 * packet-lua.[ch]
   * export lua_tvb and lua_malformed to other modules being the current tvb and the protocol_id of malformed
   * convert some Lua to C
   * do not register ValueString (eliminated)




svn path=/trunk/; revision=17106
2006-01-26 20:20:55 +00:00
Luis Ontanon 9c10169b97 two bugs less
svn path=/trunk/; revision=17104
2006-01-25 22:49:58 +00:00