Include <time.h> to declare "gmtime()".
[obnox/wireshark/wip.git] / TODO
1 $Id: TODO,v 1.6 1999/12/26 23:52:54 guy Exp $
2
3 Things to do:
4 =============
5
6 *) Protocol dispatchers, allowing run-time setting of protocol "chaining"
7 (i.e., UDP port X calls dissector Y)
8
9 *) Loadable modules, closely related to the previous item.  (These are
10 in the current version in CVS.)
11
12 *) Work on packet capturing in wiretap
13
14 *) Either as part of the previous item, or as a capture-filter
15 translator that generates "libpcap"-style capture filter expressions,
16 provide a capture filter syntax similar to the display filter syntax. 
17 (The syntax differences get in the way of users; the fact that you have
18 to construct some filters by hand, e.g.  looking only for initial SYN
19 packets for TCP connections by doing bit-testing of the flags in a TCP
20 header has been a pain for some users; and people have asked for
21 capabilities that aren't conveniently available, or aren't available at
22 all, in "libpcap"-style capture filters:
23
24         the ability to filter on characteristics of IPX packets;
25
26         the ability to select, for example, TCP packets with port
27         numbers *greater than* a particular value, which in "libpcap"
28         filters you have to do by explicitly testing subfields of the
29         TCP header rather than doing "tcp.port > 1000";
30
31         etc.)
32
33 *) I just discovered that sshd sets the SSH_CLIENT variable to source IP,
34 sort port, and destination port. That coupled with a destination IP
35 would give us enough information to carry out remote protocol capturing,
36 tcpdump over ssh:
37
38         ssh remotehost tcpdump -s 2000 -w - filter,
39
40 where "filter" filters out our own ssh packets (using the infromation
41 from $SSH_CLIENT). Any takers?
42
43 *) Of course, packet defragmentating. IP, TCP, UDP, etc. need to be
44 reassembled and re-analyzed.
45
46 *) I'd like to someday re-write the display filter routines to have a more
47 powerful syntax.
48
49 *) More on-line help, and neato things with the protocol tree and
50 right-clicks.
51
52 *) A GtkClist replacement, with dynamic columns, allowing columns to be
53 added, removed, or moved without having to exit and restart Ethereal.
54
55 *) A GUI capture/display filter creator.
56
57 *) Run-time configuration of tunnelling protocols -- display tunnelled
58 protocol as data or as a full-fledged protocol (which subtree do we put
59 it under?)
60
61 *) Run-time configuration of data shown in capture statistics window.
62
63 *) A GtkWidget for authors in the About box. We've got a lot of authors!
64 We've currently banished the list of authors to the AUTHORS file and the
65 man page, which may be the right solution here.
66
67 *) Finish moving GTK-dependent code into gtk/ subdirectory.
68
69 *) Provide alternative user interfaces, e.g. other toolkits (Qt/KDE,
70 full GNOME, native Windows, etc.) and text-mode "curses".
71
72 *) Perhaps provide a "line-mode" capture program, i.e. one that, like
73 "tcpdump" and "snoop", captures to a file without displaying anything
74 other than, perhaps a count of packets captured, or captures and prints
75 packet summary or detail data to the standard output, or reads a capture
76 file and prints to the standard output summary or detail data.
77
78 *) Display filters: support FT_STRING filters
79
80 *) Display filters: allow filtering on "enumerated" data types by name,
81 i.e. if a field has a "value_string" array associated with it, allow
82 users to specify the string associated with a value.
83
84 *) Display filters: add regexes to strings and byte ranges
85
86 *) Krb dissector - standard krb4 - from tcpdump (nneul)
87
88 *) Krb5 dissector - from scratch, need to use ASN.1 code (nneul)
89
90 *) IRC dissector
91
92 *) Make lines in GTK Tree (proto_tree GUI) user-selectable