A custom plugin (not yet to be released to the public) can be added to Makefile.nmake easily. But this has a drawback:
The modified Makefile.nmake appears as a modified file in the commit list and in generated patches (this annoyed me for years).
To solve this I've added a plugin like mechanism which calls a Custom.nmake file for each target (if the file is existing). I've also added a Custom.nmake.example for a quick start.
I don't know how to do this for the Makefile.am, so I leave this as an exercise for the interested reader ;-)
svn path=/trunk/; revision=19377
The "listen_rtp" plugin that allows to listen audio RTP
conversations.
The plugin is integrated to the "Voip Calls" feature. There is a new
"listen" button in the "Voip Calls" that once the calls are selected and
the "listen" is clicked, a new window will open. In this window you can
change the simulated jitter buffer to be used for decoding the RTP
packets. In this first implementation, only a static jitter buffer can
be simulated. Then pressing "decode" will decode all the RTP and
generate the graphical view of the audio channels. From there you can
select up to two channels at the same time (to be played in the left and
right channels) and then play, pause, stop,etc.....ok, the attached
screenshot it is self explanatory (hopefully).
The only codecs available from now are G711u and G711a law.
The PortAudio (www.portaudio.com) library is used to play audio.
This is an open source cross-platform Audio library. I have tested this
on Windows XP and in a linux FC4.
NOTE: only the plugin soure files checked in at this time.
svn path=/trunk/; revision=18588
I hope this is the right place to send a patch for a new dissector
plugin. The telegram it dissects are for the communication between PLCs
(Programmable logic controller) from the company Saia Burgess Controls
Ltd. (http://www.start-controls.com, http://www.saia-burgess.com or
http://www.sbc-support.ch). The protocol is named Ether-S-Bus (the PLCs
are called PCD2, PCD3, PCD4).
svn path=/trunk/; revision=18526
After synchronization with wireshark repository I see that the patch is applied in the incorrect way.
I send you another patch to fix this issue.
svn path=/trunk/; revision=18518
- Many DCT2000 protocols can be embedded within an IP primitive
message. Add a heuristic to see if we can find the protocol payload
within in IP primitive message, and look for an ethereal dissector
matching the DCT2000 protocol name (this is useful for simple protocol
testing where no physical links are involved)
- Make some more of these protocols (diameter, http, mgcp) findable by name
- Adds protocol 'variant' number to stub and dissector
- Break the duplicated writing of the stub header out into a separate
function
svn path=/trunk/; revision=18212
that could be used with any plugin. (It'd be nice if there were some
way to do that with Makefile.am, but automake doesn't seem to like
macro names being used in the definitions of its magic macros.)
svn path=/trunk/; revision=18150
sets errno to 0 when we can't open a file. This resurrected the annoying
"C:\Program Files\Ethereal\asn1/default.tt" error in the ASN.1 plugin,
since we depended on errno being set to ENOENT. Move some logic around
to account for this.
svn path=/trunk/; revision=18073
Python versions, as it no longer makes only "register.c", it can also
make a "plugin.c" file for a plugin.
When making "plugin.c", there's no need to include "register.h", as it's
not defining any functions declared there.
svn path=/trunk/; revision=17919
Fix the Makefile.nmake files to pass the output type argument to
make-reg-dotc or make-reg-dotc.py.
Make tools/make-reg-dotc executable.
svn path=/trunk/; revision=17904
libetheral or a plugin.c for a plugin, rather than having plugin.c for a
dissector call the routines from register.c. This means we don't ahve
multiple register_all_protocols() and register_all_protocol_handoffs()
routines, and that all the plugin boilerplate is automatically
generated.
svn path=/trunk/; revision=17903
this patch leads to a more condensed representation of strings in the GIOP module, e.g. in Parlay instead of having:
length = 42
TpAddress_AddrString = sip:anyone@somebody.thehost.whose.es:5432
you have now:
TpAddress_AddrString (42) = sip:anyone@somebody.thehost.whose.es:5432
The former was not as concise, if you have a lot of strings (as in CosNaming) and it was not clear whether the protocol had a explicit field named "length" in the IDL.
svn path=/trunk/; revision=17902
- Regenerated files.
- Use .sort() on one or two of the lists in ethereal_gen.py to make generated files
more diff-friendly in the future.
svn path=/trunk/; revision=17885
"register.c" with "make-reg-dotc"/"make-reg-dotc.py".
Pull the lists of dissector .c and .h files into Makefile.common and
have Makefile.am and Makefile.nmake use it.
svn path=/trunk/; revision=17883
This patch fixes the decode problem mentioned in this bug report:
"3. Frames 9 and 13 are only partially decoded and show up as "Packet size limited during capture" It looks like the decode chokes on the DQ-RI line."
DQ-RI is a localconnectionoptions parameter and shouldn't appear as a top-level parameter. This patch makes sure that all of the single-character top-level parmeter codes are followed immediately by a ':'.
svn path=/trunk/; revision=17816
wiretap/README.developer
- the referenced default seek_read function doesn't exist now
wiretap/wtap.c
- a "hole" in encap_table was causing the wrong encap value for later
types to be looked up (by name)
mergecap.c
- fix a couple of program name copy+paste errors from editcap.c
svn path=/trunk/; revision=17765
while this should improve performance by unmeasurably little it does have the sideeffect that once we finish the rewrite tcp analysis might actually work and work well even for tcp over tcp tunnelling.
this also means that if you include packet-tcp.h you also need to include emem.h .
svn path=/trunk/; revision=17681
Lex code is often hard for humans to understand... neither of the error conditions found would be happening...
One was marked as error because coverity does not understand that yyterminate() breaks execution.
The other marked as an error because coverity is not able to figure out that the error appears in an actions against two different rules that will not ever match toghether.
svn path=/trunk/; revision=17584
- By the same token get rid of ProtoFieldArray having Proto.fields attribute been a lua "Array" containing fields.
(still untested, and probably broken)
svn path=/trunk/; revision=17486
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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
* 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
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
- 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
* 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
* 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
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
* 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
* 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
* 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
- 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
* 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
pinfo.src = Address.ip("www.xxx.com")
pinfo.col.info = "A special packet"
if (pinfo.src_port == 2) then pinfo.col.protocol = "STRANGE" end
svn path=/trunk/; revision=17096
Dissectors registered with register_postdissector() will be called after all other dissectors have been called.
Use it to register mate.
svn path=/trunk/; revision=17089
svn propset svn:keywords Id *
svn propset svn:eol-style native *
Todo: svn propset svn:ignore .
Because I don't know what to ignore
svn path=/trunk/; revision=17059
This is an interface to the Lua programming language.
http://www.lua.org
I've already wrote a simple dissector that calls another dissectors.
soon It will be able to register a tap and do something more.
I did not checkin changes to the Makefiles so in order to use it you must change the makefiles.
Other than that to get it to work you need to download lua-5.0.2.tar.gz into the plugin directory, uncompress it, cd to it and call make.
the interface is buggy and far from finished, time will help on this.
svn path=/trunk/; revision=17057
include fails as we don't do -Iwiretap.
If we have it, include <sys/stat.h> in epan/filesystem.c - we need it
for stat() and the macros and structures it uses.
svn path=/trunk/; revision=16410
to do this, I've added file_util.h to wiretap (would file_compat.h be a better name?), and provide compat_macros like eth_open() instead of open(). While at it, move other file related things there, like #include <io.h>, definition of O_BINARY and alike, so it's all in one place.
deleted related things from config.h.win32
As of these massive changes, I'm almost certain that this will break the Unix build. I'll keep an eye on the buildbot so hopefully everything is working again soon.
svn path=/trunk/; revision=16403
print register numbers as unsigned (they're guint32);
when printing a PUT_FVALUE instruction, show the value as well
as the type of the value.
That requires that a bunch of types get to_repr methods; add them for
PCRE (FTREPR_DFILTER-only - show the regular expression as text),
tvbuffs (FTREPR_DFILTER_only - show the data as a hex string), integral
types, string types other than FT_STRING, and FT_IPv6.
That means we can use fvalue_to_string_repr() for FT_IPXNET and FT_IPv6
in proto_construct_dfilter_string(), and that we don't need to handle
integer and floating types specially in MATE.
Fix some problems with the PCRE execution code for tvbuff types.
svn path=/trunk/; revision=16369