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.

Cheers, Nir


DD-WRT as well as Tomato firmware support NAT-PMP for a long time.

Well why didn't you tell me this earlier?!?

Zelmo Swift's picture

I use Airport Extreme, and I seem to be connecting to a lot more users since checking the NAT-PMP box. My uploads have at least doubled. Success!


MELERIX's picture

please can you add an option in Soulseek, to disable Windows idle/sleep status mode, when Soulseek is running ?

Nir, I need your permission to use the SoulSeek bird. I am the sprite/pixel artist for a game being developed in Toronto soon to be showcased at PAX. I have complete freedom when picking what goes on walls, t-shirts, graffiti and the like in the game. Besides my own art pieces, the slsk bird is the only other thing I'd like to include hidden in posters and such. 2 slsk chatters will appear as characters, many more as the game develops. I can give you more details on the project if you'd like.

Let me know your thoughts. Thanks for slsk.

That's awesome! Please feel free to use the Soulseek bird in your game. Is there anywhere I can read about it? Or at least, how do I know when it's out :D