On Tue, May 09, 2000 at 06:51:12PM +0200, Gabriel, Akos /ECF wrote:
> My question: if I have a HTTP server on an alternative port (let's say 5000)
> how could I tell Ethereal to acknowledge the packets as HTTP (as with port
> 80) ?
Unfortunately, the only way to do that at present is to add to the
"proto_reg_handoff_http()" routine in "packet-http.c" the line
dissector_add("tcp.port", 5000, dissect_http);
We may, at some point, want to provide a way in which one can, from the
user interface, force dissectors to be added to tables. One
possibility, which I've mentioned in the past, would involve:
1) adding a mechanism by which dissectors can register settable
options with the core of Ethereal, specifying a name, a
description, and a type;
2) having such options settable from:
the command line, with, say, a "-o" flag, e.g.
"-o http.ports=5000";
the GUI, e.g. with all protocols that have registered
options getting a tab in a "protocol properties"
notebook, and with "http.ports" (which I'd make a
string, so that it could contain a comma-separated list
of ports) being displayed as
Additional HTTP ports [ <text entry widget> ]
perhaps also the preferences file, with a line such as
http.ports: 5000
This could also subsume the "-D" flag and the "Decode IPv4 TOS field as
DiffServ field" item in the "Display Options" dialog box - it might
become a Boolean option "ip.diffserv".
The preferences file would then have to be read *after* all dissectors'
registration routine was called, so that it knew about all the settable
options, and we'd also have to call the registration routines before
even parsing the command-line options, unless we save all "-o" options
and process them after registering the dissectors; whenever an option is
set (either when the preferences file is read, the command line is
parsed, or whatever dialog box lets them be edited has the "OK" or
"Apply" button clicked), a routine associated with the option would be
called, and passed the new value for the option. In the case of, say,
"http:ports", the HTTP dissector would un-register the ports it'd
previously registered, and register the new ones.