Spring cleaning, Mac routers and Happy accidents
A funny thing happened a few days ago when I was going through my apartment, filling trash-bag-after-bagfuls of junk I've accumulated over the past decade. I came across an old D-Link DIR-600 router I had purchased for my mother-in-law several years ago and then promptly forgot to bring along to the other side of the bay. Later on, I tried giving it to a neighbor in need, fully upgraded to the latest firmware, but the upgrade rendered it virtually unusable, unable to hold a TCP connection for longer than about half a minute at a time. Barely thinking twice about it, I moved to throw it away. Except, well, it's just so cute.
Perhaps the problem's been fixed since then with yet another update, I thought! No such luck. D-Link never saw fit to relieve the hapless customer of the uselessness of their purchase. Stupid firmware, stupid firmware, I went on. If only there was firmware not quite as stupid. And then I remembered DD-WRT, a custom-made firmware I once had the fortune of having ruin a different router with an irreversible flash. What did I have to lose? For many, DD-WRT has since been supplanted by a different, more open-y project, appropriately dubbed OpenWRT. A bit of a marvel (and I guess, not unlike DD-WRT), it is fashioned as a Linux distribution of sorts. As most routers use Linux as their software and very similar hardware, OpenWRT can be installed on a staggering array of routers of dozens of makes and hundreds of models (Not my main router though, a rather fantastic D-Link DIR-655.)
It worked so well, I am now using the DIR-600 with OpenWRT as my main router. But the nicest surprise, sifting through many of the firmware's options via the web interface, was support for the otherwise Mac-exclusive NAT-PMP. I've been wanting to add NAT-PMP support to SoulseekQt for a while now, it being the Mac equivalent of UPnP which SoulseekQt already uses for the oh-so-important task of automatically forwarding its listening ports, thereby quadrupling or quintupling the percentage of Soulseek users connections can be formed with. But I balked at the notion of paying a minimum of $100 for a Mac router, something I would have no use for other than to test the new feature. Long story made a bit longer, it seems to be working here, and now you Mac users out there can try it out and tell me if it works for you:
Just be sure to check 'Use NAT-PMP port mapping' under Options->General. A successful port forward should result in something like this in the Diagnostics->Port Forwarding tab:
[Thu May 2 20:37:26 2013] Successfully added NAT-PMP mapping for port 4720
[Thu May 2 20:37:26 2013] Successfully added NAT-PMP mapping for port 4721
(Be sure to check Options->UI->Show Diagnostics if the diagnostics tab is not visible, then restart the client and ideally uncheck the option again when you're done.)
If NAT-PMP appears successful, and given that your ISP isn't making these ports inaccessible some other way, you can use Options->Login->Check Ports to see if they're actually visible to the outside Internet world.