I did a bunch of work on the WiShield libs today and pushed them to the user contrib branch on GiHub. Its all there: AP scanning, DNS, DHCP and a few new examples (WiServer + DNS, TCP/SocketApp + DNS, and the sketch that I posted about on this thread which uses scanning/DHCP/DNS/TCP to sniff out and send a TCP packet through open APs). Also, most users won't need to mess with app-config.h and uip-config.h any longer - most of the uip-config settings can be set in app-config (one stop shopping just makes it easier).
So the samples work but the stack seems awful wobbly. I tried many different samples and versions of the libs; the latest master 1.3.0 seems just as wobbly so I don't think I have negatively affected things. DNS and DHCP definitely work on their own and together (I saw it I swear) and the new samples should get you started.
Oh yeah, also got spidermonkey04's "too large of an incoming packet" fix in there. Did not apply any of the latest tweaks to WiServer other than to get it compatible with the other changes (I'll let shard7 decide what fix goes in). The SimpleClientDNS example clearly shows that DNS and WiServer work together!
I am unhappy with DHCP. I have not figured out how to connect, get DHCP, apply DHCP return and merrily go on my way. I am having to re-init the WiShield after getting the DHCP return and before going on my merry way. Would love another set of eyes to look this one over - I have a feeling I am missing something simple...

Would also appreciate anyone who could look into the overall stack wobbliness. I have noticed that things seem to work just about every other time (in all versions of the stack). I am thinking stack or ZeroG not getting init'ed/re-init'ed properly? Also seems to be related to stack timeouts; almost seems like we get into a state that will end up being a timeout and we need to wait for the actual timeout to occur for things to be ok; if we reset before achieving timeout things get funky??? Dunno just wondering how hitting a timeout seems to make things ok for the next iteration??? Good reset-um code in the timeout handler?
Bleah bleah bleah. Check it out and let me know.
Link to GitHub AsyncLabs user contrib branchGreg