forked from osmocom/wireshark
e1d9a226a2
The static arrays are supposed to be arrays of const pointers to int, not arrays of non-const pointers to const int. Fixing that means some bugs (scribbling on what's *supposed* to be a const array) will be caught (see packet-ieee80211-radiotap.c for examples, the first of which inspired this change and the second of which was discovered while testing compiles with this change), and removes the need for some annoying casts. Also make some of those arrays static while we're at it. Update documentation and dissector-generator tools. Change-Id: I789da5fc60aadc15797cefecfd9a9fbe9a130ccc Reviewed-on: https://code.wireshark.org/review/37517 Petri-Dish: Guy Harris <gharris@sonic.net> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com> |
||
---|---|---|
.. | ||
atsvc | ||
clusapi | ||
dfs | ||
dnsserver | ||
dssetup | ||
efs | ||
eventlog | ||
frsrpc | ||
frstrans | ||
fsrvp | ||
initshutdown | ||
lsa | ||
mapi | ||
mdssvc | ||
misc | ||
nspi | ||
rfr | ||
samr | ||
srvsvc | ||
winreg | ||
winspool | ||
witness | ||
wkssvc | ||
wzcsvc | ||
CMakeLists.txt | ||
IDL_LICENSE.txt | ||
Makefile.pidl | ||
README | ||
idl_types.h | ||
mapicodes_enum.h | ||
mapitags_enum.h |
README
A note about PIDL generated files ================================= Quick guide =========== Run 'make -f Makefile.pidl all' inside the pidl folder to generate all the dissectors and place them in the epan/dissectors folder. Complete infos ============== The following files: ../packet-dcerpc-atsvc.h ../packet-dcerpc-budb.c ../packet-dcerpc-budb.h ../packet-dcerpc-butc.c ../packet-dcerpc-butc.h ../packet-dcerpc-dfs.h ../packet-dcerpc-dnsserver.h ../packet-dcerpc-drsuapi.c ../packet-dcerpc-drsuapi.h ../packet-dcerpc-dssetup.h ../packet-dcerpc-efs.h ../packet-dcerpc-eventlog.h ../packet-dcerpc-frsrpc.h ../packet-dcerpc-frstrans.h ../packet-dcerpc-initshutdown.h ../packet-dcerpc-lsa.h ../packet-dcerpc-mapi.h ../packet-dcerpc-misc.h ../packet-dcerpc-nspi.h ../packet-dcerpc-rfr.h ../packet-dcerpc-samr.h ../packet-dcerpc-srvsvc.h ../packet-dcerpc-winreg.h ../packet-dcerpc-wkssvc.h ../packet-dcerpc-wzcsvc.h are automatically generated via a tool called "pidl"; you shouldn't modify them manually. The pidl tool is maintained by the Samba project (http://samba.org, samba-technical@samba.org). We have a version in ../../../tools/pidl; it currently differs from the Samba version only in its Wireshark-parser generator, as we had to change it to reflect some API differences between the current Wireshark release and the development trunk. The Samba version can be fetched from their git tree: git clone git://git.samba.org/samba.git Running pidl ============ You have to run the pidl command inside the pidl folder of the wireshark source tree. The command to compile file: ../../../tools/pidl/pidl --includedir . --ws-parser -- <idl-file> ^^^ This is *VERY* important The command generates 2 files: packet-dcerpc-<interfacename>.h packet-dcerpc-<interfacename>.c For instance, with the atsvc.idl, the command will be: ../../../tools/pidl/pidl --includedir . --ws-parser -- atsvc.idl This will generate 2 files: packet-dcerpc-atsvc.h packet-dcerpc-atsvc.c If you run outside the dissectors/pidl directory, this *will* result in a warning such as: atsvc.idl:5:23: idl_types.h: No such file or directory and *may* result in additional warnings such as: Warning: No conformance file `initshutdown.cnf' Unable to handle string with flags STR_LEN4|STR_NOTERM at /usr/lib/perl5/site_perl/5.8.6/Parse/Pidl/Wireshark/NDR.pm line 283. Notes about the in-tree pidl ============================ To allow building Wireshark pidl dissectors without having to *explicitly* access a remote git repository, and to allow us to make changes to the Wireshark parser generator that the Samba developers might not want to make until a new major release of Wireshark comes out, so as to allow users to build dissectors to run in the current Wireshark release, a copy of pidl is located in tools/pidl. Not compiling idl ================= As of September 26, 2014, the following idl have issues when generating and compiling: pidl complains that inline arrays aren't supported for these: dnsserver.idl eventlog.idl pidl generates possibly-incorrect code for these - this needs checking: rfr/rfr.idl pidl rejects these with errors: srvsvc.idl wkssvc.cnf