Okay, today I felt a bit tired, probably because of all the flames, the problems, the solutions and so on. And when one is tired, the most effective thing is to relax hacking a bit on something new. My usual “something new” is atmosphere project, for network monitoring in KDE, but today I wanted to spend more time on something really really new that could help. What it is? UPnP
Universal Plug’n’Play, whilst being probably an ass for Business and “need-to-be-secure” LANs, it’s usually useful to manage home routers. Also, in a controller environment, having the ability of adding/removing ports forwarding on the fly is probably simpler than having to predispose all the forwarding from the start.
For Linux there is an official SDK by Intel… but I had to patch it quite a bit to have it working on FreeBSD (ports carries an old version of it).
Then I started reading doc and hacking until I was able to enable the forwarding of a port on the router… and this was the most difficult part of all it.
What I want to do now? Well my first thought was to add UPnP support to rTorrent, so that I can drop the port range from its configuration, but I’m currently on break as I have a bit of an headache right now.
Another thing I’m planning for is creating a libkupnp project to create a simple UPnP library for KDE applications, to use in ATMOSphere, but to use also on Konversation, so that I don’t need to specify a port range there, too.
Being able to use UPnP makes probably simpler the experience of a newbie user using Linux.. think of programs that automatically configure to work behind a NAT… this is sometimes the showstopper for new users, and the reason why some P2P freak still suggest users to take USB ADSL modems…
Another interesting thing that I’m not sure I actually want to work on, tho, it’s a daemon that tells the router which port to open for SSH/IMAP/whatever, and maybe tries to register the ddns with the router itself…
Oh well, I think I’ll look forward more about this in the next days, maybe with the new pair of glasses.