summaryrefslogtreecommitdiffstats
path: root/srs
diff options
context:
space:
mode:
Diffstat (limited to 'srs')
-rwxr-xr-xsrs27
1 files changed, 17 insertions, 10 deletions
diff --git a/srs b/srs
index d7f6dfd..e8a2b32 100755
--- a/srs
+++ b/srs
@@ -4,18 +4,25 @@ use warnings;
use FindBin;
use lib $FindBin::Bin;
-use Spline::Socketmap;
-use Spline::Srs;
+use English;
+
+use Spline::Socketmap::Srs;
-$Spline::Socketmap::timeout = 10;
-$Spline::Socketmap::handler = sub {
- my ($map, $key) = @_;
- Spline::Srs::handle($map, $key);
+my $defaults = {
+ syslog_ident => 'srs',
+ log_level => 1,
};
-Spline::Socketmap->run({
- syslog_ident => 'srs',
- conf_file => ($< == 0 ? '' : $ENV{"HOME"}) . '/etc/srs.conf',
-});
+# Load config file by default if it exists
+my $config_file = '/etc/srs.conf';
+$config_file = $ENV{HOME} . $config_file if $UID != 0;
+$defaults->{conf_file} = $config_file if -e $config_file;
+
+# Default to current user (if not root)
+$defaults->{user} = $EUID if $EUID != 0;
+$defaults->{group} = $EGID if $EGID != 0;
+
+my $server = Spline::Socketmap::Srs->new();
+$server->run($defaults);
# vim: set et ts=4: