Kickin’ ass and taking names…
I’ve been neglecting MumbleDog the last couple of days: there are things that I should have been working on (like our idler auto-move feature I hope to launch soon), but the open source work on Mumble proper has simply been more fun. I’ve learned a huge amount lately too.
One of our providers is rolling out IPv6, so we hope to get that ready to go with our service shortly. That, unfortunately meant one of two things: either fix multi-homing on FreeBSD, or figure out how to run a solid Debian setup. Since the latter sounds like a lot of work, and that I probably wouldn’t be too sure of myself (I like Debian, I’m just completely lost when something breaks) I reasoned that it’s probably to my advantage just to man up and do the former. It was a pretty daunting task at first glance - Slicer is a much much more proficient programmer than I am, and I seem to recall it took him a bit to fix the issue on Linux.
After peeking around at various places that do the same thing in FreeBSD - things like DHCP servers and so on, it looked pretty much like I could just do the same thing as we do on Linux, except instead of stuffing an IP_PKTINFO structure into the CMSG, apparently FreeBSD just lets you stuff a sockaddr_in in there instead. A quick messy hack later, and it worked on FreeBSD. IPv6 was easy enough too - IPV6_PKTINFO is a required part of IPv6, so it worked on FreeBSD too. Some quick preprocessor hackery, and then a few commits to clean things up and I think it looks pretty good.
I’ve done some other stuff too - I learned how the positional audio stuff works, downloaded CheatEngine and updated the Counter Strike: Source plugin to build 4687 after not too many hours of hacking. It took me a while longer to figure out the World of Warcraft plugin, but I believe I’ve got that licked too (WoW plugin should be updated to 14545 soon), thanks in no small part to the original author’s patience explaining a few things to me.
I cleaned up and refactored a couple of my other pull requests that have been outstanding a while, a few things that I would really like to see implemented but thus far I haven’t seen through to the end. I have to add database stuff to two of them (at the moment my “channel last used” patch resets the clocks if you restart the server, and it’s impolite for us to not remember users whose text messages we’re ignoring), but I think my changes to Zuko’s user editor stuff is about ready to go… which I’m really excited about because it’s a tiny step in the right direction for usability.
I think I’m going to take a break for the night and squeeze in some actual gaming (Raptr is reporting a whole bunch, but most of it is hacking and not gaming), and I’m planning on tomorrow (barring a whole mess of feedback on my pull requests) actually working on MumbleDog stuff rather than on the open source things. I really want to start putting new users on our new architecture, and moving people over as they wish - but that can’t happen until it’s at least usable.