Ethereal Development
ETHEREAL HAS CHANGED ITS NAME
Due to trademark issues the Ethereal software project has changed its name to Wireshark. Development under the name Ethereal has ceased.
The anonymous SVN server linked below (anonsvn.ethereal.com) has been unreachable since fall 2006.
The Ethereal network protocol analyzer has changed its name to Wireshark.
This is the development section of the Ethereal wiki.
Beginner?
If you are new to Ethereal development, you should look at the following places (listed in order of importance):
Ethereal development webpage the first place to look at ...
doc/README.developer the best manual about Ethereal development so far, you will also find that one in the doc directory of the Ethereal sources - please read and thoroughly understand all of the "Portability" and "Robustness" sections before writing any Ethereal code!
Ethereal documentation webpage of which the Developer Guide is currently invaluable for setting up a Win32 development environment
you may find additional information in the README.xxx file suitable for your target platform (e.g. README.win32 for windows) in the root directory of the Ethereal sources
... and of course you should have a look at the Ethereal sources itself!
General
Ethereal documentation webpage: the latest version of the Ethereal User's Guide and the Ethereal Developer's Guide in different formats (PDF, HTML, ...)
/Roadmap: Roadmap for further Ethereal releases
/Wishlist: Wish list for internal features and architectural changes (as opposed to user-visible features WishList)
/Translations: Why it's not a good idea to translate Ethereal into spanish/german/... language
Development
SendingFilesToEthereal: Tips on sending files to the Ethereal mailing lists
/SecureProgramming How to write more secure code, e.g. replace insecure ANSI-C calls by more secure ones
/CommonProblems: Some common problems while developing Ethereal
/DeprecatedFunctions: Some features now deprecated for new code
/Tips: Some selected wisdom to ease development/debugging
/MSVC7: Efforts to compile Ethereal under Microsoft VC7/.NET (or however it's really called)
/FilenameEncoding: the various Unicode and code page encodings of filenames in GLib
Projects
/DropWin32GTK1: Thoughts about dropping GTK1 support on Win32
/PrivilegeSeparation: A proposal to add privilege separation to Ethereal
Mate: Meta Analysis and Tracing Engine
/Security: Efforts to make Ethereal more secure
/Examples: Example files, which are used by the various installers as default files
/LibpcapFileFormat A libpcap file format description
EMEMification A Janitor project to audit and fix memory management and prevent memleaks.
/Canary Finding and fixing memory over- and under-runs with canaries
Removeold-styleASN.1code A project to remove old-style ASN.1 code
/ExpertInfo: a better "user display" of network misbehaviour
/PacketInput: how to get packet data into Ethereal in some "unusual" ways
/OptimizePacketList: the packet list isn't optimized for the way we use it, could make a huge difference for large capture files
Lua: Extending Ethereal with the extensible extension language
Tools
Asn2eth: How to create a dissector using the ASN1 compiler
/EtherealEnvCmd: A batch script to set environment variables useful for Windows development
FuzzTesting: tools to stress test protocol dissectors
Pidl: A perl-based DCE/RPC IDL compiler (and Ethereal dissector generator) developed for Samba 4
