I don’t know who came up with this idea, but they’ve just wasted about six hours of my Saturday: dynamic firewalling on a VPN network. It appears to block access to tcp ports, on the fly, if there’s nothing listening at the remote end – and then leave them blocked for an extended period of time. So, what happens when you shut down a three-node Oracle cluster for some maintenance? Some users – or other automated processes – try to connect to them while they’re down, and when they come back up again, no-one can connect at all.
This is then followed by a long, frantic attempt to prove that nothing has changed on the servers between reboots, because “this was all working fine before it was rebooted and now it doesn’t work” is rather hard to argue with.
So, thanks large-telco security people. I only had four hours’ sleep last night, and today I didn’t even get to see daylight.
gxine is my Linux media player of choice, partly because it’s nice and light, but mostly because it just works, unlike certain other players which will remain nameless. It has a nice feature that allows only one instance of it to be invoked on any one desktop, so if you play a number of files/streams from external applications, you don’t end up with multiple copies of gxine running.
Unfortunately, for the last few months, this feature has been broken in Debian (and Ubuntu too, so it seems … and now that I look at it, the problem comes from upstream). A bit of a look into the code shows that the reason for this is that at some point, gxine moved its configuration files from $HOME/.gxine/ to $HOME/.config/gxine/ – a bizarre location which just reeks of GNOME or some other overly-pedantic committee – but the server code has been left in the old location, and hence the socket for communication can’t be created.
The following (trivial) patch fixes it:
diff -urN gxine-0.5.903/src/server.c gxine-0.5.903.fixed/src/server.c
--- gxine-0.5.903/src/server.c 2008-08-08 20:29:48.000000000 +1000
+++ gxine-0.5.903.fixed/src/server.c 2008-02-12 04:18:45.000000000 +1100
@@ -40,7 +40,7 @@
-#define SOCKET_FILENAME "%25s/.gxine/socket"
+#define SOCKET_FILENAME "%25s/.config/gxine/socket"
#define BUF_SIZE 1024
static int gxsocket;