Changeset 849

Show
Ignore:
Timestamp:
10/14/07 07:21:23 (1 year ago)
Author:
raphael
Message:

Generate database keys at setup time (fix for Debian packaging)
Added ispCP config (/etc/ispcp) and database backup system
LSB compatiblity for installing/removing init scripts
Added BACKUP_DOMAINS yes/no switch to enable/disable customer backups
Made ispcp_network and ispcp_daemon more or less LSB compatible
Fixed #688: updated ispcp_network in all distros (including fedora)
Fixed #645: improve welcome emails messages
Fixed #758: phpMyAdmin Security vulnerability
Added different message levels to be used with write_log to reduce verbosity of emails sent
Fixed some Makefiles which were replacing files in the local copy rather than in the installation

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk

    • Property svn:ignore set to
      debian
  • trunk/CHANGELOG

    r848 r849  
    66|               * to fix: no errors on adding user (custom HP)    | 
    77\_________________________________________________________________/ 
     8 
     92007-10-13 Raphael Geissert 
     10    - ENGINE: 
     11        * Generate database keys at setup time (fix for Debian packaging) 
     12        * Added ispCP config (/etc/ispcp) and database backup system 
     13    - SETUP: 
     14        * LSB compatiblity for installing/removing init scripts 
     15    - CONFIGS: 
     16        * Added BACKUP_DOMAINS yes/no switch to enable/disable customer backups 
     17        * Made ispcp_network and ispcp_daemon more or less LSB compatible 
     18        * Fixed #688: updated ispcp_network in all distros (including fedora) 
     19    - GUI: 
     20        * Fixed #645: improve welcome emails messages 
     21        * Fixed #758: phpMyAdmin Security vulnerability 
     22        * Added different message levels to be used with write_log to reduce verbosity of emails sent 
     23    - MAKEFILE: 
     24        * Fixed some Makefiles which were replacing files in the local copy rather than in the installation 
    825 
    9262007-10-13 Benedikt Heintel 
  • trunk/configs/apache/Makefile

    r830 r849  
    1212        $(SYSTEM_MAKE_DIRS) $(ROOT_APACHE_CONF)/mods-available 
    1313 
    14         cp ./httpd.conf ./working/ispcp.conf 
    15         cp ./httpd.conf ./parts/ispcp_base.tpl 
    16  
    17         # Debian 4.0 "Etch"? 
    18         if [[ $(RELEASE) = '4.0' ]] || [[ $(RELEASE) = 'lenny/sid' ]]; then \ 
    19                 cp ./fastcgi2.conf ./working/fastcgi_ispcp.conf ; \ 
    20         else \ 
    21                 cp ./fastcgi.conf ./working/fastcgi_ispcp.conf ; \ 
    22         fi 
    23  
    2414        cp ./httpd.conf $(SYSTEM_CONF)/apache 
    2515        cp ./00_master.conf $(SYSTEM_CONF)/apache 
     
    2919        cp -R ./working $(SYSTEM_CONF)/apache 
    3020 
    31         cp -R ./working/fastcgi_ispcp.conf ${ROOT_APACHE_CONF}/mods-available/fastcgi_ispcp.conf 
     21        cp ./httpd.conf $(SYSTEM_CONF)/working/ispcp.conf 
     22        cp ./httpd.conf $(SYSTEM_CONF)/parts/ispcp_base.tpl 
     23 
     24        # Debian 4.0 "Etch"? 
     25        if [[ $(RELEASE) = '4.0' ]] || [[ $(RELEASE) = 'lenny/sid' ]]; then \ 
     26                cp ./fastcgi2.conf $(SYSTEM_CONF)/working/fastcgi_ispcp.conf ; \ 
     27        else \ 
     28                cp ./fastcgi.conf $(SYSTEM_CONF)/working/fastcgi_ispcp.conf ; \ 
     29        fi 
     30 
     31        cp -R $(SYSTEM_CONF)/working/fastcgi_ispcp.conf ${ROOT_APACHE_CONF}/mods-available/fastcgi_ispcp.conf 
    3232 
    3333uninstall: 
  • trunk/configs/cron.d/Makefile

    r784 r849  
    44 
    55        $(SYSTEM_MAKE_DIRS) $(SYSTEM_CONF)/cron.d 
    6         cp ./ispcp ./working 
    76        cp ./ispcp $(SYSTEM_CONF)/cron.d 
    87        cp -R ./backup $(SYSTEM_CONF)/cron.d 
    98        cp -R ./parts $(SYSTEM_CONF)/cron.d 
    109        cp -R ./working $(SYSTEM_CONF)/cron.d 
     10        cp $(SYSTEM_CONF)/cron.d/ispcp $(SYSTEM_CONF)/cron.d/working 
    1111 
    1212uninstall: 
  • trunk/configs/cron.d/ispcp

    r845 r849  
    990,30    *       *       *       *  root {TRAFF_ROOT_DIR}/ispcp-vrl-traff &>{LOG_DIR}/ispcp-vrl-traff.log 
    101015,45   *       *       *       *  root {TRAFF_ROOT_DIR}/ispcp-vrl-traff-correction &>{LOG_DIR}/ispcp-vrl-traff-correction.log 
     11 
     12# customer logs 
    111330         23   *       *       *  root {TOOLS_ROOT_DIR}/ispcp-httpd-logs-mngr &>{LOG_DIR}/ispcp-httpd-logs-mngr.log 
    1214 
    1315# Backup 
    14 0       1       *       *       *  root {BACKUP_ROOT_DIR}/ispcp-backup-all yes &>{LOG_DIR}/ispcp-backup-all-mngr.log 
     16@daily root {BACKUP_ROOT_DIR}/ispcp-backup-all yes &>{LOG_DIR}/ispcp-backup-all-mngr.log 
     17@daily root {BACKUP_ROOT_DIR}/ispcp-backup-ispcp noreport &>{LOG_DIR}/ispcp-backup-all-mngr.log 
    1518 
    1619# Remove config backups older than seven days 
    1720@daily root find {CONF_DIR}/*/backup/* -maxdepth 0 -type f -mtime +7 -print | egrep '.*\.[0-9]+$' | xargs /bin/rm 
    18 # Remove Daemon Logs older than 14 days 
    19 @daily root find {LOG_DIR}/* -maxdepth 1 -type f -mtime +14 -print | egrep '.*\.[0-9]+$' | xargs /bin/rm 
     21 
     22# Remove Daemon Logs older than 14 days (except .gz files) 
     23@daily root find {LOG_DIR}/* -maxdepth 1 -type f -mtime +14 -print | egrep '.*\.gz$' | xargs /bin/rm 
    2024 
    2125# AWStats 
  • trunk/configs/dists/centos/init.d/Makefile

    r847 r849  
    88 
    99        $(SYSTEM_MAKE_DIRS) $(ROOT_CONF)/init.d 
     10        $(SYSTEM_MAKE_DIRS) $(ROOT_CONF)/default 
    1011         
    1112        cp ispcp_daemon $(ROOT_CONF)/init.d 
    1213        cp ispcp_network $(ROOT_CONF)/init.d 
     14        [ -f ispcp_daemon.default ] && cp ispcp_daemon.default $(ROOT_CONF)/default/ispcp_daemon 
     15        [ -f ispcp_network.default ] && cp ispcp_network.default $(ROOT_CONF)/default/ispcp_network 
    1316 
    14         chown root:root $(ROOT_CONF)/init.d/ispcp_network $(ROOT_CONF)/init.d/ispcp_daemon 
    15         chmod 0755 $(ROOT_CONF)/init.d/ispcp_network $(ROOT_CONF)/init.d/ispcp_daemon 
     17        chown root:root $(ROOT_CONF)/init.d/ispcp_network $(ROOT_CONF)/init.d/ispcp_daemon $(ROOT_CONF)/default/ispcp_daemon 
     18        chmod 0755 $(ROOT_CONF)/init.d/ispcp_network $(ROOT_CONF)/init.d/ispcp_daemon $(ROOT_CONF)/default/ispcp_daemon 
    1619         
    1720uninstall: 
     
    1922        rm -f $(ROOT_CONF)/init.d/ispcp_daemon 
    2023        rm -f $(ROOT_CONF)/init.d/ispcp_network 
     24        rm -f $(ROOT_CONF)/default/ispcp_daemon 
     25        rm -f $(ROOT_CONF)/default/ispcp_network 
    2126 
  • trunk/configs/dists/centos/init.d/ispcp_daemon

    r847 r849  
    1 #! /bin/sh 
     1#!/bin/sh 
    22 
    33# ispCP ω (OMEGA) a Virtual Hosting Control System 
     
    2727# 
    2828#    http://www.isp-control.net 
    29  
     29
     30### BEGIN INIT INFO 
     31# Provides:             ispcp_daemon 
     32# Required-Start:       $network $local_fs $remote_fs 
     33# Required-Stop: 
     34# Should-Stop:          $local_fs 
     35# Default-Start:        2 3 4 5 
     36# Default-Stop:         0 1 6 
     37# Short-Description:    ispCP GUI-Backend communication Daemon 
     38### END INIT INFO 
    3039# Note: do not modify any of these vars here, use /etc/default/$NAME instead 
    3140 
     
    3443DAEMON=/var/www/ispcp/daemon/$NAME 
    3544PID=/var/run/$NAME.pid 
    36 DESC="ispCP Daemon" 
     45DESC="ispCP GUI-Backend communication Daemon" 
     46LOGDIR=/var/log/ispcp 
     47LOGFILE=${LOGDIR}/${NAME}.log 
     48DIETIME=3 
    3749 
    3850START=1 
    3951 
    40 test -f $DAEMON || exit 0 
     52# Debian LSB extensions (will be used if init-functions doesn't override them): 
     53log_daemon_msg() { 
     54        if [ ! -z "${2:-}" ]; then 
     55                log_success_msg "${1:-}: ${2:-}" 
     56        else 
     57                log_success_msg "${1:-}" 
     58        fi 
     59
     60log_end_msg() { 
     61        local status="$1" 
     62
    4163 
    42 # Read config file if it is present. 
     64# if not present (e.g. *BSD) make sure to provide compatible methods via /etc/default/$NAME 
     65if [ -f /lib/lsb/init-functions ]; then 
     66        . /lib/lsb/init-functions 
     67fi 
     68 
     69test -x $DAEMON || { 
     70        if [ "$1" = "stop" ]; then 
     71                log_warning_msg "$DAEMON not installed, but stopping anyway." 
     72        else 
     73                exit 5 
     74        fi } 
     75 
     76# Read config file if present. 
    4377if [ -r /etc/default/$NAME ]; then 
    4478        . /etc/default/$NAME 
     
    4680 
    4781if [ $START -eq 0 ]; then 
    48         echo "$DESC: not starting, edit /etc/default/$NAME." 
    49         exit 0 
     82        log_warning_msg "Not starting $DESC: edit /etc/default/$NAME." 
     83        exit 1 
    5084fi 
    5185 
    5286case "$1" in 
    5387  start) 
    54     echo "Starting $DESC..." 
    55         start-stop-daemon --start --verbose --exec $DAEMON -- -p $PID 
     88        log_daemon_msg "Starting $DESC" "$NAME" 
     89 
     90        start_daemon -p $PID $DAEMON -p $PID 
     91 
     92        log_end_msg $? 
    5693        ;; 
    5794  stop) 
    58         start-stop-daemon --stop --verbose --pidfile $PID --exec $DAEMON --retry 5 
    59     rm $PID 
     95        log_daemon_msg "Stopping $DESC" "$NAME" 
     96 
     97        killproc -p $PID $DAEMON 
     98 
     99        log_end_msg $? 
     100 
     101        [ ! -f "$PID" ] || rm -f $PID 
    60102        ;; 
    61103  restart|force-reload) 
    62         start-stop-daemon --stop --verbose --pidfile $PID --exec $DAEMON --retry 5 
    63         rm $PID 
    64     echo "Starting $DESC..." 
    65         start-stop-daemon --start --verbose --exec $DAEMON -- -p $PID 
     104        log_daemon_msg "Stopping $DESC" "$NAME" 
     105 
     106        killproc -p $PID $DAEMON 
     107 
     108        log_end_msg $? 
     109 
     110        [ ! -f "$PID" ] || rm -f $PID 
     111 
     112        [ -n "$DIETIME" ] && sleep "$DIETIME" 
     113 
     114        log_daemon_msg "Starting $DESC" "$NAME" 
     115 
     116        start_daemon -p $PID $DAEMON -- -p $PID 
     117 
     118        log_end_msg $? 
    66119        ;; 
    67120  status) 
    68     set +e 
    69     if [ -s $PID ]; then 
    70         RPID=`cat $PID` 
    71         kill -0 $RPID 2> /dev/null 
    72         if [ "$?" = 0 ] ; then 
    73             echo "$NAME is started" 
    74             exit 0 
    75         fi 
    76     fi 
    77     echo "$NAME is stopped" 
    78     exit 1 
     121        log_daemon_msg "Checking status of $DESC" 
     122 
     123        pidofproc $DAEMON 
     124 
     125        status="$?" 
     126        log_end_msg "$status" 
     127 
     128        case "$status" in 
     129                0) 
     130                        log_success_msg "$NAME running" 
     131                ;; 
     132                1) 
     133                        log_warning_msg "$NAME not running (but pid file found)" 
     134                ;; 
     135                2) 
     136                        log_warning_msg "$NAME not running (but lock file found)" 
     137                ;; 
     138                3) 
     139                        log_warning_msg "$NAME not running" 
     140                ;; 
     141                4|*) 
     142                        log_failure_msg "Service status is unknown" 
     143                        exit 1 
     144                ;; 
     145        esac 
    79146        ;; 
     147         
    80148  *) 
    81149        N=/etc/init.d/$NAME 
  • trunk/configs/dists/centos/init.d/ispcp_network

    r847 r849  
    2727# 
    2828#    http://www.isp-control.net 
    29  
     29### BEGIN INIT INFO 
     30# Provides:             ispcp_network 
     31# Required-Start:       $network $local_fs $remote_fs 
     32# Required-Stop: 
     33# Should-Stop:          $local_fs 
     34# Default-Start:        2 3 4 5 
     35# Default-Stop:         0 1 6 
     36# Short-Description:    ispCP Network Traffic Logger 
     37### END INIT INFO 
    3038# Note: do not modify any of these vars here, use /etc/default/$NAME instead 
    3139 
     
    3543LFILE=/var/run/$NAME 
    3644IPTABLES=/sbin/iptables 
    37 LOG_DIR=/var/log/ispcp 
     45LOGDIR=/var/log/ispcp 
     46LOGFILE=${LOGDIR}/${NAME}.log 
     47DIETIME=3 
    3848 
    3949START=1 
    4050 
    41 # Read config file if it is present. 
     51# Debian LSB extensions (will be used if init-functions doesn't override them): 
     52log_daemon_msg() { 
     53        if [ ! -z "${2:-}" ]; then 
     54                log_success_msg "${1:-}: ${2:-}" 
     55        else 
     56                log_success_msg "${1:-}" 
     57        fi 
     58
     59log_end_msg() { 
     60        local status="$1" 
     61
     62log_progress_msg () { 
     63        log_success_msg " $@" 
     64
     65 
     66# if not present (e.g. *BSD) make sure to provide compatible methods via /etc/default/$NAME 
     67if [ -f /lib/lsb/init-functions ]; then 
     68        . /lib/lsb/init-functions 
     69fi 
     70 
     71# Read config file if present. 
    4272if [ -r /etc/default/$NAME ]; then 
    4373        . /etc/default/$NAME 
     
    4575 
    4676if [ $START -eq 0 ]; then 
    47         echo "$DESC: not starting, edit /etc/default/$NAME." 
    48         exit 0 
     77        log_warning_msg "Not starting $DESC: edit /etc/default/$NAME." 
     78        exit 1 
    4979fi 
    5080 
    51 add_rules() 
    52 
    53         ${IPTABLES} -N ISPCP_INPUT 2>> "${LOG_DIR}/${NAME}.err.log" 
    54         ${IPTABLES} -N ISPCP_OUTPUT 2>> "${LOG_DIR}/${NAME}.err.log" 
     81add_rules() { 
     82        ${IPTABLES} -N ISPCP_INPUT 2>> "$LOGFILE" 
     83        ${IPTABLES} -N ISPCP_OUTPUT 2>> "$LOGFILE" 
    5584 
    5685        # All traffic should jump through ISPCP tables before anything else 
    57         ${IPTABLES} -I INPUT -j ISPCP_INPUT 2>> "${LOG_DIR}/${NAME}.err.log
    58         ${IPTABLES} -I OUTPUT -j ISPCP_OUTPUT 2>> "${LOG_DIR}/${NAME}.err.log
     86        ${IPTABLES} -I INPUT -j ISPCP_INPUT 2>> "$LOGFILE
     87        ${IPTABLES} -I OUTPUT -j ISPCP_OUTPUT 2>> "$LOGFILE
    5988 
    6089        # web traffic 
    6190 
    62         ${IPTABLES} -I ISPCP_INPUT -p tcp --dport 80 2>> "${LOG_DIR}/${NAME}.err.log
    63         ${IPTABLES} -I ISPCP_OUTPUT -p tcp --sport 80 2>> "${LOG_DIR}/${NAME}.err.log
     91        ${IPTABLES} -I ISPCP_INPUT -p tcp --dport 80 2>> "$LOGFILE
     92        ${IPTABLES} -I ISPCP_OUTPUT -p tcp --sport 80 2>> "$LOGFILE
    6493 
    6594        # pop3 traffic 
    6695 
    67         ${IPTABLES} -I ISPCP_INPUT -p tcp --dport 110 2>> "${LOG_DIR}/${NAME}.err.log
    68         ${IPTABLES} -I ISPCP_OUTPUT -p tcp --sport 110 2>> "${LOG_DIR}/${NAME}.err.log
     96        ${IPTABLES} -I ISPCP_INPUT -p tcp --dport 110 2>> "$LOGFILE
     97        ${IPTABLES} -I ISPCP_OUTPUT -p tcp --sport 110 2>> "$LOGFILE
    6998 
    7099        # imap traffic 
    71100 
    72         ${IPTABLES} -I ISPCP_INPUT -p tcp --dport 143 2>> "${LOG_DIR}/${NAME}.err.log
    73         ${IPTABLES} -I ISPCP_OUTPUT -p tcp --sport 143 2>> "${LOG_DIR}/${NAME}.err.log
     101        ${IPTABLES} -I ISPCP_INPUT -p tcp --dport 143 2>> "$LOGFILE
     102        ${IPTABLES} -I ISPCP_OUTPUT -p tcp --sport 143 2>> "$LOGFILE
    74103 
    75104        # mail traffic 
    76105 
    77         ${IPTABLES} -I ISPCP_INPUT  -p tcp --dport 25 2>> "${LOG_DIR}/${NAME}.err.log
    78         ${IPTABLES} -I ISPCP_OUTPUT -p tcp --sport 25 2>> "${LOG_DIR}/${NAME}.err.log
     106        ${IPTABLES} -I ISPCP_INPUT  -p tcp --dport 25 2>> "$LOGFILE
     107        ${IPTABLES} -I ISPCP_OUTPUT -p tcp --sport 25 2>> "$LOGFILE
    79108 
    80109        # Explicit return once done 
     
    86115} 
    87116 
    88 remove_rules() 
    89 
    90         ${IPTABLES} -D INPUT -j ISPCP_INPUT 2>> "${LOG_DIR}/${NAME}.err.log" 
    91         ${IPTABLES} -D OUTPUT -j ISPCP_OUTPUT 2>> "${LOG_DIR}/${NAME}.err.log" 
    92         ${IPTABLES} -F ISPCP_INPUT 2>> "${LOG_DIR}/${NAME}.err.log" 
    93         ${IPTABLES} -F ISPCP_OUTPUT 2>> "${LOG_DIR}/${NAME}.err.log" 
    94         ${IPTABLES} -X ISPCP_INPUT 2>> "${LOG_DIR}/${NAME}.err.log" 
    95         ${IPTABLES} -X ISPCP_OUTPUT 2>> "${LOG_DIR}/${NAME}.err.log" 
     117remove_rules() { 
     118        ${IPTABLES} -D INPUT -j ISPCP_INPUT 2>> "$LOGFILE" 
     119        ${IPTABLES} -D OUTPUT -j ISPCP_OUTPUT 2>> "$LOGFILE" 
     120        ${IPTABLES} -F ISPCP_INPUT 2>> "$LOGFILE" 
     121        ${IPTABLES} -F ISPCP_OUTPUT 2>> "$LOGFILE" 
     122        ${IPTABLES} -X ISPCP_INPUT 2>> "$LOGFILE" 
     123        ${IPTABLES} -X ISPCP_OUTPUT 2>> "$LOGFILE" 
    96124 
    97125        # Remove lock file 
     
    101129case "$1" in 
    102130  start) 
    103         echo -n "Starting $DESC:" 
    104         if [ -e $LFILE ]; then 
    105            echo " ${NAME} is already started" >&2 
    106            exit 1 
     131        log_daemon_msg "Starting $DESC" "$NAME" 
     132 
     133        if [ -e "$LFILE" ]; then 
     134                echo "" 
     135                log_warning_msg "${NAME} is already started" >&2 
     136        else 
     137                add_rules 
    107138        fi 
    108         add_rules 
    109         echo " $NAME." 
     139 
     140        log_end_msg $? 
    110141        ;; 
    111142  stop) 
    112         echo -n "Stopping $DESC:" 
    113         if [ ! -e $LFILE ]; then 
    114            echo "${NAME} is already stopped" >&2 
    115            exit 1 
     143        log_daemon_msg "Stopping $DESC" "$NAME" 
     144        if [ ! -e "$LFILE" ]; then 
     145                echo "" 
     146                log_warning_msg "${NAME} is already stopped" >&2 
     147        else 
     148                remove_rules 
    116149        fi 
    117         remove_rules 
    118         echo " $NAME." 
     150 
     151        log_end_msg $? 
    119152        ;; 
    120153  restart|force-reload) 
    121         echo -n "Restarting $DESC:" 
    122         if [ ! -e $LFILE ]; then 
    123            echo "${NAME} is already stopped" >&2 
     154        log_daemon_msg "Stopping $DESC" "$NAME" 
     155 
     156        if [ ! -e "$LFILE" ]; then 
     157                echo "" 
     158                log_warning_msg "${NAME} is already stopped" >&2 
    124159        else 
    125            remove_rules 
    126            sleep 2 
     160                remove_rules 
     161                log_end_msg $? 
     162                [ -n "$DIETIME" ] && sleep "$DIETIME" 
    127163        fi 
     164 
     165        log_daemon_msg "Starting $DESC" "$NAME" 
     166 
    128167        add_rules 
    129         echo " $NAME." 
     168 
     169        log_end_msg $? 
     170         
    130171        ;; 
    131172  status) 
    132         if [ ! -e $LFILE ]; then 
    133            echo "${NAME} is stopped" 
     173        log_daemon_msg "Checking status of $DESC" "$NAME" 
     174 
     175        if [ ! -e "$LFILE" ]; then 
     176           log_progress_msg "stopped" 
    134177        else 
    135            echo "${NAME} is started" 
    136            exit 0 
     178           log_progress_msg "started" 
    137179        fi 
     180 
     181        echo "" 
    138182        ;; 
    139183  *) 
    140         echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2 
     184        echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload|status}" >&2 
    141185        exit 1 
    142186        ;; 
  • trunk/configs/dists/fedora/init.d/Makefile

    r473 r849  
    88 
    99        $(SYSTEM_MAKE_DIRS) $(ROOT_CONF)/init.d 
     10        $(SYSTEM_MAKE_DIRS) $(ROOT_CONF)/default 
    1011         
    1112        cp ispcp_daemon $(ROOT_CONF)/init.d 
    1213        cp ispcp_network $(ROOT_CONF)/init.d 
     14        [ -f ispcp_daemon.default ] && cp ispcp_daemon.default $(ROOT_CONF)/default/ispcp_daemon 
     15        [ -f ispcp_network.default ] && cp ispcp_network.default $(ROOT_CONF)/default/ispcp_network 
    1316 
    14         chown root:root $(ROOT_CONF)/init.d/ispcp_network $(ROOT_CONF)/init.d/ispcp_daemon 
    15         chmod 0755 $(ROOT_CONF)/init.d/ispcp_network $(ROOT_CONF)/init.d/ispcp_daemon 
     17        chown root:root $(ROOT_CONF)/init.d/ispcp_network $(ROOT_CONF)/init.d/ispcp_daemon $(ROOT_CONF)/default/ispcp_daemon 
     18        chmod 0755 $(ROOT_CONF)/init.d/ispcp_network $(ROOT_CONF)/init.d/ispcp_daemon $(ROOT_CONF)/default/ispcp_daemon 
    1619         
    1720uninstall: 
     
    1922        rm -f $(ROOT_CONF)/init.d/ispcp_daemon 
    2023        rm -f $(ROOT_CONF)/init.d/ispcp_network 
     24        rm -f $(ROOT_CONF)/default/ispcp_daemon 
     25        rm -f $(ROOT_CONF)/default/ispcp_network 
    2126 
  • trunk/configs/dists/fedora/init.d/ispcp_daemon

    r843 r849  
    2727# 
    2828#    http://www.isp-control.net 
     29# 
     30### BEGIN INIT INFO 
     31# Provides:             ispcp_daemon 
     32# Required-Start:       $network $local_fs $remote_fs 
     33# Required-Stop: 
     34# Should-Stop:          $local_fs 
     35# Default-Start:        2 3 4 5 
     36# Default-Stop:         0 1 6 
     37# Short-Description:    ispCP GUI-Backend communication Daemon 
     38### END INIT INFO 
     39# Note: do not modify any of these vars here, use /etc/default/$NAME instead 
    2940 
    30 # Source function library. 
    31 . /etc/rc.d/init.d/functions 
     41PATH=/sbin:/bin:/usr/sbin:/usr/bin 
     42NAME=ispcp_daemon 
     43DAEMON=/var/www/ispcp/daemon/$NAME 
     44PID=/var/run/$NAME.pid 
     45DESC="ispCP GUI-Backend communication Daemon" 
     46LOGDIR=/var/log/ispcp 
     47LOGFILE=${LOGDIR}/${NAME}.log 
     48DIETIME=3 
    3249 
    33 prog=ispcp_daemon 
    34 progpath=/var/www/ispcp/daemon 
    35 lockfile=/var/lock/subsys/ispcp 
    36 PID=/var/run/ispcp_daemon.pid 
     50START=1 
    3751 
    38 start() { 
    39         echo -n $"Starting $prog: " 
    40         daemon $progpath/$prog -p $PID 
    41         RETVAL=$? 
    42         [ $RETVAL -eq 0 ] && touch $lockfile >/dev/null 2>&1 
    43         echo 
     52# Debian LSB extensions (will be used if init-functions doesn't override them): 
     53log_daemon_msg() { 
     54        if [ ! -z "${2:-}" ]; then 
     55                log_success_msg "${1:-}: ${2:-}" 
     56        else 
     57                log_success_msg "${1:-}" 
     58        fi 
     59
     60log_end_msg() { 
     61        local status="$1" 
    4462} 
    4563 
    46 stop() { 
    47         echo -n $"Shutting down $prog: " 
    48         killproc $prog 
    49         RETVAL=$? 
    50         echo 
    51         [ $RETVAL -eq 0 ] && rm -f $lockfile 
    52 
     64# if not present (e.g. *BSD) make sure to provide compatible methods via /etc/default/$NAME 
     65if [ -f /lib/lsb/init-functions ]; then 
     66        . /lib/lsb/init-functions 
     67fi 
    5368 
    54 status()
    55                if [ -s $pidfile ]; then 
    56                        pid=`cat $pidfile` 
    57                        kill -0 $pid >/dev/null 2>&1 
    58                        if [ "$?" = "0" ]; then 
    59                                echo "$prog (pid $pid) is running" 
    60                                 RETVAL=0 
    61                         else 
    62                                 echo "$prog is stopped" 
    63                                RETVAL=1 
    64                        fi 
    65                 else 
    66                         echo "$prog is stopped" 
    67                        RETVAL=1 
    68                fi 
    69 
     69test -x $DAEMON ||
     70        if [ "$1" = "stop" ]; then 
     71                log_warning_msg "$DAEMON not installed, but stopping anyway." 
     72        else 
     73                exit 5 
     74        fi } 
     75 
     76# Read config file if present. 
     77if [ -r /etc/default/$NAME ]; then 
     78        . /etc/default/$NAME 
     79fi 
     80 
     81if [ $START -eq 0 ]; then 
     82        log_warning_msg "Not starting $DESC: edit /etc/default/$NAME." 
     83        exit 1 
     84fi 
    7085 
    7186case "$1" in 
    7287  start) 
    73         start 
    74                 /etc/init.d/ispcp_network 
     88        log_daemon_msg "Starting $DESC" "$NAME" 
     89 
     90        start_daemon -p $PID $DAEMON -p $PID 
     91 
     92        log_end_msg $? 
    7593        ;; 
    7694  stop) 
    77         stop 
     95        log_daemon_msg "Stopping $DESC" "$NAME" 
     96 
     97        killproc -p $PID $DAEMON 
     98 
     99        log_end_msg $? 
     100 
     101        [ ! -f "$PID" ] || rm -f $PID 
    78102        ;; 
    79   restart) 
    80         stop 
    81         start 
     103  restart|force-reload) 
     104        log_daemon_msg "Stopping $DESC" "$NAME" 
     105 
     106        killproc -p $PID $DAEMON 
     107 
     108        log_end_msg $? 
     109 
     110        [ ! -f "$PID" ] || rm -f $PID 
     111 
     112        [ -n "$DIETIME" ] && sleep "$DIETIME" 
     113 
     114        log_daemon_msg "Starting $DESC" "$NAME" 
     115 
     116        start_daemon -p $PID $DAEMON -- -p $PID 
     117 
     118        log_end_msg $? 
    82119        ;; 
    83120  status) 
    84         status $prog 
    85         RETVAL=$? 
     121        log_daemon_msg "Checking status of $DESC" 
     122 
     123        pidofproc $DAEMON 
     124 
     125        status="$?" 
     126        log_end_msg "$status" 
     127 
     128        case "$status" in 
     129                0) 
     130                        log_success_msg "$NAME running" 
     131                ;; 
     132                1) 
     133                        log_warning_msg "$NAME not running (but pid file found)" 
     134                ;; 
     135                2) 
     136                        log_warning_msg "$NAME not running (but lock file found)" 
     137                ;; 
     138                3) 
     139                        log_warning_msg "$NAME not running" 
     140                ;; 
     141                4|*) 
     142                        log_failure_msg "Service status is unknown" 
     143                        exit 1 
     144                ;; 
     145        esac 
    86146        ;; 
     147         
    87148  *) 
    88         echo "Usage: $prog {start|stop|restart|status}" 
     149        N=/etc/init.d/$NAME 
     150        echo "Usage: $N {start|stop|restart|force-reload|status}" >&2 
    89151        exit 1 
     152        ;; 
    90153esac 
    91154 
    92 exit $RETVAL 
     155exit 0 
  • trunk/configs/dists/fedora/init.d/ispcp_network

    r821 r849  
    1 #!/bin/bash 
     1#!/bin/sh 
    22 
    33# ispCP ω (OMEGA) a Virtual Hosting Control System 
     
    2727# 
    2828#    http://www.isp-control.net 
     29### BEGIN INIT INFO 
     30# Provides:             ispcp_network 
     31# Required-Start:       $network $local_fs $remote_fs 
     32# Required-Stop: 
     33# Should-Stop:          $local_fs 
     34# Default-Start:        2 3 4 5 
     35# Default-Stop:         0 1 6 
     36# Short-Description:    ispCP Network Traffic Logger 
     37### END INIT INFO 
     38# Note: do not modify any of these vars here, use /etc/default/$NAME instead 
    2939 
    30 RMMOD='/sbin/rmmod' 
     40PATH=/sbin:/bin:/usr/sbin:/usr/bin 
     41DESC="ispCP Network Traffic Logger" 
     42NAME=ispcp_network 
     43LFILE=/var/run/$NAME 
     44IPTABLES=/sbin/iptables 
     45LOGDIR=/var/log/ispcp 
     46LOGFILE=${LOGDIR}/${NAME}.log 
     47DIETIME=3 
    3148 
    32 IPTABLES="/sbin/iptables" 
     49START=1 
    3350 
    34 ${RMMOD} ipchains 1>/tmp/ispcp_network.log 2>/tmp/ispcp_network.err.log 
     51# Debian LSB extensions (will be used if init-functions doesn't override them): 
     52log_daemon_msg() { 
     53        if [ ! -z "${2:-}" ]; then 
     54                log_success_msg "${1:-}: ${2:-}" 
     55        else 
     56                log_success_msg "${1:-}" 
     57        fi 
     58
     59log_end_msg() { 
     60        local status="$1" 
     61
     62log_progress_msg () { 
     63        log_success_msg " $@" 
     64
    3565 
    36 # all traffic 
     66# if not present (e.g. *BSD) make sure to provide compatible methods via /etc/default/$NAME 
     67if [ -f /lib/lsb/init-functions ]; then 
     68        . /lib/lsb/init-functions 
     69fi 
    3770 
    38 ${IPTABLES} -I INPUT 
     71# Read config file if present. 
     72if [ -r /etc/default/$NAME ]; then 
     73        . /etc/default/$NAME 
     74fi 
    3975 
    40 ${IPTABLES} -I OUTPUT 
     76if [ $START -eq 0 ]; then 
     77        log_warning_msg "Not starting $DESC: edit /etc/default/$NAME." 
     78        exit 1 
     79fi 
    4180 
    42 # web traffic 
     81add_rules() { 
     82        ${IPTABLES} -N ISPCP_INPUT 2>> "$LOGFILE" 
     83        ${IPTABLES} -N ISPCP_OUTPUT 2>> "$LOGFILE" 
    4384 
    44 ${IPTABLES} -I INPUT -p tcp --dport 80 
    45 ${IPTABLES} -I OUTPUT -p tcp --sport 80 
     85        # All traffic should jump through ISPCP tables before anything else 
     86        ${IPTABLES} -I INPUT -j ISPCP_INPUT 2>> "$LOGFILE" 
     87        ${IPTABLES} -I OUTPUT -j ISPCP_OUTPUT 2>> "$LOGFILE" 
    4688 
    47 # pop3 traffic 
     89       # web traffic 
    4890 
    49 ${IPTABLES} -I INPUT -p tcp --dport 110 
    50 ${IPTABLES} -I OUTPUT -p tcp --sport 110 
     91        ${IPTABLES} -I ISPCP_INPUT -p tcp --dport 80 2>> "$LOGFILE" 
     92        ${IPTABLES} -I ISPCP_OUTPUT -p tcp --sport 80 2>> "$LOGFILE" 
    5193 
    52 # imap traffic 
     94       # pop3 traffic 
    5395 
    54 ${IPTABLES} -I INPUT -p tcp --dport 143 
    55 ${IPTABLES} -I OUTPUT -p tcp --sport 143 
     96        ${IPTABLES} -I ISPCP_INPUT -p tcp --dport 110 2>> "$LOGFILE" 
     97        ${IPTABLES} -I ISPCP_OUTPUT -p tcp --sport 110 2>> "$LOGFILE" 
    5698 
    57 # mail traffic 
     99       # imap traffic 
    58100 
    59 ${IPTABLES} -I INPUT  -p tcp --dport 25 
    60 ${IPTABLES} -I OUTPUT -p tcp --sport 25 
     101        ${IPTABLES} -I ISPCP_INPUT -p tcp --dport 143 2>> "$LOGFILE" 
     102        ${IPTABLES} -I ISPCP_OUTPUT -p tcp --sport 143 2>> "$LOGFILE" 
     103 
     104        # mail traffic 
     105 
     106        ${IPTABLES} -I ISPCP_INPUT  -p tcp --dport 25 2>> "$LOGFILE" 
     107        ${IPTABLES} -I ISPCP_OUTPUT -p tcp --sport 25 2>> "$LOGFILE" 
     108 
     109        # Explicit return once done 
     110        ${IPTABLES} -A ISPCP_INPUT -j RETURN 
     111        ${IPTABLES} -A ISPCP_OUTPUT -j RETURN 
     112 
     113        # Touch lock file 
     114        touch $LFILE 
     115
     116 
     117remove_rules() { 
     118        ${IPTABLES} -D INPUT -j ISPCP_INPUT 2>> "$LOGFILE" 
     119        ${IPTABLES} -D OUTPUT -j ISPCP_OUTPUT 2>> "$LOGFILE" 
     120        ${IPTABLES} -F ISPCP_INPUT 2>> "$LOGFILE" 
     121        ${IPTABLES} -F ISPCP_OUTPUT 2>> "$LOGFILE" 
     122        ${IPTABLES} -X ISPCP_INPUT 2>> "$LOGFILE" 
     123        ${IPTABLES} -X ISPCP_OUTPUT 2>> "$LOGFILE" 
     124 
     125        # Remove lock file 
     126        rm $LFILE 
     127
     128 
     129case "$1" in 
     130  start) 
     131        log_daemon_msg "Starting $DESC" "$NAME" 
     132 
     133        if [ -e "$LFILE" ]; then 
     134                echo "" 
     135                log_warning_msg "${NAME} is already started" >&2 
     136        else 
     137                add_rules 
     138        fi 
     139 
     140        log_end_msg $? 
     141        ;; 
     142  stop) 
     143        log_daemon_msg "Stopping $DESC" "$NAME" 
     144        if [ ! -e "$LFILE" ]; then 
     145                echo "" 
     146                log_warning_msg "${NAME} is already stopped" >&2 
     147        else 
     148                remove_rules 
     149        fi 
     150 
     151        log_end_msg $? 
     152        ;; 
     153  restart|force-reload) 
     154        log_daemon_msg "Stopping $DESC" "$NAME" 
     155 
     156        if [ ! -e "$LFILE" ]; then 
     157                echo "" 
     158                log_warning_msg "${NAME} is already stopped" >&2 
     159        else 
     160                remove_rules 
     161                log_end_msg $? 
     162                [ -n "$DIETIME" ] && sleep "$DIETIME" 
     163        fi 
     164 
     165        log_daemon_msg "Starting $DESC" "$NAME" 
     166 
     167        add_rules 
     168 
     169        log_end_msg $? 
     170         
     171        ;; 
     172  status) 
     173        log_daemon_msg "Checking status of $DESC" "$NAME" 
     174 
     175        if [ ! -e "$LFILE" ]; then 
     176           log_progress_msg "stopped" 
     177        else 
     178           log_progress_msg "started" 
     179        fi 
     180 
     181        echo "" 
     182        ;; 
     183  *) 
     184        echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload|status}" >&2 
     185        exit 1 
     186        ;; 
     187esac 
     188 
     189exit 0 
  • trunk/configs/dists/gentoo/init.d/Makefile