configure:
 - use provided adns if not exists!
   check .a/.so availability
   check .h availability
 - disable gtk if not available
 - disable ncurses if not available
 - fail if no frontends available
 - various backends - but no configure check (at least not for file-based)
 - backend order can be specified. each is initialized on startup. most important/best first.

API unified and simple:
 - connections referred to by handle
 - redraw all when connection added/removed
 - multiple sets of connnections, based on filters
 - gui can display multiple sets at same time (different windows)
   (rethink ncurses code)
 - kernel interface
   based on ip tables, view each connection in a table, notify client on
    1. packet receive
    2. delay
    3. whichever comes first
    4. new connection, del connection
    5. updated (as defined by some rule)
       - whenever received bytes updated > n
       - ...
       
---

multiple windows - open, closed recently, closed long time ago, etc. custom filters!

sort source and destination: if considered local! (otherwise total IN OUT is irrelevant!)
merge common code in gconnmon and connmon!
-

[distribution] add kernel stuff to debian package, or make separate package
[distribution]add license header to all files
[distribution]autoconf, automake support
[distribution] include adns sources in project. compile only when necessary?

[documentation] document libconnmon driver arguments (netfilter: file)
[documentation]document libconnmon filter expressions
[documentation]document global public variables and functions everywhere

[filtering] clean up and fix error reporting in filter code
[filtering] implement filtering for HOST etc
[filtering] implement unary matches in filter: unknown, udp, tcp, icmp, true, false
[filtering]filtering and sorting (example: tcp then udp ..)
[filtering] include if port = x and protocol = x ....

[console gui] clean up and fix new coloring code. what about default/background color?
[console gui]support controllable command line options in gui, plus default pane position.
[console gui] --show-port-number - If enabled, show as:  hostname:137(netbios-ns). Maybe --port-style?
[console gui]left-right scrollable (to show more of host names)
[console gui] different view modes (a connection takes two lines, like iptraf)
[console gui]use scrolling regions etc for improved refresh speed
[console gui]multiple layout schemes
[console gui]in GUI, switch between other connection information such as received/sent packages/bytes, timeout, ASSURED/other status.
[console gui]display transfer rate as Kb/s, not K/s. (because Kp/s)
[console gui] display rates in b/s, K/s, M/s, G/s as float? configurable too? maybe --rate-style?

[gtk gui] add better rate support (<-, ->, .. correctly aligned)
[gtk gui]add better totals support (with rates, correctly aligned)

[libhpnl] Better error reporting for arguments in hnl
[libhpnl] better error reporting when reading hosts and ports files
[libhpnl] initialize_from_spec should clean old values!
[libhpnl] support /etc/host.conf; hnl_new_using_host_conf()
[libhpnl] possible new hnl service: nis?
[libhpnl] hnl_ghba - take argument specifying number of connections!
[libhpnl] hnl_ghba - make use of xread, xwrite.

[libconnmon] autodetection of best driver?
[libconnmon] use memory-mapped I/O on /proc/net/ip_conntrack to speed up things? any speed up at all? possible at all?
[libconnmon] Nicer error checking in libconnmon
[libconnmon] Better handling of EXPECTING?
[libconnmon] linux driver - complete with UDP info?

[common] move curses-util.c into common?
[common] implement xread, xwrite. in early EOF, return 0?

transfer rates based on first transfer, or maybe 5 mins ago (more than 0.3s at least)
-a, --average-delay=TIME  -- Time during which transfer rate is weighted.
on poll-delay timeout: if (cur_time - oldavg_time >= avg_delay) oldavg_data = cur_data
on recalculate: use elapsed between cur_{time,data} and oldavg_{time,data}

bug test with gccchecker.

why does not ip_conntrack show all icmp "connections"?

gnome/kde connmon
