- updated to 2.3.3
[packages/jabberd.git] / jabberd-daemonize.patch
1 diff -urNp jabberd-2.3.3.orig/tools/jabberd.in jabberd-2.3.3/tools/jabberd.in
2 --- jabberd-2.3.3.orig/tools/jabberd.in 2015-07-07 15:52:31.000000000 +0000
3 +++ jabberd-2.3.3/tools/jabberd.in      2015-07-07 15:53:48.720382871 +0000
4 @@ -14,6 +14,7 @@ use IPC::Open3;
5  use IO::Select;
6  use POSIX;
7  use POSIX qw(setsid);
8 +use Proc::Daemon;
9  
10  
11  #-----------------------------------------------------------------------------
12 @@ -47,7 +48,24 @@ if (exists($opts{c}))
13      &usage() if (!defined($opts{c}) || ($opts{c} eq ""));
14  }
15  
16 -$debug = 1 if exists($opts{D});
17 +if (exists($opts{D})) {
18 +       $debug = 1
19 +}
20 +else {
21 +       Proc::Daemon::Init;
22 +       open(PID,">/var/run/jabberd.pid");
23 +       print PID "$$\n";
24 +       close(PID);
25 +}
26 +
27 +if ($< == 0) {
28 +        my ($uid, $gid) = (getpwnam("jabber"))[2,3];
29 +        $)="$gid $gid" or die "Cannot set EGID and groups";
30 +        $(=$gid or die "Cannot set GID";;
31 +        $>=$uid or die "Cannot set EUID";
32 +        $<=$> or die "Cannot set UID";;
33 +}
34 +
35  $daemon = 1 if exists($opts{b});
36  
37  #-----------------------------------------------------------------------------