#! /usr/bin/perl # # For now, this is a CGI using Perl. # use warnings; use strict; ## User configurable settings: # Which server to add to? Unless you have multiple virtual servers, # this is always 1 my $name = 'pseudo'; my $pw = 'passe'; my $email = 'mail@example.net'; our $serverid = 1; ## End of user configurable data ## ## Really. You shouldn't touch anything below this point. # If we're being run as a CGI in suexec, $HOME doesn't exist. Fake it. my $home = (getpwuid($<))[7]; # This needs to be done before "use Net::DBus" if (open(F, "$home/murmur/.dbus.sh")) { while() { chomp(); if ($_ =~ /^(.+?)\='(.+)';$/) { $ENV{$1}=$2; } } close(F); } use Net::DNS; use Net::DBus; my $bus; my $service; # First try the system bus eval { $bus=Net::DBus->system(); $service = $bus->get_service("net.sourceforge.mumble.murmur"); }; # If that failed, the session bus if (! $service) { eval { $bus = Net::DBus->session(); $service = $bus->get_service("net.sourceforge.mumble.murmur"); } } die "Murmur service not found" if (! $service); # Fetch handle to remote object my $object = $service->get_object("/$serverid"); my $res; $res = $object->registerPlayer($name); print '..'; if (($res != 0) && ($res != "0")) { my @array = ($res, $name, $email, $pw); $object->updateRegistration(\@array); print "Succeeded. Thank you for registering."; } else { print "Failed Username rejected by server."; }