
=head1 NAME

idl2wrs - CORBA IDL to Wireshark Plugin Generator

=head1 SYNOPSIS

B<idl2wrs> E<lt>filenameE<gt>

=head1 DESCRIPTION

B<idl2wrs> is a program that takes a user specified B<CORBA IDL>
file and generates B<"C"> source code for a B<Wireshark> "plugin".

This resulting file can be compiled as a B<Wireshark> plugin, and
used to monitor B<GIOP/IIOP> traffic that is using this IDL.

B<idl2wrs> is actually a shell script wrapper for two B<Python> programs.
These programs are:

=over 4

=item * B<wireshark_be.py>

Contains the main IDL Visitor Class

=item * B<wireshark_gen.py>

Contains the Source Code Generator Class

=back

B<idl2wrs> supports heuristic dissection of GIOP/IIOP traffic,
and some experimental code for explicit dissection, based on
Object Key <-> Repository Id mapping.
However, code for heuristic based plugins is
generated by default, and users should consider this the preferred
method unless you have some namespace collisions.


=head1 OPTIONS

Currently there are no options. B<idl2wrs> can be invoked as follows.

1.  To write the C code to stdout.

    idl2wrs  <your_file.idl>

    eg: idl2wrs echo.idl


2. To write to a file, just redirect the output.

    idl2wrs echo.idl > packet-test.c




=head1 ENVIRONMENT

B<idl2wrs> will look for B<wireshark_be.py> and B<wireshark_gen.py> in
B<$PYTHONPATH/site-packages/> and if not found, will try the current
directory B<./>

The B<-p> option passed to omniidl (inside B<idl2wrs>) indicates where
B<wireshark_be.py> and B<wireshark_gen.py> will be searched.  This may
need tweaking if you place these files somewhere else.

If it complains about being unable to find some modules (eg tempfile.py),
you may want to check if PYTHONPATH is set correctly.

eg:  PYTHONPATH=/usr/lib/python1.5/


=head1 SEE ALSO

wireshark(1), tshark(1)


=head1 NOTES

B<idl2wrs> (including B<wireshark_be.py> and B<wireshark_gen.py>) are part of
the B<Wireshark> distribution.  The latest version of B<Wireshark> can
be found at L<https://www.wireshark.org>.

B<idl2wrs> uses B<omniidl>, an IDL parser, and can be found at
L<http://omniorb.sourceforge.net/>

=head1 TODO

Some of the more important things to do are:

=over 4

=item *
Improve Explicit dissection code.

=item *
Improve command line options.

=item *
Improve decode algorithm when we have operation name collision.

=back

=head1 AUTHORS

  Original Author
  -------- ------
  Frank Singleton             <frank.singleton[AT]ericsson.com>


  Contributors
  ------------

