netinterface
  use qca syncthread, match keystore in thread safety concerns
  "Interface ids obtained through NetInterfaceManager are guaranteed to be valid until the event loop resumes, or until the next call to interfaces() or interfaceForAddress()." ...  the code seems to be lying about interfaceForAddress.

netnames
  support faking srv (or perhaps any record) somehow, through config or code
  support multithreading
    put the netnames backend into an alternate thread (this thread should
      probably be some generic irisnet thing that other modules can use too)
    netnames front-end api communicates with the backend, so that one backend
      is shared by all threads
  NameResolver/ServiceBrowser/ServiceResolver should have isActive?
  report ServiceBrowser error codes
  report ServiceResolver error codes
  ServiceInstance attribs arg of constructor should be optional?
  ServiceInstance should cache the name() answer
  ServiceProvider should support error codes and passing many ip addresses
  ServiceResolver should give the hostnames and the ip addresses.  hostnames
    may be needed for SASL
  consider reverse dns (for both internet and multicast)

dns/bonjour/idn/dns-sd
tcp/udp/rtp, bytestream abstraction
protocol http/socks/ice/ocsp/crl
lineproto, httpproto, xmlproto, binaryproto?, socksishproto?
auth/cert/pgp parameter abstraction
network interface detection
simplified keystore handling?
stringprep
built-in simplified SASL digest-md5, plain?, anonymous?
layer tracking & flow control
both sync and async api
threading capable
proxies http/httpsconnect/httppoll/socks4,5/fakessl?
dns/net/proxy/auth engine plugins?
upnp/bonjour nat dodging / port opening?
connector

questions:
  1) where does it end?
  2) how would a pgp-auth for xmpp-core work?

goal:
  support xmpp-core for tcp/httpbind
  xmpp-core should be "just another protocol"

