]> andersk Git - openssh.git/blobdiff - contrib/redhat/sshd.init
- (djm) Update RPM spec file versions
[openssh.git] / contrib / redhat / sshd.init
index a4df642767ae9d7924f9963d91e687b2f871200e..86b040cda0e1588dd14c117abf0aa4b15145d1fc 100755 (executable)
@@ -15,6 +15,8 @@
 # source function library
 . /etc/rc.d/init.d/functions
 
+[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd
+
 RETVAL=0
 
 # Some functions to make the below more readable
@@ -23,14 +25,46 @@ RSA1_KEY=/etc/ssh/ssh_host_key
 RSA_KEY=/etc/ssh/ssh_host_rsa_key
 DSA_KEY=/etc/ssh/ssh_host_dsa_key
 PID_FILE=/var/run/sshd.pid
+my_success() {
+  local msg
+  if [ $# -gt 1 ]; then
+    msg="$2"
+  else
+    msg="done"
+  fi
+  case "`type -type success`" in
+    function)
+      success "$1"
+    ;;
+    *)
+      echo -n "${msg}"
+    ;;
+  esac
+}
+my_failure() {
+  local msg
+  if [ $# -gt 1 ]; then
+    msg="$2"
+  else
+    msg="FAILED"
+  fi
+  case "`type -type failure`" in
+    function)
+      failure "$1"
+    ;;
+    *)
+      echo -n "${msg}"
+    ;;
+  esac
+}
 do_rsa1_keygen() {
        if ! test -f $RSA1_KEY ; then
                echo -n "Generating SSH1 RSA host key: "
                if $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' >&/dev/null; then
-                       success "RSA1 key generation"
+                       my_success "RSA1 key generation"
                        echo
                else
-                       failure "RSA1 key generation"
+                       my_failure "RSA1 key generation"
                        echo
                        exit 1
                fi
@@ -40,10 +74,10 @@ do_rsa_keygen() {
        if ! test -f $RSA_KEY ; then
                echo -n "Generating SSH2 RSA host key: "
                if $KEYGEN -q -t rsa -f $RSA_KEY -C '' -N '' >&/dev/null; then
-                       success "RSA key generation"
+                       my_success "RSA key generation"
                        echo
                else
-                       failure "RSA key generation"
+                       my_failure "RSA key generation"
                        echo
                        exit 1
                fi
@@ -53,15 +87,25 @@ do_dsa_keygen() {
        if ! test -f $DSA_KEY ; then
                echo -n "Generating SSH2 DSA host key: "
                if $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N '' >&/dev/null; then
-                       success "DSA key generation"
+                       my_success "DSA key generation"
                        echo
                else
-                       failure "DSA key generation"
+                       my_failure "DSA key generation"
                        echo
                        exit 1
                fi
        fi
 }
+do_restart_sanity_check() {
+       sshd -t
+       RETVAL=$?
+       if [ ! "$RETVAL" = 0 ]; then
+               my_failure "Configuration file or keys"
+               echo
+               exit $RETVAL
+       fi
+}
+
 
 case "$1" in
        start)
@@ -72,13 +116,13 @@ case "$1" in
                
                echo -n "Starting sshd: "
                if [ ! -f $PID_FILE ] ; then
-                       sshd
+                       sshd $OPTIONS
                        RETVAL=$?
                        if [ "$RETVAL" = "0" ] ; then
-                               success "sshd startup"
+                               my_success "sshd startup" "sshd"
                                touch /var/lock/subsys/sshd
                        else
-                               failure "sshd startup"
+                               my_failure "sshd startup" ""
                        fi
                fi
                echo
@@ -93,12 +137,14 @@ case "$1" in
                echo
                ;;
        restart)
+               do_restart_sanity_check
                $0 stop
                $0 start
                RETVAL=$?
                ;;
        condrestart)
                if [ -f /var/lock/subsys/sshd ] ; then
+                       do_restart_sanity_check
                        $0 stop
                        $0 start
                        RETVAL=$?
This page took 0.039871 seconds and 4 git commands to generate.