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"