Imported Upstream version 2.6.0
[debian/amanda] / config / amanda / ssh-security.m4
diff --git a/config/amanda/ssh-security.m4 b/config/amanda/ssh-security.m4
new file mode 100644 (file)
index 0000000..9fd8d97
--- /dev/null
@@ -0,0 +1,71 @@
+# SYNOPSIS
+#
+#   AMANDA_SSH_SECURITY
+#
+# OVERVIEW
+#
+#   Handle configuration for SSH security, implementing the --with-ssh-security
+#   option and checking for the relevant programs and options.
+#
+AC_DEFUN([AMANDA_SSH_SECURITY],
+[
+    SSH_SECURITY=no
+    AC_ARG_WITH(ssh-security,
+        AS_HELP_STRING([--with-ssh-security], 
+                [include SSH authentication]),
+        [
+            case "$withval" in
+                n | no) : ;;
+                y |  ye | yes) SSH_SECURITY=yes ;;
+                *) AC_MSG_ERROR([*** You must not supply an argument to --with-ssh-security.])
+              ;;
+            esac
+        ],
+    )
+
+    if test "x$SSH_SECURITY" = "xyes"; then
+        # find the SSH binary
+        AC_PATH_PROGS(SSH, ssh, , $LOCSYSPATH)
+
+        # see what options we should use
+        AC_ARG_WITH(ssh-options,
+            AS_HELP_STRING([ --with-ssh-options=@<:@OPTIONS@:>@],
+               [Use these ssh options for ssh security; the default should work]),
+            [ SSH_OPTIONS="$withval" ],
+            [ SSH_OPTIONS='' ]
+        )
+
+        case "$SSH_OPTIONS" in
+            y | ye | yes | n | no)
+                AC_MSG_ERROR([*** You must supply an argument to --with-ssh-options.]);;
+            *) : ;;
+        esac
+
+        AC_MSG_CHECKING([SSH options])
+        # if we didn't get SSH options from the user, figure them out for ourselves
+        if test -z "$SSH_OPTIONS"; then
+            case `$SSH -V 2>&1` in
+                OpenSSH*) SSH_OPTIONS='-x -o BatchMode=yes -o PreferredAuthentications=publickey';;
+                *) SSH_OPTIONS='-x -o BatchMode=yes' ;;
+            esac
+        fi
+
+        # now convert that to a comma-separated list of C strings
+        eval "set dummy ${SSH_OPTIONS}"; shift
+        SSH_OPTIONS=''
+       for i in "${@}"; do 
+           quoted="\"`echo "$i" | sed -e 's/\"/\\\"/'`\""
+           SSH_OPTIONS="${SSH_OPTIONS}${SSH_OPTIONS:+, }$quoted"; 
+       done
+        AC_MSG_RESULT($SSH_OPTIONS)
+
+        # finally, make the various outputs for all of this
+        AC_DEFINE(SSH_SECURITY,1,
+                [Define if SSH transport should be enabled. ])
+        AC_DEFINE_UNQUOTED(SSH, "$SSH", 
+                [Path to the SSH binary])
+        AC_DEFINE_UNQUOTED(SSH_OPTIONS, $SSH_OPTIONS, 
+                [Arguments to ssh])
+    fi
+    AM_CONDITIONAL(WANT_SSH_SECURITY, test x"$SSH_SECURITY" = x"yes")
+])