Updates to:

suggest using our version of pidl, given that its Wireshark
	parser generator has changes to support the current internal
	Wireshark APIs for dissectors;

	suggest using "--includedir ." to make IDL files in
	subdirectories of epan/dissectors/pidl work;

	update the list of IDL files with issues;

	reformat to 80x66 (if it's good enough for Herman Hollerith,
	it's good enough for me!).

svn path=/trunk/; revision=53533
This commit is contained in:
Guy Harris 2013-11-24 02:45:38 +00:00
parent de2a922b55
commit cafef8b111
1 changed files with 42 additions and 28 deletions

View File

@ -3,11 +3,10 @@ A note about PIDL generated files
Quick guide
===========
rsync -av rsync.samba.org::ftp/pub/unpacked/samba_4_0_test/pidl .
for file in *.idl; do
for file in *.idl */*.idl; do
echo "Generating dissector for $file"
./pidl/pidl --ws-parser -- $file;
../../../tools/pidl/pidl --includedir . --ws-parser -- $file;
done
cp packet-dcerpc*.* ..
@ -41,35 +40,35 @@ The following files:
../packet-dcerpc-wkssvc.h
../packet-dcerpc-wzcsvc.h
Are automatically generated via a tool called "pidl", you shouldn't modify them manually.
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 recommend to fetch a copy of the git tree of Samba to get the tool:
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
Or if you are just interested to run pidl you could fetch it via rsync:
rsync -av rsync.samba.org::ftp/pub/unpacked/samba_4_0_test/pidl .
If both solution are not applicable you can use the copy that is located in the
tool folder but it might be a bit outdated.
Running pidl
============
You have to run the pidl command inside the pidl folder of the wireshark source tree
You have to run the pidl command inside the pidl folder of the wireshark
source tree.
The command to compile file:
<path_to_pidl>pidl --ws-parser -- <idl-file>
^^^
This is *VERY* important
../../../tools/pidl/pidl --includedir . --ws-parser -- <idl-file>
^^^
This is *VERY* important
The command generate 2 files:
packet-dcerpc-<interfacename>.h
packet-dcerpc-<interfacename>.c
For instance with a pidl copy in /usr/local/src/samba/pidl and the atsvc.idl, the
command will be:
For instance, with the atsvc.idl, the command will be:
/usr/local/src/samba/pidl/pidl --ws-parser -- atsvc.idl
../../../tools/pidl/pidl --includedir . --ws-parser -- atsvc.idl
This will generate 2 files:
packet-dcerpc-atsvc.h
@ -89,16 +88,31 @@ Notes about the in-tree pidl
============================
To allow building Wireshark pidl dissectors without having to
*explicitly* access a remote svn repository a copy of pidl is located in tools/pidl
Don't do changes in the tools/pidl directory, do them at the samba tree!
Changes to this tree will be overwritten the next time the sources from
the samba tree are updated, which is basically every time you do an svn
up in the Wireshark toplevel dir.
*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 October 2013, the following idl have issues when generating and compiling:
dfs.idl
srvsvc.idl
wkssvc.cnf
pidl generates incorrect code for these:
dfs.idl
dnsserver.idl
dssetup.idl
eventlog.idl
frsrpc.idl
frstrans.idl
lsa.idl
misc.idl
samr.idl
pidl rejects these with errors:
srvsvc.idl
wkssvc.cnf
mapi/mapi.idl
napi/napi.idl