On Sun, Feb 06, 2005 at 02:25:05AM +0100, Peter Palfrader wrote:
> The solution then is to make a directory below var/run/ and run the
> daemon as a dedicated user (or daemon).  for instance 
> var/run/anon-proxy/foo.pid

A patch to do this is attached.

Cheers,

-- 
[   Todd J. Troxell                                         ,''`.
      Student, Debian GNU/Linux Developer, SysAdmin, Geek  : :' :
      http://debian.org || http://rapidpacket.com/~xtat    `. `' 
                                                             `-     ]
Only in /home/xtat/dev/anon-proxy/anon-proxy-00.02.39: build-stamp
diff -ru /tmp/anon-proxy-00.02.39/config.guess 
/home/xtat/dev/anon-proxy/anon-proxy-00.02.39/config.guess
--- /tmp/anon-proxy-00.02.39/config.guess       2005-02-06 22:11:14.000000000 
-0500
+++ /home/xtat/dev/anon-proxy/anon-proxy-00.02.39/config.guess  2005-02-06 
23:28:16.000000000 -0500
@@ -3,7 +3,7 @@
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 #   2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
-timestamp='2004-08-13'
+timestamp='2004-11-12'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -319,6 +319,9 @@
     *:OS/390:*:*)
        echo i370-ibm-openedition
        exit 0 ;;
+    *:z/VM:*:*)
+       echo s390-ibm-zvmoe
+       exit 0 ;;
     *:OS400:*:*)
         echo powerpc-ibm-os400
        exit 0 ;;
@@ -342,7 +345,7 @@
     DRS?6000:unix:4.0:6*)
        echo sparc-icl-nx6
        exit 0 ;;
-    DRS?6000:UNIX_SV:4.2*:7*)
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
        case `/usr/bin/uname -p` in
            sparc) echo sparc-icl-nx7 && exit 0 ;;
        esac ;;
@@ -824,6 +827,12 @@
     cris:Linux:*:*)
        echo cris-axis-linux-gnu
        exit 0 ;;
+    crisv32:Linux:*:*)
+       echo crisv32-axis-linux-gnu
+       exit 0 ;;
+    frv:Linux:*:*)
+       echo frv-unknown-linux-gnu
+       exit 0 ;;
     ia64:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit 0 ;;
@@ -1241,7 +1250,10 @@
            A*) echo alpha-dec-vms && exit 0 ;;
            I*) echo ia64-dec-vms && exit 0 ;;
            V*) echo vax-dec-vms && exit 0 ;;
-       esac
+       esac ;;
+    *:XENIX:*:SysV)
+       echo i386-pc-xenix
+       exit 0 ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
Only in /home/xtat/dev/anon-proxy/anon-proxy-00.02.39: config.log
Only in /home/xtat/dev/anon-proxy/anon-proxy-00.02.39: config.status
diff -ru /tmp/anon-proxy-00.02.39/config.sub 
/home/xtat/dev/anon-proxy/anon-proxy-00.02.39/config.sub
--- /tmp/anon-proxy-00.02.39/config.sub 2005-02-06 22:11:14.000000000 -0500
+++ /home/xtat/dev/anon-proxy/anon-proxy-00.02.39/config.sub    2005-02-06 
23:28:15.000000000 -0500
@@ -3,7 +3,7 @@
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
 #   2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
-timestamp='2004-06-24'
+timestamp='2004-11-30'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -267,7 +267,7 @@
        | tahoe | thumb | tic4x | tic80 | tron \
        | v850 | v850e \
        | we32k \
-       | x86 | xscale | xstormy16 | xtensa \
+       | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
        | z8k)
                basic_machine=$basic_machine-unknown
                ;;
@@ -343,8 +343,8 @@
        | tron-* \
        | v850-* | v850e-* | vax-* \
        | we32k-* \
-       | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
-       | xtensa-* \
+       | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+       | xstormy16-* | xtensa-* \
        | ymp-* \
        | z8k-*)
                ;;
@@ -457,6 +457,9 @@
        crds | unos)
                basic_machine=m68k-crds
                ;;
+       crisv32 | crisv32-* | etraxfs*)
+               basic_machine=crisv32-axis
+               ;;
        cris | cris-* | etrax*)
                basic_machine=cris-axis
                ;;
@@ -486,6 +489,10 @@
                basic_machine=m88k-motorola
                os=-sysv3
                ;;
+       djgpp)
+               basic_machine=i586-pc
+               os=-msdosdjgpp
+               ;;
        dpx20 | dpx20-*)
                basic_machine=rs6000-bull
                os=-bosx
@@ -1026,6 +1033,10 @@
                basic_machine=hppa1.1-winbond
                os=-proelf
                ;;
+       xbox)
+               basic_machine=i686-pc
+               os=-mingw32
+               ;;
        xps | xps100)
                basic_machine=xps100-honeywell
                ;;
@@ -1294,6 +1305,9 @@
        -kaos*)
                os=-kaos
                ;;
+       -zvmoe)
+               os=-zvmoe
+               ;;
        -none)
                ;;
        *)
Only in /home/xtat/dev/anon-proxy/anon-proxy-00.02.39/debian: anon-proxy
diff -ru /tmp/anon-proxy-00.02.39/debian/anon-proxy.init 
/home/xtat/dev/anon-proxy/anon-proxy-00.02.39/debian/anon-proxy.init
--- /tmp/anon-proxy-00.02.39/debian/anon-proxy.init     2005-02-06 
22:11:14.000000000 -0500
+++ /home/xtat/dev/anon-proxy/anon-proxy-00.02.39/debian/anon-proxy.init        
2005-02-06 23:42:39.778922424 -0500
@@ -15,6 +15,9 @@
 DAEMON=/usr/sbin/proxytest
 NAME=anon-proxy
 DESC="Anonymising Proxy Service"
+USER=anon-proxy
+GROUP=nogroup
+PIDFILE=/var/run/anon-proxy/proxytest.pid
 
 echo "!!! YOU HAVE TO CONFIGURE THE LOCAL PROXY PORT FIRST! CALL 
\"dpkg-reconfigure anon-proxy\" !!!" && exit 1
 OPTIONS="-j -p #PORT# -n 132.199.134.2:3000 -a -d"
@@ -26,13 +29,14 @@
 case "$1" in
   start)
        echo -n "Starting $DESC: $NAME"
-       start-stop-daemon --start --quiet -c nobody:nogroup --pidfile 
/var/run/$NAME.pid \
-               --exec $DAEMON -- $OPTIONS > /dev/null 2>&1
+       start-stop-daemon --start --quiet -c $USER:$GROUP --pidfile $PIDFILE \
+                --exec $DAEMON -- $OPTIONS  > /dev/null 2>&1 || true
+
        echo "."
        ;;
   stop)
        echo -n "Stopping $DESC: $NAME"
-       /usr/bin/killall -9 proxytest || exit 0
+       start-stop-daemon --quiet --stop --pidfile $PIDFILE  --exec $DAEMON || 
true
        echo "."
        ;;
   #reload)
@@ -54,11 +58,10 @@
        #       just the same as "restart".
        #
        echo -n "Restarting $DESC: $NAME"
-       start-stop-daemon --stop --quiet --pidfile \
-               /var/run/$NAME.pid --exec $DAEMON
+       start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON || 
true
        sleep 1
-       start-stop-daemon --start --quiet --pidfile \
-               /var/run/$NAME.pid --exec $DAEMON
+       start-stop-daemon --start --quiet -c $USER:$GROUP --pidfile $PIDFILE \
+               --exec $DAEMON -- $OPTIONS  > /dev/null 2>&1 || true
        echo "."
        ;;
   *)
Only in /home/xtat/dev/anon-proxy/anon-proxy-00.02.39/debian: 
anon-proxy.postrm.debhelper
Only in /home/xtat/dev/anon-proxy/anon-proxy-00.02.39/debian: 
anon-proxy.substvars
diff -ru /tmp/anon-proxy-00.02.39/debian/dirs 
/home/xtat/dev/anon-proxy/anon-proxy-00.02.39/debian/dirs
--- /tmp/anon-proxy-00.02.39/debian/dirs        2005-02-06 22:11:15.000000000 
-0500
+++ /home/xtat/dev/anon-proxy/anon-proxy-00.02.39/debian/dirs   2005-02-06 
18:59:58.000000000 -0500
@@ -2,3 +2,4 @@
 etc/init.d
 usr/share/doc
 usr/share/man/man8
+var/run/anon-proxy
Only in /home/xtat/dev/anon-proxy/anon-proxy-00.02.39/debian: files
diff -ru /tmp/anon-proxy-00.02.39/debian/postinst 
/home/xtat/dev/anon-proxy/anon-proxy-00.02.39/debian/postinst
--- /tmp/anon-proxy-00.02.39/debian/postinst    2005-02-06 22:11:15.000000000 
-0500
+++ /home/xtat/dev/anon-proxy/anon-proxy-00.02.39/debian/postinst       
2005-02-06 23:28:04.000000000 -0500
@@ -37,6 +37,11 @@
     db_get anon-proxy/remember && START=$RET
     db_stop
 
+    if ! getent passwd anon-proxy > /dev/null; then
+      adduser --quiet --system --no-create-home \
+        --home /var/run/anon-proxy anon-proxy || true
+    fi
+      
     cp /etc/init.d/anon-proxy /etc/init.d/anon-proxy.old 
     sed -e "s/^.*dpkg-reconfigure.*$//" -e "s/\#PORT\#/$PORT/" \
         /etc/init.d/anon-proxy.old > /etc/init.d/anon-proxy
@@ -58,11 +63,15 @@
     fi
     rm -f $EE.tmp
 
+    if dpkg --compare-versions "$2" lt "0.02.39-4"; then
+       if [ -d /var/run/anon-proxy ]; then
+               chown anon-proxy /var/run/anon-proxy || true
+       fi
+    fi
 
     update-rc.d anon-proxy defaults 20 >/dev/null 2>&1
     if [ "$START" = "true" ] ; then
-       /etc/init.d/anon-proxy stop 
-       /etc/init.d/anon-proxy start 
+       /etc/init.d/anon-proxy restart
     fi;
     ;;
 
diff -ru /tmp/anon-proxy-00.02.39/debian/postrm 
/home/xtat/dev/anon-proxy/anon-proxy-00.02.39/debian/postrm
--- /tmp/anon-proxy-00.02.39/debian/postrm      2005-02-06 22:11:15.000000000 
-0500
+++ /home/xtat/dev/anon-proxy/anon-proxy-00.02.39/debian/postrm 2005-02-06 
22:27:09.000000000 -0500
@@ -19,15 +19,20 @@
 
 
 case "$1" in
-       
purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+       purge)
        update-rc.d -f anon-proxy remove >/dev/null 2>&1
-       if [ "$1" = "purge" -a -e /usr/share/debconf/confmodule ]; then
+       if [ -e /usr/share/debconf/confmodule ]; then
        # Source debconf library.
        . /usr/share/debconf/confmodule
        # Remove my changes to the db.
        db_purge
        fi
-                           
+
+       deluser --remove-home anon-proxy > /dev/null 2>&1 || true
+
+       ;;
+
+       remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
                            
         ;;
 
Only in /home/xtat/dev/anon-proxy/anon-proxy-00.02.39: .deps
Only in /home/xtat/dev/anon-proxy/anon-proxy-00.02.39: Makefile
diff -ru /tmp/anon-proxy-00.02.39/proxytest.cpp 
/home/xtat/dev/anon-proxy/anon-proxy-00.02.39/proxytest.cpp
--- /tmp/anon-proxy-00.02.39/proxytest.cpp      2003-11-28 04:28:55.000000000 
-0500
+++ /home/xtat/dev/anon-proxy/anon-proxy-00.02.39/proxytest.cpp 2005-02-06 
21:38:51.000000000 -0500
@@ -62,6 +62,9 @@
        #include "CAFirstMixNewProtocol.hpp"
        #include "CALastMixNewProtocol.hpp"
 #endif
+
+#define PIDFILE "/var/run/anon-proxy/proxytest.pid"
+
 //#include "CAPayment.hpp"
 //#ifdef _WIN32
 //HANDLE hEventThreadEnde;
@@ -367,7 +370,8 @@
 //             UINT16 timestamp;
 //             currentTimestamp((UINT8*)&timestamp);
                pMix=NULL;
-
+               // PID File
+               FILE *pf;
                int i;
                SINT32 maxFiles;
                //Setup Routines
@@ -657,6 +661,11 @@
                                        pid=fork();
                                        if(pid!=0)
                                                exit(0);
+                                       pf = fopen(PIDFILE, "w");
+                                       if (pf == NULL)
+                                               fprintf(stderr, "Unable to 
write pidfile.\n");
+                                       fprintf(pf, "%d\n", getpid());
+                                       fclose(pf);
                                        setsid();
                                        #ifndef DO_TRACE
                                        chdir("/");

Attachment: signature.asc
Description: Digital signature

Reply via email to