summaryrefslogtreecommitdiffstats
path: root/srs
diff options
context:
space:
mode:
authorAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2016-06-21 02:42:25 +0200
committerAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2016-06-21 02:42:25 +0200
commit339312c92a71a0943ae34aab27b1026bb3479d0d (patch)
treecea49efa50ec436b517a25dc1d1ff90f575e2f18 /srs
parentd9ba41806745b830fd229b4cbcd8b5386203af27 (diff)
downloadsrs-339312c92a71a0943ae34aab27b1026bb3479d0d.tar.gz
srs-339312c92a71a0943ae34aab27b1026bb3479d0d.tar.bz2
srs-339312c92a71a0943ae34aab27b1026bb3479d0d.zip
Make subclasses of Net::Server
Spline::Socketmap is now a subclasses of Net::Server and Spline::Socketmap::Srs is a subclass of Spline::Socketmap. This way the Srs stuff is completly independent of the postfix-socketmap protocol handling. The config is located in the instances and configurable with Net::Server command line options or config file.
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: