]> granicus.if.org Git - sudo/commitdiff
o Change defaults stuff to put the value right in the struct.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 7 Oct 1999 21:21:08 +0000 (21:21 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Thu, 7 Oct 1999 21:21:08 +0000 (21:21 +0000)
o Implement mailer_flags
o Store syslog stuff both in int and string form.  Setting the string
  form magically updates the int version.
o Add boolean attribute to strings where it makes sense to say !foo

20 files changed:
INSTALL
TODO
auth/aix_auth.c
auth/fwtk.c
auth/pam.c
auth/rfc1938.c
auth/sia.c
auth/sudo_auth.c
check.c
config.h.in
configure
configure.in
defaults.c
defaults.h
find_path.c
getspwuid.c
logging.c
parse.yacc
sudo.c
sudo.tab.c

diff --git a/INSTALL b/INSTALL
index 0ab6909287c70594976eac7d8a765667e3f4fbd0..4e430b2506c139bbdcc7bca2662dc55178526146 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -219,12 +219,12 @@ Special features/options:
        If set, sudo will ignore '.' or '' (current dir) in $PATH.
        The $PATH itself is not modified.
 
-  --with-alertmail
+  --with-mailto
        User that mail from sudo is sent to.  This should go to a sysadmin at
        your site.  The default is "root".
 
   --with-mailsubject
-       Subject of the mail sent to the "alertmail" user. The token "%h"
+       Subject of the mail sent to the "mailto" user. The token "%h"
        will expand to the hostname of the machine.
        Default is "*** SECURITY information for %h ***".
 
@@ -268,7 +268,7 @@ Special features/options:
        Override configure's guess as to the location of sendmail.
 
   --without-sendmail
-       Do not use sendmail to mail messages to the "alertmail" user.
+       Do not use sendmail to mail messages to the "mailto" user.
        Use only if don't run sendmail or the equivalent.
 
   --with-sudoers-mode=mode
diff --git a/TODO b/TODO
index 1af881482f0a548b8f7b28cc1586e0f23c52b7f4..550326e5d20b4e1b6267d62de68e6338307548ce 100644 (file)
--- a/TODO
+++ b/TODO
@@ -74,3 +74,7 @@ TODO list (most will be addressed in sudo 2.0)
 26) Look into %e, %p, %k in parse.lex
 
 27) Document Defaults stuff in sudoers.pod
+
+28) Make syslog stuff work on vanilla ultrix
+
+29) Implement date_format and log_format options.
index b82ab060d82eeac36155f520fb3f59d0d2846bc3..b528ca0564577ec7f95f79b4df8c4d5b0d1b51e1 100644 (file)
@@ -67,7 +67,7 @@ aixauth_verify(pw, prompt, auth)
     char *message, *pass;
     int reenter = 1;
 
-    pass = tgetpass(prompt, sudo_inttable[I_PW_TIMEOUT] * 60, 1);
+    pass = tgetpass(prompt, def_ival(I_PW_TIMEOUT) * 60, 1);
     if (authenticate(pw->pw_name, pass, &reenter, &message) == 0)
        return(AUTH_SUCCESS);
     else
index 0649cd640bf831421b0694294eeb512f29f09a40..2bb6c5a9c17f5729d7017d1d61e44cd19ff5b319 100644 (file)
@@ -117,9 +117,9 @@ fwtk_verify(pw, prompt, auth)
     /* Get the password/response from the user. */
     if (strncmp(resp, "challenge ", 10) == 0) {
        (void) snprintf(buf, sizeof(buf), "%s\nResponse: ", &resp[10]);
-       pass = tgetpass(buf, sudo_inttable[I_PW_TIMEOUT] * 60, 0);
+       pass = tgetpass(buf, def_ival(I_PW_TIMEOUT) * 60, 0);
     } else if (strncmp(resp, "password", 8) == 0) {
-       pass = tgetpass(prompt, sudo_inttable[I_PW_TIMEOUT] * 60, 1);
+       pass = tgetpass(prompt, def_ival(I_PW_TIMEOUT) * 60, 1);
     } else {
        (void) fprintf(stderr, "%s: %s\n", Argv[0], resp);
        return(AUTH_FATAL);
index de002215be29df5908e0691c943277e74ddc865a..376ee96d76423e37d8e471d6f5d48e673c98f0ad 100644 (file)
@@ -143,7 +143,7 @@ sudo_conv(num_msg, msg, response, appdata_ptr)
                if (strcmp(p, "Password: ") && strcmp(p, "Password:"))
                    p = (char *) pm->msg;
                pr->resp = estrdup((char *) tgetpass(p,
-                   sudo_inttable[I_PW_TIMEOUT] * 60, !echo));
+                   def_ival(I_PW_TIMEOUT) * 60, !echo));
                if (*pr->resp == '\0')
                    nil_pw = 1;         /* empty password */
                break;
index cc86a5843c134f4426815b3adeb648e18ef47f75..56b11de5f38abdb240df631768ae9f7ea04b0be2 100644 (file)
@@ -126,7 +126,7 @@ rfc1938_setup(pw, promptp, auth)
        new_prompt = (char *) erealloc(new_prompt, np_size);
     }
 
-    if (sudo_flag_set(FL_LONG_OTP_PROMPT))
+    if (def_flag(I_LONG_OTP_PROMPT))
        (void) sprintf(new_prompt, "%s\n%s", challenge, orig_prompt);
     else
        (void) sprintf(new_prompt, "%.*s [ %s ]:", op_len, orig_prompt,
index 35fd6e371acfcacbf724176e579fecd6bb2ddebc..8c80c1a3b9a2b7888aff66458b8ccf49bdb11b95 100644 (file)
@@ -80,8 +80,8 @@ sudo_collect(timeout, rendition, title, nprompts, prompts)
     switch (rendition) {
        case SIAFORM:
        case SIAONELINER:
-           if (timeout <= 0 || timeout > sudo_inttable[I_PW_TIMEOUT] * 60)
-               timeout = sudo_inttable[I_PW_TIMEOUT] * 60;
+           if (timeout <= 0 || timeout > def_ival(I_PW_TIMEOUT) * 60)
+               timeout = def_ival(I_PW_TIMEOUT) * 60;
            /*
             * Substitute custom prompt if a) the sudo prompt is not "Password:"
             * and b) the SIA prompt is "Password:" (so we know it is safe).
index b8548cbde220727d92060128de0b0b743e7066a6..980cce470b5a8ca25267828becbdef1ac63a9092 100644 (file)
@@ -98,7 +98,7 @@ void
 verify_user(prompt)
     char *prompt;
 {
-    short counter = sudo_inttable[I_PW_TRIES] + 1;
+    short counter = def_ival(I_PW_TRIES) + 1;
     short success = AUTH_FAILURE;
     short status;
     char *p;
@@ -155,7 +155,7 @@ verify_user(prompt)
 #ifdef AUTH_STANDALONE
        p = prompt;
 #else
-       p = (char *) tgetpass(prompt, sudo_inttable[I_PW_TIMEOUT] * 60, 1);
+       p = (char *) tgetpass(prompt, def_ival(I_PW_TIMEOUT) * 60, 1);
        if (!p || *p == '\0')
            nil_pw = 1;
 #endif /* AUTH_STANDALONE */
@@ -182,7 +182,7 @@ verify_user(prompt)
 
        /* Exit loop on nil password, but give it a chance to match first. */
        if (nil_pw) {
-           if (counter == sudo_inttable[I_PW_TRIES])
+           if (counter == def_ival(I_PW_TRIES))
                exit(1);
            else
                break;
@@ -212,8 +212,8 @@ cleanup:
            return;
        case AUTH_FAILURE:
            log_error(NO_MAIL, "%d incorrect password attempt%s",
-               sudo_inttable[I_PW_TRIES] - counter,
-               (sudo_inttable[I_PW_TRIES] - counter == 1) ? "" : "s");
+               def_ival(I_PW_TRIES) - counter,
+               (def_ival(I_PW_TRIES) - counter == 1) ? "" : "s");
        case AUTH_FATAL:
            exit(1);
     }
@@ -227,7 +227,7 @@ pass_warn(fp)
 #ifdef USE_INSULTS
     (void) fprintf(fp, "%s\n", INSULT);
 #else
-    (void) fprintf(fp, "%s\n", sudo_strtable[I_BADPASS_MSG]);
+    (void) fprintf(fp, "%s\n", def_str(I_BADPASS_MSG));
 #endif /* USE_INSULTS */
 }
 
diff --git a/check.c b/check.c
index 9047166497600ac4c3ccb6dce17ad5f92253092f..896178fedd7ccceb7296765b7ad1fbc8a1d94ac2 100644 (file)
--- a/check.c
+++ b/check.c
@@ -100,15 +100,16 @@ check_user()
            lecture();          /* first time through they get a lecture */
 
        /* Expand any escapes in the prompt. */
-       prompt = expand_prompt(user_prompt ? user_prompt : sudo_strtable[I_PASSPROMPT], user_name, user_shost);
+       prompt = expand_prompt(user_prompt ? user_prompt : def_str(I_PASSPROMPT),
+           user_name, user_shost);
 
        verify_user(prompt);
     }
     if (status != TS_ERROR)
        update_timestamp(timestampdir, timestampfile);
-    (void) free(timestampdir);
+    free(timestampdir);
     if (timestampfile)
-       (void) free(timestampfile);
+       free(timestampfile);
 }
 
 /*
@@ -119,7 +120,7 @@ static void
 lecture()
 {
 
-    if (sudo_flag_set(FL_LECTURE)) {
+    if (def_flag(I_LECTURE)) {
        (void) fputs("\n\
 We trust you have received the usual lecture from the local System\n\
 Administrator. It usually boils down to these two things:\n\
@@ -226,10 +227,10 @@ user_is_exempt()
     struct group *grp;
     char **gr_mem;
 
-    if (!sudo_strtable[I_EXEMPT_GRP])
+    if (!def_str(I_EXEMPT_GRP))
        return(FALSE);
 
-    if (!(grp = getgrnam(sudo_strtable[I_EXEMPT_GRP])))
+    if (!(grp = getgrnam(def_str(I_EXEMPT_GRP))))
        return(FALSE);
 
     if (getgid() == grp->gr_gid)
@@ -251,9 +252,9 @@ build_timestamp(timestampdir, timestampfile)
     char **timestampdir;
     char **timestampfile;
 {
-    char *dirparent = sudo_strtable[I_TIMESTAMPDIR];
+    char *dirparent = def_str(I_TIMESTAMPDIR);
 
-    if (sudo_flag_set(FL_TTY_TICKETS)) {
+    if (def_flag(I_TTY_TICKETS)) {
        char *p;
 
        if ((p = strrchr(user_tty, '/')))
@@ -285,7 +286,7 @@ timestamp_status(timestampdir, timestampfile, user, make_dirs)
 {
     struct stat sb;
     time_t now;
-    char *dirparent = sudo_strtable[I_TIMESTAMPDIR];
+    char *dirparent = def_str(I_TIMESTAMPDIR);
     int status = TS_ERROR;             /* assume the worst */
 
     /*
@@ -412,13 +413,13 @@ timestamp_status(timestampdir, timestampfile, user, make_dirs)
      */
     if (status == TS_OLD) {
        now = time(NULL);
-       if (sudo_inttable[I_TS_TIMEOUT] && 
-           now - sb.st_mtime < 60 * sudo_inttable[I_TS_TIMEOUT]) {
+       if (def_ival(I_TS_TIMEOUT) && 
+           now - sb.st_mtime < 60 * def_ival(I_TS_TIMEOUT)) {
            /*
             * Check for bogus time on the stampfile.  The clock may
             * have been set back or someone could be trying to spoof us.
             */
-           if (sb.st_mtime > now + 60 * sudo_inttable[I_TS_TIMEOUT] * 2) {
+           if (sb.st_mtime > now + 60 * def_ival(I_TS_TIMEOUT) * 2) {
                log_error(NO_EXIT,
                    "timestamp too far in the future: %20.20s",
                    4 + ctime(&sb.st_mtime));
@@ -468,7 +469,7 @@ remove_timestamp(remove)
        }
     }
 
-    (void) free(timestampdir);
+    free(timestampdir);
     if (timestampfile)
-       (void) free(timestampfile);
+       free(timestampfile);
 }
index 5e113aa2952cc7e50df27e87219a6d0e041ffa65..2af570d997cec4158602f54c436a103c09045712 100644 (file)
 /* Define if you want to use execv() instead of execvp().  */
 #undef USE_EXECV
 
-/* Define if you a different ticket file for each tty.  */
-#undef USE_TTY_TICKETS
-
-/* Define if you want to insult the user for entering an incorrect password.  */
-#undef USE_INSULTS
-
-/* Define if you want the insults from the "classic" version sudo.  */
-#undef CLASSIC_INSULTS
-
-/* Define if you want 2001-like insults.  */
-#undef HAL_INSULTS
-
-/* Define if you want insults from the "Goon Show" */
-#undef GOONS_INSULTS
-
-/* Define if you want insults culled from the twisted minds of CSOps.  */
-#undef CSOPS_INSULTS
-
-/* Define to override the user's path with a builtin one.  */
-#undef SECURE_PATH
-
-/* Define if you use S/Key.  */
-#undef HAVE_SKEY
-
-/* Define if you use NRL OPIE.  */
-#undef HAVE_OPIE
-
-/* Define if you want a two line OTP (skey/opie) prompt.  */
-#undef LONG_OTP_PROMPT
-
-/* Define if you use SecurID.  */
-#undef HAVE_SECURID
-
-/* Define if you use AIX general authentication.  */
-#undef HAVE_AUTHENTICATE
-
-/* Define if you use Kerberos IV or Kerberos V < 1.1.  */
-#undef HAVE_KERB4
-  
-/* Define if you use Kerberos V version 1.1 or higher.  */
-#undef HAVE_KERB5
-
-/* Define if you use SIA.  */
-#undef HAVE_SIA
-
-/* Define if you use PAM.  */
-#undef HAVE_PAM
-
-/* Define if you use AFS.  */
-#undef HAVE_AFS
-
-/* Define if you use OSF DCE.  */
-#undef HAVE_DCE
-
-/* Define if you use the FWTK authsrv daemon.  */
-#undef HAVE_FWTK
-
 /* Define if you have POSIX signals.  */
 #undef HAVE_SIGACTION
 #ifdef HAVE_SIGACTION
 /* Define if your struct sockadr has an sa_len field.  */
 #undef HAVE_SA_LEN
 
+/* Define if you want visudo to honor EDITOR and VISUAL env variables.  */
+#undef ENV_EDITOR
+
 /* Define to avoid using the passwd/shadow file for authentication.  */
 #undef WITHOUT_PASSWD
 
-/* Define if you don't want sudo to prompt for a password by default.  */
-#undef NO_AUTHENTICATION
-
 /* Define to void if your C compiler fully groks void, else char */
 #undef VOID
 
 /* and syslog(3) returns non-zero to denote failure */
 #undef BROKEN_SYSLOG
 
+/* Define if the code in interfaces.c does not compile for you.  */
+#undef STUB_LOAD_INTERFACES
+
+/*
+ * Defaults for options.  These may be overridden via a "Defaults" line
+ * in the sudoers file.
+ */
+
+/* Define if you a different ticket file for each tty.  */
+#undef USE_TTY_TICKETS
+
+/* Define if you want to insult the user for entering an incorrect password.  */
+#undef USE_INSULTS
+
+/* Define if you want the insults from the "classic" version sudo.  */
+#undef CLASSIC_INSULTS
+
+/* Define if you want 2001-like insults.  */
+#undef HAL_INSULTS
+
+/* Define if you want insults from the "Goon Show" */
+#undef GOONS_INSULTS
+
+/* Define if you want insults culled from the twisted minds of CSOps.  */
+#undef CSOPS_INSULTS
+
+/* Define to override the user's path with a builtin one.  */
+#undef SECURE_PATH
+
+/* Define if you want a two line OTP (skey/opie) prompt.  */
+#undef LONG_OTP_PROMPT
+
 /* The umask that the root-run prog should use */
 #undef SUDO_UMASK
 
 #undef NO_ROOT_SUDO
 
 /* Define to be the user that gets sudo mail.  */
-#undef ALERTMAIL
+#undef MAILTO
 
-/* Define to be the subject of the mail sent to ALERTMAIL by sudo.  */
+/* Define to be the subject of the mail sent to MAILTO by sudo.  */
 #undef MAILSUBJECT
 
 /* Define to be the message given for a bad password.  */
 /* Define to be the password prompt.  */
 #undef PASSPROMPT
 
-/* Define if you want visudo to honor EDITOR and VISUAL env variables.  */
-#undef ENV_EDITOR
-
 /* Define to SLOG_SYSLOG, SLOG_FILE, or SLOG_BOTH */
 #undef LOGGING
 
 /* Define if you want sudo to set $HOME in shell mode.  */
 #undef SHELL_SETS_HOME
 
-/* Define if the code in interfaces.c does not compile for you.  */
-#undef STUB_LOAD_INTERFACES
+/* Define if you don't want sudo to prompt for a password by default.  */
+#undef NO_AUTHENTICATION
+
+
+/*
+ * Authentication methods.
+ */
+
+/* Define if you use S/Key.  */
+#undef HAVE_SKEY
+
+/* Define if you use NRL OPIE.  */
+#undef HAVE_OPIE
+
+/* Define if you use SecurID.  */
+#undef HAVE_SECURID
+
+/* Define if you use AIX general authentication.  */
+#undef HAVE_AUTHENTICATE
+
+/* Define if you use Kerberos IV or Kerberos V < 1.1.  */
+#undef HAVE_KERB4
+  
+/* Define if you use Kerberos V version 1.1 or higher.  */
+#undef HAVE_KERB5
+
+/* Define if you use SIA.  */
+#undef HAVE_SIA
+
+/* Define if you use PAM.  */
+#undef HAVE_PAM
+
+/* Define if you use AFS.  */
+#undef HAVE_AFS
+
+/* Define if you use OSF DCE.  */
+#undef HAVE_DCE
+
+/* Define if you use the FWTK authsrv daemon.  */
+#undef HAVE_FWTK
+
 
 /**********  You probably don't want to modify anything below here  ***********/
 
index 7887fc8721abd53e13a5db880d761eb809eec55a..c8d186d6fb25ae4efa5550552f6010214fccb76e 100755 (executable)
--- a/configure
+++ b/configure
@@ -13,6 +13,8 @@ ac_default_prefix=/usr/local
 # Any additions from configure.in:
 ac_help="$ac_help
   --with-otp-only         deprecated"
+ac_help="$ac_help
+  --with-alertmail        deprecated"
 ac_help="$ac_help
   --with-CC               C compiler to use"
 ac_help="$ac_help
@@ -54,9 +56,9 @@ ac_help="$ac_help
 ac_help="$ac_help
   --with-logging          log via syslog, file, or both"
 ac_help="$ac_help
-  --with-logfac           syslog facility to log with (default is LOG_LOCAL2)"
+  --with-logfac           syslog facility to log with (default is local2)"
 ac_help="$ac_help
-  --with-goodpri          syslog priority for commands (def is LOG_NOTICE)"
+  --with-goodpri          syslog priority for commands (def is notice)"
 ac_help="$ac_help
   --with-badpri           syslog priority for failures (def is LOG_ALERT)"
 ac_help="$ac_help
@@ -66,7 +68,7 @@ ac_help="$ac_help
 ac_help="$ac_help
   --with-ignore-dot       ignore '.' in the PATH"
 ac_help="$ac_help
-  --with-alertmail        who should get sudo mail (default is "root")"
+  --with-mailto           who should get sudo mail (default is "root")"
 ac_help="$ac_help
   --with-mailsubject      subject of sudo mail"
 ac_help="$ac_help
@@ -698,6 +700,21 @@ esac
 fi
 
 
+# Check whether --with-alertmail or --without-alertmail was given.
+if test "${with_alertmail+set}" = set; then
+  withval="$with_alertmail"
+  case $with_alertmail in
+    *)         with_mailto="$with_alertmail"
+               cat >> confdefs.h <<\EOF
+#define WITHOUT_PASSWD 1
+EOF
+
+               echo "configure: warning: --with-alertmail option deprecated, treating as --mailto" 1>&2
+               ;;
+esac
+fi
+
+
 
 # Check whether --with-CC or --without-CC was given.
 if test "${with_CC+set}" = set; then
@@ -822,7 +839,7 @@ if test "${with_passwd+set}" = set; then
 EOF
 
                echo $ac_n "checking whether to use shadow/passwd file authentication""... $ac_c" 1>&6
-echo "configure:826: checking whether to use shadow/passwd file authentication" >&5
+echo "configure:843: checking whether to use shadow/passwd file authentication" >&5
                echo "$ac_t""no" 1>&6
                ;;
     *)         echo "Sorry, --with-passwd does not take an argument."
@@ -845,7 +862,7 @@ if test "${with_skey+set}" = set; then
 EOF
 
                echo $ac_n "checking whether to try S/Key authentication""... $ac_c" 1>&6
-echo "configure:849: checking whether to try S/Key authentication" >&5
+echo "configure:866: checking whether to try S/Key authentication" >&5
                echo "$ac_t""yes" 1>&6
                AUTH_OBJS="${AUTH_OBJS} rfc1938.o"
                ;;
@@ -869,7 +886,7 @@ if test "${with_opie+set}" = set; then
 EOF
 
                echo $ac_n "checking whether to try NRL OPIE authentication""... $ac_c" 1>&6
-echo "configure:873: checking whether to try NRL OPIE authentication" >&5
+echo "configure:890: checking whether to try NRL OPIE authentication" >&5
                echo "$ac_t""yes" 1>&6
                AUTH_OBJS="${AUTH_OBJS} rfc1938.o"
                ;;
@@ -889,7 +906,7 @@ if test "${with_long_otp_prompt+set}" = set; then
 EOF
 
                echo $ac_n "checking whether to use a two line prompt for OTP authentication""... $ac_c" 1>&6
-echo "configure:893: checking whether to use a two line prompt for OTP authentication" >&5
+echo "configure:910: checking whether to use a two line prompt for OTP authentication" >&5
                echo "$ac_t""yes" 1>&6
                ;;
     no)                ;;
@@ -910,7 +927,7 @@ if test "${with_SecurID+set}" = set; then
 EOF
 
                echo $ac_n "checking whether to use SecurID for authentication""... $ac_c" 1>&6
-echo "configure:914: checking whether to use SecurID for authentication" >&5
+echo "configure:931: checking whether to use SecurID for authentication" >&5
                echo "$ac_t""yes" 1>&6
                with_passwd=no
                AUTH_OBJS="securid.o"
@@ -928,7 +945,7 @@ if test "${with_fwtk+set}" = set; then
 EOF
 
                echo $ac_n "checking whether to use FWTK AuthSRV for authentication""... $ac_c" 1>&6
-echo "configure:932: checking whether to use FWTK AuthSRV for authentication" >&5
+echo "configure:949: checking whether to use FWTK AuthSRV for authentication" >&5
                echo "$ac_t""yes" 1>&6
                with_passwd=no
                AUTH_OBJS="fwtk.o"
@@ -939,7 +956,7 @@ echo "configure:932: checking whether to use FWTK AuthSRV for authentication" >&
 EOF
 
                echo $ac_n "checking whether to use FWTK AuthSRV for authentication""... $ac_c" 1>&6
-echo "configure:943: checking whether to use FWTK AuthSRV for authentication" >&5
+echo "configure:960: checking whether to use FWTK AuthSRV for authentication" >&5
                echo "$ac_t""yes" 1>&6
                SUDO_LDFLAGS="${SUDO_LDFLAGS} -L${with_fwtk}"
                CPPFLAGS="${CPPFLAGS} -I${with_fwtk}"
@@ -956,7 +973,7 @@ if test "${with_kerb4+set}" = set; then
   withval="$with_kerb4"
   case $with_kerb4 in
     yes)       echo $ac_n "checking whether to try Kerberos 4 authentication""... $ac_c" 1>&6
-echo "configure:960: checking whether to try Kerberos 4 authentication" >&5
+echo "configure:977: checking whether to try Kerberos 4 authentication" >&5
                echo "$ac_t""yes" 1>&6
                ;;
     no)                ;;
@@ -972,7 +989,7 @@ if test "${with_kerb5+set}" = set; then
   withval="$with_kerb5"
   case $with_kerb5 in
     yes)       echo $ac_n "checking whether to try Kerberos 5 authentication""... $ac_c" 1>&6
-echo "configure:976: checking whether to try Kerberos 5 authentication" >&5
+echo "configure:993: checking whether to try Kerberos 5 authentication" >&5
                echo "$ac_t""yes" 1>&6
                ;;
     no)                ;;
@@ -992,7 +1009,7 @@ if test "${with_authenticate+set}" = set; then
 EOF
 
                echo $ac_n "checking whether to use AIX general authentication""... $ac_c" 1>&6
-echo "configure:996: checking whether to use AIX general authentication" >&5
+echo "configure:1013: checking whether to use AIX general authentication" >&5
                echo "$ac_t""yes" 1>&6
                with_passwd=no
                AUTH_OBJS="aix_auth.o"
@@ -1014,7 +1031,7 @@ if test "${with_pam+set}" = set; then
 EOF
 
                echo $ac_n "checking whether to use PAM authentication""... $ac_c" 1>&6
-echo "configure:1018: checking whether to use PAM authentication" >&5
+echo "configure:1035: checking whether to use PAM authentication" >&5
                echo "$ac_t""yes" 1>&6
                with_passwd=no
                AUTH_OBJS="pam.o"
@@ -1036,7 +1053,7 @@ if test "${with_AFS+set}" = set; then
 EOF
 
                echo $ac_n "checking whether to try AFS (kerberos) authentication""... $ac_c" 1>&6
-echo "configure:1040: checking whether to try AFS (kerberos) authentication" >&5
+echo "configure:1057: checking whether to try AFS (kerberos) authentication" >&5
                echo "$ac_t""yes" 1>&6
                AUTH_OBJS="${AUTH_OBJS} afs.o"
                ;;
@@ -1057,7 +1074,7 @@ if test "${with_DCE+set}" = set; then
 EOF
 
                echo $ac_n "checking whether to try DCE (kerberos) authentication""... $ac_c" 1>&6
-echo "configure:1061: checking whether to try DCE (kerberos) authentication" >&5
+echo "configure:1078: checking whether to try DCE (kerberos) authentication" >&5
                echo "$ac_t""yes" 1>&6
                AUTH_OBJS="${AUTH_OBJS} dce.o"
                ;;
@@ -1070,7 +1087,7 @@ fi
 
 
 echo $ac_n "checking whether to lecture users the first time they run sudo""... $ac_c" 1>&6
-echo "configure:1074: checking whether to lecture users the first time they run sudo" >&5
+echo "configure:1091: checking whether to lecture users the first time they run sudo" >&5
 # Check whether --with-lecture or --without-lecture was given.
 if test "${with_lecture+set}" = set; then
   withval="$with_lecture"
@@ -1093,7 +1110,7 @@ fi
 
 
 echo $ac_n "checking whether sudo should log via syslog or to a file""... $ac_c" 1>&6
-echo "configure:1097: checking whether sudo should log via syslog or to a file" >&5
+echo "configure:1114: checking whether sudo should log via syslog or to a file" >&5
 # Check whether --with-logging or --without-logging was given.
 if test "${with_logging+set}" = set; then
   withval="$with_logging"
@@ -1135,7 +1152,7 @@ fi
 
 
 echo $ac_n "checking which syslog facility sudo should log with""... $ac_c" 1>&6
-echo "configure:1139: checking which syslog facility sudo should log with" >&5
+echo "configure:1156: checking which syslog facility sudo should log with" >&5
 # Check whether --with-logfac or --without-logfac was given.
 if test "${with_logfac+set}" = set; then
   withval="$with_logfac"
@@ -1147,22 +1164,22 @@ if test "${with_logfac+set}" = set; then
                exit 1
                ;;
     *)         cat >> confdefs.h <<EOF
-#define LOGFAC $with_logfac
+#define LOGFAC "$with_logfac"
 EOF
 
                echo "$ac_t""$with_logfac" 1>&6
                ;;
 esac
 else
-  cat >> confdefs.h <<\EOF
-#define LOGFAC LOG_LOCAL2
+  cat >> confdefs.h <<EOF
+#define LOGFAC "local2"
 EOF
- echo "$ac_t""LOG_LOCAL2" 1>&6
+ echo "$ac_t"""local2"" 1>&6
 fi
 
 
 echo $ac_n "checking at which syslog priority to log commands""... $ac_c" 1>&6
-echo "configure:1166: checking at which syslog priority to log commands" >&5
+echo "configure:1183: checking at which syslog priority to log commands" >&5
 # Check whether --with-goodpri or --without-goodpri was given.
 if test "${with_goodpri+set}" = set; then
   withval="$with_goodpri"
@@ -1174,22 +1191,22 @@ if test "${with_goodpri+set}" = set; then
                exit 1
                ;;
     *)         cat >> confdefs.h <<EOF
-#define LOGFAC $with_goodpri
+#define LOGFAC "$with_goodpri"
 EOF
 
                echo "$ac_t""$with_goodpri" 1>&6
                ;;
 esac
 else
-  cat >> confdefs.h <<\EOF
-#define PRI_SUCCESS LOG_NOTICE
+  cat >> confdefs.h <<EOF
+#define PRI_SUCCESS "notice"
 EOF
- echo "$ac_t""LOG_NOTICE" 1>&6
+ echo "$ac_t"""notice"" 1>&6
 fi
 
 
 echo $ac_n "checking at which syslog priority to log failures""... $ac_c" 1>&6
-echo "configure:1193: checking at which syslog priority to log failures" >&5
+echo "configure:1210: checking at which syslog priority to log failures" >&5
 # Check whether --with-badpri or --without-badpri was given.
 if test "${with_badpri+set}" = set; then
   withval="$with_badpri"
@@ -1201,17 +1218,17 @@ if test "${with_badpri+set}" = set; then
                exit 1
                ;;
     *)         cat >> confdefs.h <<EOF
-#define LOGFAC $with_badpri
+#define LOGFAC "$with_badpri"
 EOF
 
                echo "$ac_t""$with_badpri" 1>&6
                ;;
 esac
 else
-  cat >> confdefs.h <<\EOF
-#define PRI_FAILURE LOG_ALERT
+  cat >> confdefs.h <<EOF
+#define PRI_FAILURE "alert"
 EOF
- echo "$ac_t""LOG_ALERT" 1>&6
+ echo "$ac_t"""alert"" 1>&6
 fi
 
 
@@ -1230,7 +1247,7 @@ fi
 
 
 echo $ac_n "checking how long a line in the log file should be""... $ac_c" 1>&6
-echo "configure:1234: checking how long a line in the log file should be" >&5
+echo "configure:1251: checking how long a line in the log file should be" >&5
 # Check whether --with-loglen or --without-loglen was given.
 if test "${with_loglen+set}" = set; then
   withval="$with_loglen"
@@ -1260,7 +1277,7 @@ fi
 
 
 echo $ac_n "checking whether sudo should ignore '.' or '' in \$PATH""... $ac_c" 1>&6
-echo "configure:1264: checking whether sudo should ignore '.' or '' in \$PATH" >&5
+echo "configure:1281: checking whether sudo should ignore '.' or '' in \$PATH" >&5
 # Check whether --with-ignore-dot or --without-ignore-dot was given.
 if test "${with_ignore_dot+set}" = set; then
   withval="$with_ignore_dot"
@@ -1283,26 +1300,26 @@ fi
 
 
 echo $ac_n "checking who should get the mail that sudo sends""... $ac_c" 1>&6
-echo "configure:1287: checking who should get the mail that sudo sends" >&5
-# Check whether --with-alertmail or --without-alertmail was given.
-if test "${with_alertmail+set}" = set; then
-  withval="$with_alertmail"
-  case $with_alertmail in  
-    yes)       echo "Must give --with-alertmail an argument."
+echo "configure:1304: checking who should get the mail that sudo sends" >&5
+# Check whether --with-mailto or --without-mailto was given.
+if test "${with_mailto+set}" = set; then
+  withval="$with_mailto"
+  case $with_mailto in  
+    yes)       echo "Must give --with-mailto an argument."
                exit 1
                ;;
-    no)                echo "Sorry, --without-alertmail not supported."
+    no)                echo "Sorry, --without-mailto not supported."
                ;;
     *)         cat >> confdefs.h <<EOF
-#define ALERTMAIL "$with_alertmail"
+#define MAILTO "$with_mailto"
 EOF
 
-               echo "$ac_t""$with_alertmail" 1>&6
+               echo "$ac_t""$with_mailto" 1>&6
                ;;
 esac
 else
   cat >> confdefs.h <<\EOF
-#define ALERTMAIL "root"
+#define MAILTO "root"
 EOF
  echo "$ac_t""root" 1>&6
 fi
@@ -1322,7 +1339,7 @@ if test "${with_mailsubject+set}" = set; then
 EOF
 
                echo $ac_n "checking sudo mail subject""... $ac_c" 1>&6
-echo "configure:1326: checking sudo mail subject" >&5
+echo "configure:1343: checking sudo mail subject" >&5
                echo "$ac_t""Using alert mail subject: $with_mailsubject" 1>&6
                ;;
 esac
@@ -1335,7 +1352,7 @@ fi
 
 
 echo $ac_n "checking whether to send mail when a user is not in sudoers""... $ac_c" 1>&6
-echo "configure:1339: checking whether to send mail when a user is not in sudoers" >&5
+echo "configure:1356: checking whether to send mail when a user is not in sudoers" >&5
 # Check whether --with-mail-if-no-user or --without-mail-if-no-user was given.
 if test "${with_mail_if_no_user+set}" = set; then
   withval="$with_mail_if_no_user"
@@ -1361,7 +1378,7 @@ fi
 
 
 echo $ac_n "checking whether to send mail when user listed but not for this host""... $ac_c" 1>&6
-echo "configure:1365: checking whether to send mail when user listed but not for this host" >&5
+echo "configure:1382: checking whether to send mail when user listed but not for this host" >&5
 # Check whether --with-mail-if-no-host or --without-mail-if-no-host was given.
 if test "${with_mail_if_no_host+set}" = set; then
   withval="$with_mail_if_no_host"
@@ -1384,7 +1401,7 @@ fi
 
 
 echo $ac_n "checking whether to send mail when a user tries a disallowed command""... $ac_c" 1>&6
-echo "configure:1388: checking whether to send mail when a user tries a disallowed command" >&5
+echo "configure:1405: checking whether to send mail when a user tries a disallowed command" >&5
 # Check whether --with-mail-if-noperms or --without-mail-if-noperms was given.
 if test "${with_mail_if_noperms+set}" = set; then
   withval="$with_mail_if_noperms"
@@ -1407,7 +1424,7 @@ fi
 
 
 echo $ac_n "checking for bad password prompt""... $ac_c" 1>&6
-echo "configure:1411: checking for bad password prompt" >&5
+echo "configure:1428: checking for bad password prompt" >&5
 # Check whether --with-passprompt or --without-passprompt was given.
 if test "${with_passprompt+set}" = set; then
   withval="$with_passprompt"
@@ -1433,7 +1450,7 @@ fi
 
 
 echo $ac_n "checking for bad password message""... $ac_c" 1>&6
-echo "configure:1437: checking for bad password message" >&5
+echo "configure:1454: checking for bad password message" >&5
 # Check whether --with-badpass-message or --without-badpass-message was given.
 if test "${with_badpass_message+set}" = set; then
   withval="$with_badpass_message"
@@ -1459,7 +1476,7 @@ fi
 
 
 echo $ac_n "checking whether to expect fully qualified hosts in sudoers""... $ac_c" 1>&6
-echo "configure:1463: checking whether to expect fully qualified hosts in sudoers" >&5
+echo "configure:1480: checking whether to expect fully qualified hosts in sudoers" >&5
 # Check whether --with-fqdn or --without-fqdn was given.
 if test "${with_fqdn+set}" = set; then
   withval="$with_fqdn"
@@ -1571,7 +1588,7 @@ fi
 
 
 echo $ac_n "checking for umask programs should be run with""... $ac_c" 1>&6
-echo "configure:1575: checking for umask programs should be run with" >&5
+echo "configure:1592: checking for umask programs should be run with" >&5
 # Check whether --with-umask or --without-umask was given.
 if test "${with_umask+set}" = set; then
   withval="$with_umask"
@@ -1600,7 +1617,7 @@ fi
 
 
 echo $ac_n "checking for default user to run commands as""... $ac_c" 1>&6
-echo "configure:1604: checking for default user to run commands as" >&5
+echo "configure:1621: checking for default user to run commands as" >&5
 # Check whether --with-runas-default or --without-runas-default was given.
 if test "${with_runas_default+set}" = set; then
   withval="$with_runas_default"
@@ -1641,7 +1658,7 @@ if test "${with_exempt+set}" = set; then
 EOF
 
                echo $ac_n "checking for group to be exempt from password""... $ac_c" 1>&6
-echo "configure:1645: checking for group to be exempt from password" >&5
+echo "configure:1662: checking for group to be exempt from password" >&5
                echo "$ac_t""$with_exempt" 1>&6
                ;;
 esac
@@ -1649,7 +1666,7 @@ fi
 
 
 echo $ac_n "checking for editor that visudo should use""... $ac_c" 1>&6
-echo "configure:1653: checking for editor that visudo should use" >&5
+echo "configure:1670: checking for editor that visudo should use" >&5
 # Check whether --with-editor or --without-editor was given.
 if test "${with_editor+set}" = set; then
   withval="$with_editor"
@@ -1676,7 +1693,7 @@ fi
 
 
 echo $ac_n "checking whether to obey EDITOR and VISUAL environment variables""... $ac_c" 1>&6
-echo "configure:1680: checking whether to obey EDITOR and VISUAL environment variables" >&5
+echo "configure:1697: checking whether to obey EDITOR and VISUAL environment variables" >&5
 # Check whether --with-env-editor or --without-env-editor was given.
 if test "${with_env_editor+set}" = set; then
   withval="$with_env_editor"
@@ -1699,7 +1716,7 @@ fi
 
 
 echo $ac_n "checking number of tries a user gets to enter their password""... $ac_c" 1>&6
-echo "configure:1703: checking number of tries a user gets to enter their password" >&5
+echo "configure:1720: checking number of tries a user gets to enter their password" >&5
 # Check whether --with-passwd-tries or --without-passwd-tries was given.
 if test "${with_passwd_tries+set}" = set; then
   withval="$with_passwd_tries"
@@ -1732,7 +1749,7 @@ fi
 
 
 echo $ac_n "checking time in minutes after which sudo will ask for a password again""... $ac_c" 1>&6
-echo "configure:1736: checking time in minutes after which sudo will ask for a password again" >&5
+echo "configure:1753: checking time in minutes after which sudo will ask for a password again" >&5
 # Check whether --with-timeout or --without-timeout was given.
 if test "${with_timeout+set}" = set; then
   withval="$with_timeout"
@@ -1768,7 +1785,7 @@ fi
 
 
 echo $ac_n "checking time in minutes after the password prompt will time out""... $ac_c" 1>&6
-echo "configure:1772: checking time in minutes after the password prompt will time out" >&5
+echo "configure:1789: checking time in minutes after the password prompt will time out" >&5
 # Check whether --with-password-timeout or --without-password-timeout was given.
 if test "${with_password_timeout+set}" = set; then
   withval="$with_password_timeout"
@@ -1804,7 +1821,7 @@ fi
 
 
 echo $ac_n "checking whether to use execvp or execv""... $ac_c" 1>&6
-echo "configure:1808: checking whether to use execvp or execv" >&5
+echo "configure:1825: checking whether to use execvp or execv" >&5
 # Check whether --with-execv or --without-execv was given.
 if test "${with_execv+set}" = set; then
   withval="$with_execv"
@@ -1827,7 +1844,7 @@ fi
 
 
 echo $ac_n "checking whether to use per-tty ticket files""... $ac_c" 1>&6
-echo "configure:1831: checking whether to use per-tty ticket files" >&5
+echo "configure:1848: checking whether to use per-tty ticket files" >&5
 # Check whether --with-tty-tickets or --without-tty-tickets was given.
 if test "${with_tty_tickets+set}" = set; then
   withval="$with_tty_tickets"
@@ -1850,7 +1867,7 @@ fi
 
 
 echo $ac_n "checking whether to include insults""... $ac_c" 1>&6
-echo "configure:1854: checking whether to include insults" >&5
+echo "configure:1871: checking whether to include insults" >&5
 # Check whether --with-insults or --without-insults was given.
 if test "${with_insults+set}" = set; then
   withval="$with_insults"
@@ -1961,7 +1978,7 @@ fi
 
 if test "$with_insults" = "yes"; then
     echo $ac_n "checking which insult sets to include""... $ac_c" 1>&6
-echo "configure:1965: checking which insult sets to include" >&5
+echo "configure:1982: checking which insult sets to include" >&5
     i=""
     test "$with_goons_insults" = "yes" && i="goons ${i}"
     test "$with_hal_insults" = "yes" && i="hal ${i}"
@@ -1971,7 +1988,7 @@ echo "configure:1965: checking which insult sets to include" >&5
 fi
 
 echo $ac_n "checking whether to override the user's path""... $ac_c" 1>&6
-echo "configure:1975: checking whether to override the user's path" >&5
+echo "configure:1992: checking whether to override the user's path" >&5
 # Check whether --with-secure-path or --without-secure-path was given.
 if test "${with_secure_path+set}" = set; then
   withval="$with_secure_path"
@@ -1997,7 +2014,7 @@ fi
 
 
 echo $ac_n "checking whether to get ip addresses from the network interfaces""... $ac_c" 1>&6
-echo "configure:2001: checking whether to get ip addresses from the network interfaces" >&5
+echo "configure:2018: checking whether to get ip addresses from the network interfaces" >&5
 # Check whether --with-interfaces or --without-interfaces was given.
 if test "${with_interfaces+set}" = set; then
   withval="$with_interfaces"
@@ -2021,7 +2038,7 @@ fi
 
 
 echo $ac_n "checking whether to do user authentication by default""... $ac_c" 1>&6
-echo "configure:2025: checking whether to do user authentication by default" >&5
+echo "configure:2042: checking whether to do user authentication by default" >&5
 # Check whether --enable-authentication or --disable-authentication was given.
 if test "${enable_authentication+set}" = set; then
   enableval="$enable_authentication"
@@ -2045,7 +2062,7 @@ fi
 
 
 echo $ac_n "checking whether to disable shadow password support""... $ac_c" 1>&6
-echo "configure:2049: checking whether to disable shadow password support" >&5
+echo "configure:2066: checking whether to disable shadow password support" >&5
 # Check whether --enable-shadow or --disable-shadow was given.
 if test "${enable_shadow+set}" = set; then
   enableval="$enable_shadow"
@@ -2066,7 +2083,7 @@ fi
 
 
 echo $ac_n "checking whether root should be allowed to use sudo""... $ac_c" 1>&6
-echo "configure:2070: checking whether root should be allowed to use sudo" >&5
+echo "configure:2087: checking whether root should be allowed to use sudo" >&5
 # Check whether --enable-root-sudo or --disable-root-sudo was given.
 if test "${enable_root_sudo+set}" = set; then
   enableval="$enable_root_sudo"
@@ -2090,7 +2107,7 @@ fi
 
 
 echo $ac_n "checking whether to log the hostname in the log file""... $ac_c" 1>&6
-echo "configure:2094: checking whether to log the hostname in the log file" >&5
+echo "configure:2111: checking whether to log the hostname in the log file" >&5
 # Check whether --enable-log-host or --disable-log-host was given.
 if test "${enable_log_host+set}" = set; then
   enableval="$enable_log_host"
@@ -2114,7 +2131,7 @@ fi
 
 
 echo $ac_n "checking whether to invoke a shell if sudo is given no arguments""... $ac_c" 1>&6
-echo "configure:2118: checking whether to invoke a shell if sudo is given no arguments" >&5
+echo "configure:2135: checking whether to invoke a shell if sudo is given no arguments" >&5
 # Check whether --enable-noargs-shell or --disable-noargs-shell was given.
 if test "${enable_noargs_shell+set}" = set; then
   enableval="$enable_noargs_shell"
@@ -2138,7 +2155,7 @@ fi
 
 
 echo $ac_n "checking whether to set \$HOME to target user in shell mode""... $ac_c" 1>&6
-echo "configure:2142: checking whether to set \$HOME to target user in shell mode" >&5
+echo "configure:2159: checking whether to set \$HOME to target user in shell mode" >&5
 # Check whether --enable-shell-sets-home or --disable-shell-sets-home was given.
 if test "${enable_shell_sets_home+set}" = set; then
   enableval="$enable_shell_sets_home"
@@ -2162,7 +2179,7 @@ fi
 
 
 echo $ac_n "checking whether to disable 'command not found' messages""... $ac_c" 1>&6
-echo "configure:2166: checking whether to disable 'command not found' messages" >&5
+echo "configure:2183: checking whether to disable 'command not found' messages" >&5
 # Check whether --enable-path_info or --disable-path_info was given.
 if test "${enable_path_info+set}" = set; then
   enableval="$enable_path_info"
@@ -2188,7 +2205,7 @@ fi
 # Extract the first word of "egrep", so it can be a program name with args.
 set dummy egrep; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2192: checking for $ac_word" >&5
+echo "configure:2209: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_EGREPPROG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2223,7 +2240,7 @@ cross_compiling="no"
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2227: checking for $ac_word" >&5
+echo "configure:2244: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2252,7 +2269,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2256: checking for $ac_word" >&5
+echo "configure:2273: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2300,7 +2317,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:2304: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:2321: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -2310,11 +2327,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS
 cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext <<EOF
-#line 2314 "configure"
+#line 2331 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:2318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -2334,12 +2351,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:2338: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2355: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:2343: checking whether we are using GNU C" >&5
+echo "configure:2360: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2348,7 +2365,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2352: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2369: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -2363,7 +2380,7 @@ if test $ac_cv_prog_gcc = yes; then
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:2367: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2384: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2393,7 +2410,7 @@ fi
 ac_cv_prog_cc_cross="no"
 cross_compiling="no"
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2397: checking how to run the C preprocessor" >&5
+echo "configure:2414: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -2408,13 +2425,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 2412 "configure"
+#line 2429 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2418: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2435: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
@@ -2425,13 +2442,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 2429 "configure"
+#line 2446 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2435: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2452: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
@@ -2454,7 +2471,7 @@ fi
 echo "$ac_t""$CPP" 1>&6
 
 echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
-echo "configure:2458: checking for POSIXized ISC" >&5
+echo "configure:2475: checking for POSIXized ISC" >&5
 if test -d /etc/conf/kconfig.d &&
   grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
 then
@@ -2482,7 +2499,7 @@ fi
 # Extract the first word of "uname", so it can be a program name with args.
 set dummy uname; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2486: checking for $ac_word" >&5
+echo "configure:2503: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_UNAMEPROG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2510,7 +2527,7 @@ fi
 # Extract the first word of "tr", so it can be a program name with args.
 set dummy tr; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2514: checking for $ac_word" >&5
+echo "configure:2531: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_TRPROG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2538,7 +2555,7 @@ fi
 # Extract the first word of "sed", so it can be a program name with args.
 set dummy sed; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2542: checking for $ac_word" >&5
+echo "configure:2559: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_SEDPROG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2566,7 +2583,7 @@ fi
 # Extract the first word of "nroff", so it can be a program name with args.
 set dummy nroff; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2570: checking for $ac_word" >&5
+echo "configure:2587: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_NROFFPROG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2621,7 +2638,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:2625: checking host system type" >&5
+echo "configure:2642: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -2650,7 +2667,7 @@ if test -n "$sudo_cv_prev_host"; then
        exit 1
     else
        echo $ac_n "checking previous host type""... $ac_c" 1>&6
-echo "configure:2654: checking previous host type" >&5
+echo "configure:2671: checking previous host type" >&5
        if eval "test \"`echo '$''{'sudo_cv_prev_host'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2690,12 +2707,12 @@ case "$host" in
                # check for password adjunct functions (shadow passwords)
                if test "$CHECKSHADOW" = "true"; then
                    echo $ac_n "checking for getpwanam""... $ac_c" 1>&6
-echo "configure:2694: checking for getpwanam" >&5
+echo "configure:2711: checking for getpwanam" >&5
 if eval "test \"`echo '$''{'ac_cv_func_getpwanam'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2699 "configure"
+#line 2716 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char getpwanam(); below.  */
@@ -2718,7 +2735,7 @@ getpwanam();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_getpwanam=yes"
 else
@@ -2738,12 +2755,12 @@ EOF
  for ac_func in issecure
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2742: checking for $ac_func" >&5
+echo "configure:2759: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2747 "configure"
+#line 2764 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2766,7 +2783,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2817,7 +2834,7 @@ EOF
     *-*-hiuxmpp*)
                if test "$CHECKSHADOW" = "true"; then
                    echo $ac_n "checking for getprpwnam in -lsec""... $ac_c" 1>&6
-echo "configure:2821: checking for getprpwnam in -lsec" >&5
+echo "configure:2838: checking for getprpwnam in -lsec" >&5
 if test -n ""; then
   ac_lib_var=`echo sec'_'getprpwnam | sed 'y% ./+-%___p_%'`
 else
@@ -2829,7 +2846,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsec  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2833 "configure"
+#line 2850 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2840,7 +2857,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:2844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2862,7 +2879,7 @@ EOF
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for getprpwnam in -lsecurity""... $ac_c" 1>&6
-echo "configure:2866: checking for getprpwnam in -lsecurity" >&5
+echo "configure:2883: checking for getprpwnam in -lsecurity" >&5
 if test -n ""; then
   ac_lib_var=`echo security'_'getprpwnam | sed 'y% ./+-%___p_%'`
 else
@@ -2874,7 +2891,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsecurity  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2878 "configure"
+#line 2895 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2885,7 +2902,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:2889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2920,7 +2937,7 @@ fi
 
                if test "$CHECKSHADOW" = "true"; then
                    echo $ac_n "checking for getprpwnam in -lsec""... $ac_c" 1>&6
-echo "configure:2924: checking for getprpwnam in -lsec" >&5
+echo "configure:2941: checking for getprpwnam in -lsec" >&5
 if test -n ""; then
   ac_lib_var=`echo sec'_'getprpwnam | sed 'y% ./+-%___p_%'`
 else
@@ -2932,7 +2949,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsec  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2936 "configure"
+#line 2953 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2943,7 +2960,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:2947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2962,7 +2979,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 #define HAVE_GETPRPWNAM 1
 EOF
  echo $ac_n "checking for iscomsec in -lsec""... $ac_c" 1>&6
-echo "configure:2966: checking for iscomsec in -lsec" >&5
+echo "configure:2983: checking for iscomsec in -lsec" >&5
 if test -n ""; then
   ac_lib_var=`echo sec'_'iscomsec | sed 'y% ./+-%___p_%'`
 else
@@ -2974,7 +2991,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsec  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2978 "configure"
+#line 2995 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2985,7 +3002,7 @@ int main() {
 iscomsec()
 ; return 0; }
 EOF
-if { (eval echo configure:2989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3051,12 +3068,12 @@ EOF
                    for ac_func in getspwuid
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3055: checking for $ac_func" >&5
+echo "configure:3072: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3060 "configure"
+#line 3077 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3079,7 +3096,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3156,7 +3173,7 @@ EOF
                SUDO_LDFLAGS="${SUDO_LDFLAGS} -Wl,-no_library_replacement"
 
                echo $ac_n "checking whether to disable sia support on Digital UNIX""... $ac_c" 1>&6
-echo "configure:3160: checking whether to disable sia support on Digital UNIX" >&5
+echo "configure:3177: checking whether to disable sia support on Digital UNIX" >&5
                # Check whether --enable-sia or --disable-sia was given.
 if test "${enable_sia+set}" = set; then
   enableval="$enable_sia"
@@ -3180,12 +3197,12 @@ fi
                # unless overridden on the command line
                if test "$CHECKSIA" = "true"; then
                    echo $ac_n "checking for sia_ses_init""... $ac_c" 1>&6
-echo "configure:3184: checking for sia_ses_init" >&5
+echo "configure:3201: checking for sia_ses_init" >&5
 if eval "test \"`echo '$''{'ac_cv_func_sia_ses_init'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3189 "configure"
+#line 3206 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char sia_ses_init(); below.  */
@@ -3208,7 +3225,7 @@ sia_ses_init();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3229: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_sia_ses_init=yes"
 else
@@ -3237,7 +3254,7 @@ fi
                fi
                if test "$CHECKSHADOW" = "true"; then
                    echo $ac_n "checking for getprpwnam in -lsecurity""... $ac_c" 1>&6
-echo "configure:3241: checking for getprpwnam in -lsecurity" >&5
+echo "configure:3258: checking for getprpwnam in -lsecurity" >&5
 if test -n ""; then
   ac_lib_var=`echo security'_'getprpwnam | sed 'y% ./+-%___p_%'`
 else
@@ -3249,7 +3266,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsecurity  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3253 "configure"
+#line 3270 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3260,7 +3277,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:3264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3290,12 +3307,12 @@ EOF
 
                    # -ldb includes bogus versions of snprintf/vsnprintf
                    echo $ac_n "checking for snprintf""... $ac_c" 1>&6
-echo "configure:3294: checking for snprintf" >&5
+echo "configure:3311: checking for snprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_snprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3299 "configure"
+#line 3316 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char snprintf(); below.  */
@@ -3318,7 +3335,7 @@ snprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_snprintf=yes"
 else
@@ -3342,12 +3359,12 @@ NEED_SNPRINTF=1
 fi
 
                    echo $ac_n "checking for vsnprintf""... $ac_c" 1>&6
-echo "configure:3346: checking for vsnprintf" >&5
+echo "configure:3363: checking for vsnprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vsnprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3351 "configure"
+#line 3368 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vsnprintf(); below.  */
@@ -3370,7 +3387,7 @@ vsnprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_vsnprintf=yes"
 else
@@ -3395,7 +3412,7 @@ fi
 
                    # 4.x and higher need -ldb too...
                    echo $ac_n "checking for dbopen in -ldb""... $ac_c" 1>&6
-echo "configure:3399: checking for dbopen in -ldb" >&5
+echo "configure:3416: checking for dbopen in -ldb" >&5
 if test -n ""; then
   ac_lib_var=`echo db'_'dbopen | sed 'y% ./+-%___p_%'`
 else
@@ -3407,7 +3424,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldb  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3411 "configure"
+#line 3428 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3418,7 +3435,7 @@ int main() {
 dbopen()
 ; return 0; }
 EOF
-if { (eval echo configure:3422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3442,12 +3459,12 @@ fi
                    for ac_func in dispcrypt
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3446: checking for $ac_func" >&5
+echo "configure:3463: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3451 "configure"
+#line 3468 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3470,7 +3487,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3495,9 +3512,9 @@ fi
 done
 
                    echo $ac_n "checking for broken /usr/include/prot.h""... $ac_c" 1>&6
-echo "configure:3499: checking for broken /usr/include/prot.h" >&5
+echo "configure:3516: checking for broken /usr/include/prot.h" >&5
                    cat > conftest.$ac_ext <<EOF
-#line 3501 "configure"
+#line 3518 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -3508,7 +3525,7 @@ int main() {
 exit(0);
 ; return 0; }
 EOF
-if { (eval echo configure:3512: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3529: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""no" 1>&6
 else
@@ -3554,7 +3571,7 @@ EOF
                # IRIX <= 4 needs -lsun
                if test "$OSREV" -le 4; then
                    echo $ac_n "checking for getpwnam in -lsun""... $ac_c" 1>&6
-echo "configure:3558: checking for getpwnam in -lsun" >&5
+echo "configure:3575: checking for getpwnam in -lsun" >&5
 if test -n ""; then
   ac_lib_var=`echo sun'_'getpwnam | sed 'y% ./+-%___p_%'`
 else
@@ -3566,7 +3583,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsun  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3570 "configure"
+#line 3587 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3577,7 +3594,7 @@ int main() {
 getpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:3581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3609,12 +3626,12 @@ EOF
                # Some Linux versions need to link with -lshadow
                if test "$CHECKSHADOW" = "true"; then
                    echo $ac_n "checking for getspnam""... $ac_c" 1>&6
-echo "configure:3613: checking for getspnam" >&5
+echo "configure:3630: checking for getspnam" >&5
 if eval "test \"`echo '$''{'ac_cv_func_getspnam'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3618 "configure"
+#line 3635 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char getspnam(); below.  */
@@ -3637,7 +3654,7 @@ getspnam();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3641: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_getspnam=yes"
 else
@@ -3658,7 +3675,7 @@ EOF
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for getspnam in -lshadow""... $ac_c" 1>&6
-echo "configure:3662: checking for getspnam in -lshadow" >&5
+echo "configure:3679: checking for getspnam in -lshadow" >&5
 if test -n ""; then
   ac_lib_var=`echo shadow'_'getspnam | sed 'y% ./+-%___p_%'`
 else
@@ -3670,7 +3687,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lshadow  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3674 "configure"
+#line 3691 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3681,7 +3698,7 @@ int main() {
 getspnam()
 ; return 0; }
 EOF
-if { (eval echo configure:3685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3720,7 +3737,7 @@ EOF
 
                if test "$CHECKSHADOW" = "true"; then
                    echo $ac_n "checking for getprpwnam in -lsec""... $ac_c" 1>&6
-echo "configure:3724: checking for getprpwnam in -lsec" >&5
+echo "configure:3741: checking for getprpwnam in -lsec" >&5
 if test -n ""; then
   ac_lib_var=`echo sec'_'getprpwnam | sed 'y% ./+-%___p_%'`
 else
@@ -3732,7 +3749,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsec  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3736 "configure"
+#line 3753 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3743,7 +3760,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:3747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3764: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3773,7 +3790,7 @@ fi
                OS="ultrix"
                if test "$CHECKSHADOW" = "true"; then
                    echo $ac_n "checking for getauthuid in -lauth""... $ac_c" 1>&6
-echo "configure:3777: checking for getauthuid in -lauth" >&5
+echo "configure:3794: checking for getauthuid in -lauth" >&5
 if test -n ""; then
   ac_lib_var=`echo auth'_'getauthuid | sed 'y% ./+-%___p_%'`
 else
@@ -3785,7 +3802,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lauth  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3789 "configure"
+#line 3806 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3796,7 +3813,7 @@ int main() {
 getauthuid()
 ; return 0; }
 EOF
-if { (eval echo configure:3800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3835,7 +3852,7 @@ fi
 
                if test "$CHECKSHADOW" = "true"; then
                    echo $ac_n "checking for getspnam in -lsec""... $ac_c" 1>&6
-echo "configure:3839: checking for getspnam in -lsec" >&5
+echo "configure:3856: checking for getspnam in -lsec" >&5
 if test -n ""; then
   ac_lib_var=`echo sec'_'getspnam | sed 'y% ./+-%___p_%'`
 else
@@ -3847,7 +3864,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsec  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3851 "configure"
+#line 3868 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3858,7 +3875,7 @@ int main() {
 getspnam()
 ; return 0; }
 EOF
-if { (eval echo configure:3862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3887,7 +3904,7 @@ fi
     *-*-sco*)
                if test "$CHECKSHADOW" = "true"; then
                    echo $ac_n "checking for getprpwnam in -lprot""... $ac_c" 1>&6
-echo "configure:3891: checking for getprpwnam in -lprot" >&5
+echo "configure:3908: checking for getprpwnam in -lprot" >&5
 if test -n "-lx"; then
   ac_lib_var=`echo prot'_'getprpwnam-lx | sed 'y% ./+-%___p_%'`
 else
@@ -3899,7 +3916,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lprot -lx $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3903 "configure"
+#line 3920 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3910,7 +3927,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:3914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3934,7 +3951,7 @@ else
 fi
 
                    echo $ac_n "checking for getspnam in -lgen""... $ac_c" 1>&6
-echo "configure:3938: checking for getspnam in -lgen" >&5
+echo "configure:3955: checking for getspnam in -lgen" >&5
 if test -n ""; then
   ac_lib_var=`echo gen'_'getspnam | sed 'y% ./+-%___p_%'`
 else
@@ -3946,7 +3963,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgen  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3950 "configure"
+#line 3967 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3957,7 +3974,7 @@ int main() {
 getspnam()
 ; return 0; }
 EOF
-if { (eval echo configure:3961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3986,7 +4003,7 @@ fi
     *-sequent-sysv*)
                if test "$CHECKSHADOW" = "true"; then
                    echo $ac_n "checking for getspnam in -lsec""... $ac_c" 1>&6
-echo "configure:3990: checking for getspnam in -lsec" >&5
+echo "configure:4007: checking for getspnam in -lsec" >&5
 if test -n ""; then
   ac_lib_var=`echo sec'_'getspnam | sed 'y% ./+-%___p_%'`
 else
@@ -3998,7 +4015,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsec  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4002 "configure"
+#line 4019 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4009,7 +4026,7 @@ int main() {
 getspnam()
 ; return 0; }
 EOF
-if { (eval echo configure:4013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4057,12 +4074,12 @@ esac
 
 if test "$CHECKSHADOW" = "true"; then
     echo $ac_n "checking for getspnam""... $ac_c" 1>&6
-echo "configure:4061: checking for getspnam" >&5
+echo "configure:4078: checking for getspnam" >&5
 if eval "test \"`echo '$''{'ac_cv_func_getspnam'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4066 "configure"
+#line 4083 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char getspnam(); below.  */
@@ -4085,7 +4102,7 @@ getspnam();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_getspnam=yes"
 else
@@ -4110,12 +4127,12 @@ fi
 fi
 if test "$CHECKSHADOW" = "true"; then
     echo $ac_n "checking for getprpwnam""... $ac_c" 1>&6
-echo "configure:4114: checking for getprpwnam" >&5
+echo "configure:4131: checking for getprpwnam" >&5
 if eval "test \"`echo '$''{'ac_cv_func_getprpwnam'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4119 "configure"
+#line 4136 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char getprpwnam(); below.  */
@@ -4138,7 +4155,7 @@ getprpwnam();
 
 ; return 0; }
 EOF
-if { (eval echo configure:4142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_getprpwnam=yes"
 else
@@ -4159,7 +4176,7 @@ EOF
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for getprpwnam in -lsec""... $ac_c" 1>&6
-echo "configure:4163: checking for getprpwnam in -lsec" >&5
+echo "configure:4180: checking for getprpwnam in -lsec" >&5
 if test -n ""; then
   ac_lib_var=`echo sec'_'getprpwnam | sed 'y% ./+-%___p_%'`
 else
@@ -4171,7 +4188,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsec  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4175 "configure"
+#line 4192 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4182,7 +4199,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:4186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4204,7 +4221,7 @@ EOF
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for getprpwnam in -lsecurity""... $ac_c" 1>&6
-echo "configure:4208: checking for getprpwnam in -lsecurity" >&5
+echo "configure:4225: checking for getprpwnam in -lsecurity" >&5
 if test -n ""; then
   ac_lib_var=`echo security'_'getprpwnam | sed 'y% ./+-%___p_%'`
 else
@@ -4216,7 +4233,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsecurity  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4220 "configure"
+#line 4237 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4227,7 +4244,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:4231: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4249,7 +4266,7 @@ EOF
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for getprpwnam in -lprot""... $ac_c" 1>&6
-echo "configure:4253: checking for getprpwnam in -lprot" >&5
+echo "configure:4270: checking for getprpwnam in -lprot" >&5
 if test -n ""; then
   ac_lib_var=`echo prot'_'getprpwnam | sed 'y% ./+-%___p_%'`
 else
@@ -4261,7 +4278,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lprot  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4265 "configure"
+#line 4282 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4272,7 +4289,7 @@ int main() {
 getprpwnam()
 ; return 0; }
 EOF
-if { (eval echo configure:4276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4293: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4305,13 +4322,13 @@ fi
 
 if test $ac_cv_prog_gcc = yes; then
     echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:4309: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:4326: checking whether ${CC-cc} needs -traditional" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     ac_pattern="Autoconf.*'x'"
   cat > conftest.$ac_ext <<EOF
-#line 4315 "configure"
+#line 4332 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
@@ -4329,7 +4346,7 @@ rm -f conftest*
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat > conftest.$ac_ext <<EOF
-#line 4333 "configure"
+#line 4350 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
@@ -4351,12 +4368,12 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
 fi
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:4355: checking for working const" >&5
+echo "configure:4372: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4360 "configure"
+#line 4377 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -4405,7 +4422,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:4409: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4426: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -4430,7 +4447,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:4434: checking for $ac_word" >&5
+echo "configure:4451: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4461,7 +4478,7 @@ test -n "$YACC" || YACC="yacc"
 
 if test -z "$with_sendmail"; then
     echo $ac_n "checking for sendmail""... $ac_c" 1>&6
-echo "configure:4465: checking for sendmail" >&5
+echo "configure:4482: checking for sendmail" >&5
 if test -f "/usr/sbin/sendmail"; then
     echo "$ac_t""/usr/sbin/sendmail" 1>&6
     cat >> confdefs.h <<\EOF
@@ -4504,7 +4521,7 @@ fi
 
 fi
 echo $ac_n "checking for mv""... $ac_c" 1>&6
-echo "configure:4508: checking for mv" >&5
+echo "configure:4525: checking for mv" >&5
 if test -f "/usr/bin/mv"; then
     echo "$ac_t""/usr/bin/mv" 1>&6
     cat >> confdefs.h <<\EOF
@@ -4534,7 +4551,7 @@ else
 fi
 
 echo $ac_n "checking for bourne shell""... $ac_c" 1>&6
-echo "configure:4538: checking for bourne shell" >&5
+echo "configure:4555: checking for bourne shell" >&5
 if test -f "/bin/sh"; then
     echo "$ac_t""/bin/sh" 1>&6
     cat >> confdefs.h <<\EOF
@@ -4588,7 +4605,7 @@ else
 fi
 
 echo $ac_n "checking for vi""... $ac_c" 1>&6
-echo "configure:4592: checking for vi" >&5
+echo "configure:4609: checking for vi" >&5
 if test -f "/usr/bin/vi"; then
     echo "$ac_t""/usr/bin/vi" 1>&6
     cat >> confdefs.h <<\EOF
@@ -4624,12 +4641,12 @@ else
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:4628: checking for ANSI C header files" >&5
+echo "configure:4645: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4633 "configure"
+#line 4650 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -4637,7 +4654,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4641: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4658: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4654,7 +4671,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 4658 "configure"
+#line 4675 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -4672,7 +4689,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 4676 "configure"
+#line 4693 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -4693,7 +4710,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 4697 "configure"
+#line 4714 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -4704,7 +4721,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:4708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4725: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -4732,12 +4749,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:4736: checking for $ac_hdr that defines DIR" >&5
+echo "configure:4753: checking for $ac_hdr that defines DIR" >&5
 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4741 "configure"
+#line 4758 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -4745,7 +4762,7 @@ int main() {
 DIR *dirp = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:4749: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4766: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_header_dirent_$ac_safe=yes"
 else
@@ -4770,7 +4787,7 @@ done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
 echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:4774: checking for opendir in -ldir" >&5
+echo "configure:4791: checking for opendir in -ldir" >&5
 if test -n ""; then
   ac_lib_var=`echo dir'_'opendir | sed 'y% ./+-%___p_%'`
 else
@@ -4782,7 +4799,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldir  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4786 "configure"
+#line 4803 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4793,7 +4810,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:4797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4815,7 +4832,7 @@ fi
 
 else
 echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:4819: checking for opendir in -lx" >&5
+echo "configure:4836: checking for opendir in -lx" >&5
 if test -n ""; then
   ac_lib_var=`echo x'_'opendir | sed 'y% ./+-%___p_%'`
 else
@@ -4827,7 +4844,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lx  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4831 "configure"
+#line 4848 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4838,7 +4855,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:4842: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4864,17 +4881,17 @@ for ac_hdr in string.h strings.h unistd.h malloc.h paths.h utime.h fnmatch.h net
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4868: checking for $ac_hdr" >&5
+echo "configure:4885: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4873 "configure"
+#line 4890 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4878: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4895: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4905,17 +4922,17 @@ if test "$OS" != "ultrix"; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4909: checking for $ac_hdr" >&5
+echo "configure:4926: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4914 "configure"
+#line 4931 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4919: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4936: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4945,17 +4962,17 @@ done
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:4949: checking for $ac_hdr" >&5
+echo "configure:4966: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4954 "configure"
+#line 4971 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4959: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4976: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4978,12 +4995,12 @@ EOF
  for ac_func in tcgetattr
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4982: checking for $ac_func" >&5
+echo "configure:4999: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 4987 "configure"
+#line 5004 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5006,7 +5023,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5037,12 +5054,12 @@ done
 
 fi
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:5041: checking for mode_t" >&5
+echo "configure:5058: checking for mode_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5046 "configure"
+#line 5063 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5070,12 +5087,12 @@ EOF
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:5074: checking for uid_t in sys/types.h" >&5
+echo "configure:5091: checking for uid_t in sys/types.h" >&5
 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5079 "configure"
+#line 5096 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -5104,12 +5121,12 @@ EOF
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:5108: checking for size_t" >&5
+echo "configure:5125: checking for size_t" >&5
 if eval "test \"`echo '$''{'sudo_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5113 "configure"
+#line 5130 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5139,12 +5156,12 @@ EOF
 fi
 
 echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:5143: checking for ssize_t" >&5
+echo "configure:5160: checking for ssize_t" >&5
 if eval "test \"`echo '$''{'sudo_cv_type_ssize_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5148 "configure"
+#line 5165 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5174,12 +5191,12 @@ EOF
 fi
 
 echo $ac_n "checking for dev_t""... $ac_c" 1>&6
-echo "configure:5178: checking for dev_t" >&5
+echo "configure:5195: checking for dev_t" >&5
 if eval "test \"`echo '$''{'sudo_cv_type_dev_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5183 "configure"
+#line 5200 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5209,12 +5226,12 @@ EOF
 fi
 
 echo $ac_n "checking for ino_t""... $ac_c" 1>&6
-echo "configure:5213: checking for ino_t" >&5
+echo "configure:5230: checking for ino_t" >&5
 if eval "test \"`echo '$''{'sudo_cv_type_ino_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5218 "configure"
+#line 5235 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -5244,9 +5261,9 @@ EOF
 fi
 
 echo $ac_n "checking for full void implementation""... $ac_c" 1>&6
-echo "configure:5248: checking for full void implementation" >&5
+echo "configure:5265: checking for full void implementation" >&5
 cat > conftest.$ac_ext <<EOF
-#line 5250 "configure"
+#line 5267 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -5254,7 +5271,7 @@ void *foo;
 foo = (void *)0; (void *)"test";
 ; return 0; }
 EOF
-if { (eval echo configure:5258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5275: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define VOID void
@@ -5274,7 +5291,7 @@ fi
 rm -f conftest*
 
 echo $ac_n "checking max length of uid_t""... $ac_c" 1>&6
-echo "configure:5278: checking max length of uid_t" >&5
+echo "configure:5295: checking max length of uid_t" >&5
 if eval "test \"`echo '$''{'sudo_cv_uid_t_len'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5283,7 +5300,7 @@ if test "$cross_compiling" = yes; then
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 5287 "configure"
+#line 5304 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <pwd.h>
@@ -5304,7 +5321,7 @@ main() {
   exit(0);
 }
 EOF
-if { (eval echo configure:5308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   sudo_cv_uid_t_len=`cat conftestdata`
 else
@@ -5327,16 +5344,16 @@ EOF
 
 
 echo $ac_n "checking for long long support""... $ac_c" 1>&6
-echo "configure:5331: checking for long long support" >&5
+echo "configure:5348: checking for long long support" >&5
 cat > conftest.$ac_ext <<EOF
-#line 5333 "configure"
+#line 5350 "configure"
 #include "confdefs.h"
 
 int main() {
 long long foo = 1000; foo /= 10;
 ; return 0; }
 EOF
-if { (eval echo configure:5340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   cat >> confdefs.h <<\EOF
 #define HAVE_LONG_LONG 1
@@ -5346,11 +5363,11 @@ if test "$cross_compiling" = yes; then
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 5350 "configure"
+#line 5367 "configure"
 #include "confdefs.h"
 main() {if (sizeof(long long) == sizeof(long)) exit(0); else exit(1);}
 EOF
-if { (eval echo configure:5354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   cat >> confdefs.h <<\EOF
 #define LONG_IS_QUAD 1
@@ -5372,7 +5389,7 @@ else
 fi
 rm -f conftest*
 echo $ac_n "checking for sa_len field in struct sockaddr""... $ac_c" 1>&6
-echo "configure:5376: checking for sa_len field in struct sockaddr" >&5
+echo "configure:5393: checking for sa_len field in struct sockaddr" >&5
 if eval "test \"`echo '$''{'sudo_cv_sock_sa_len'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5380,7 +5397,7 @@ else
   sudo_cv_sock_sa_len=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 5384 "configure"
+#line 5401 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/socket.h>
@@ -5390,7 +5407,7 @@ s.sa_len = 0;
 exit(0);
 }
 EOF
-if { (eval echo configure:5394: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5411: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   sudo_cv_sock_sa_len=yes
 else
@@ -5415,12 +5432,12 @@ fi
 case "$DEFS" in
     *"RETSIGTYPE"*)    ;;
     *)                 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:5419: checking return type of signal handlers" >&5
+echo "configure:5436: checking return type of signal handlers" >&5
 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5424 "configure"
+#line 5441 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -5437,7 +5454,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:5441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5458: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -5459,12 +5476,12 @@ esac
 for ac_func in strchr strrchr memchr memcpy memset sysconf sigaction tzset seteuid ftruncate strftime
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5463: checking for $ac_func" >&5
+echo "configure:5480: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5468 "configure"
+#line 5485 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5487,7 +5504,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5515,12 +5532,12 @@ if test -n "$SECUREWARE"; then
     for ac_func in bigcrypt
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5519: checking for $ac_func" >&5
+echo "configure:5536: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5524 "configure"
+#line 5541 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5543,7 +5560,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5570,12 +5587,12 @@ done
     for ac_func in set_auth_parameters
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5574: checking for $ac_func" >&5
+echo "configure:5591: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5579 "configure"
+#line 5596 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5598,7 +5615,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5625,12 +5642,12 @@ done
     for ac_func in initprivs
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5629: checking for $ac_func" >&5
+echo "configure:5646: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5634 "configure"
+#line 5651 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5653,7 +5670,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5680,12 +5697,12 @@ done
 fi
 if test -z "$BROKEN_GETCWD"; then
     echo $ac_n "checking for getcwd""... $ac_c" 1>&6
-echo "configure:5684: checking for getcwd" >&5
+echo "configure:5701: checking for getcwd" >&5
 if eval "test \"`echo '$''{'ac_cv_func_getcwd'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5689 "configure"
+#line 5706 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char getcwd(); below.  */
@@ -5708,7 +5725,7 @@ getcwd();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5729: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_getcwd=yes"
 else
@@ -5733,12 +5750,12 @@ fi
 
 fi
 echo $ac_n "checking for lockf""... $ac_c" 1>&6
-echo "configure:5737: checking for lockf" >&5
+echo "configure:5754: checking for lockf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_lockf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5742 "configure"
+#line 5759 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char lockf(); below.  */
@@ -5761,7 +5778,7 @@ lockf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5782: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_lockf=yes"
 else
@@ -5784,12 +5801,12 @@ else
 for ac_func in flock
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5788: checking for $ac_func" >&5
+echo "configure:5805: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5793 "configure"
+#line 5810 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5812,7 +5829,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5816: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5839,12 +5856,12 @@ done
 fi
 
 echo $ac_n "checking for waitpid""... $ac_c" 1>&6
-echo "configure:5843: checking for waitpid" >&5
+echo "configure:5860: checking for waitpid" >&5
 if eval "test \"`echo '$''{'ac_cv_func_waitpid'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5848 "configure"
+#line 5865 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char waitpid(); below.  */
@@ -5867,7 +5884,7 @@ waitpid();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5871: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_waitpid=yes"
 else
@@ -5890,12 +5907,12 @@ else
 for ac_func in wait3
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5894: checking for $ac_func" >&5
+echo "configure:5911: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5899 "configure"
+#line 5916 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -5918,7 +5935,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5939: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -5945,12 +5962,12 @@ done
 fi
 
 echo $ac_n "checking for innetgr""... $ac_c" 1>&6
-echo "configure:5949: checking for innetgr" >&5
+echo "configure:5966: checking for innetgr" >&5
 if eval "test \"`echo '$''{'ac_cv_func_innetgr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5954 "configure"
+#line 5971 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char innetgr(); below.  */
@@ -5973,7 +5990,7 @@ innetgr();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5977: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_innetgr=yes"
 else
@@ -5993,12 +6010,12 @@ EOF
  for ac_func in getdomainname
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:5997: checking for $ac_func" >&5
+echo "configure:6014: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6002 "configure"
+#line 6019 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6021,7 +6038,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6050,12 +6067,12 @@ else
 fi
 
 echo $ac_n "checking for lsearch""... $ac_c" 1>&6
-echo "configure:6054: checking for lsearch" >&5
+echo "configure:6071: checking for lsearch" >&5
 if eval "test \"`echo '$''{'ac_cv_func_lsearch'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6059 "configure"
+#line 6076 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char lsearch(); below.  */
@@ -6078,7 +6095,7 @@ lsearch();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6099: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_lsearch=yes"
 else
@@ -6099,7 +6116,7 @@ EOF
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for lsearch in -lcompat""... $ac_c" 1>&6
-echo "configure:6103: checking for lsearch in -lcompat" >&5
+echo "configure:6120: checking for lsearch in -lcompat" >&5
 if test -n ""; then
   ac_lib_var=`echo compat'_'lsearch | sed 'y% ./+-%___p_%'`
 else
@@ -6111,7 +6128,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcompat  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6115 "configure"
+#line 6132 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6122,7 +6139,7 @@ int main() {
 lsearch()
 ; return 0; }
 EOF
-if { (eval echo configure:6126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6139,17 +6156,17 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "search.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for search.h""... $ac_c" 1>&6
-echo "configure:6143: checking for search.h" >&5
+echo "configure:6160: checking for search.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6148 "configure"
+#line 6165 "configure"
 #include "confdefs.h"
 #include <search.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6153: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6170: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6182,12 +6199,12 @@ fi
 fi
 
 echo $ac_n "checking for setenv""... $ac_c" 1>&6
-echo "configure:6186: checking for setenv" >&5
+echo "configure:6203: checking for setenv" >&5
 if eval "test \"`echo '$''{'ac_cv_func_setenv'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6191 "configure"
+#line 6208 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char setenv(); below.  */
@@ -6210,7 +6227,7 @@ setenv();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6231: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_setenv=yes"
 else
@@ -6231,12 +6248,12 @@ EOF
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for putenv""... $ac_c" 1>&6
-echo "configure:6235: checking for putenv" >&5
+echo "configure:6252: checking for putenv" >&5
 if eval "test \"`echo '$''{'ac_cv_func_putenv'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6240 "configure"
+#line 6257 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char putenv(); below.  */
@@ -6259,7 +6276,7 @@ putenv();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_putenv=yes"
 else
@@ -6285,12 +6302,12 @@ fi
 fi
 
 echo $ac_n "checking for utime""... $ac_c" 1>&6
-echo "configure:6289: checking for utime" >&5
+echo "configure:6306: checking for utime" >&5
 if eval "test \"`echo '$''{'ac_cv_func_utime'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6294 "configure"
+#line 6311 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char utime(); below.  */
@@ -6313,7 +6330,7 @@ utime();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6317: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_utime=yes"
 else
@@ -6332,7 +6349,7 @@ if eval "test \"`echo '$ac_cv_func_'utime`\" = yes"; then
 EOF
 
 echo $ac_n "checking for POSIX utime""... $ac_c" 1>&6
-echo "configure:6336: checking for POSIX utime" >&5
+echo "configure:6353: checking for POSIX utime" >&5
 if eval "test \"`echo '$''{'sudo_cv_func_utime_posix'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6341,7 +6358,7 @@ if test "$cross_compiling" = yes; then
   sudo_cv_func_utime_posix=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 6345 "configure"
+#line 6362 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -6353,7 +6370,7 @@ utime("conftestdata", &ut);
 exit(0);
 }
 EOF
-if { (eval echo configure:6357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   sudo_cv_func_utime_posix=yes
 else
@@ -6381,7 +6398,7 @@ LIBOBJS="$LIBOBJS utime.o"
 fi
 
 echo $ac_n "checking for working fnmatch""... $ac_c" 1>&6
-echo "configure:6385: checking for working fnmatch" >&5
+echo "configure:6402: checking for working fnmatch" >&5
 if eval "test \"`echo '$''{'sudo_cv_func_fnmatch'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6390,13 +6407,13 @@ if test "$cross_compiling" = yes; then
   sudo_cv_func_fnmatch=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 6394 "configure"
+#line 6411 "configure"
 #include "confdefs.h"
 main() {
 exit(fnmatch("/*/bin/echo *", "/usr/bin/echo just a test", 0));
 }
 EOF
-if { (eval echo configure:6400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6417: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   sudo_cv_func_fnmatch=yes
 else
@@ -6423,12 +6440,12 @@ fi
 for ac_func in strerror strcasecmp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6427: checking for $ac_func" >&5
+echo "configure:6444: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6432 "configure"
+#line 6449 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6451,7 +6468,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6478,12 +6495,12 @@ done
 
 
 echo $ac_n "checking for snprintf""... $ac_c" 1>&6
-echo "configure:6482: checking for snprintf" >&5
+echo "configure:6499: checking for snprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_snprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6487 "configure"
+#line 6504 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char snprintf(); below.  */
@@ -6506,7 +6523,7 @@ snprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_snprintf=yes"
 else
@@ -6530,12 +6547,12 @@ NEED_SNPRINTF=1
 fi
 
 echo $ac_n "checking for vsnprintf""... $ac_c" 1>&6
-echo "configure:6534: checking for vsnprintf" >&5
+echo "configure:6551: checking for vsnprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vsnprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6539 "configure"
+#line 6556 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vsnprintf(); below.  */
@@ -6558,7 +6575,7 @@ vsnprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_vsnprintf=yes"
 else
@@ -6582,12 +6599,12 @@ NEED_SNPRINTF=1
 fi
 
 echo $ac_n "checking for asprintf""... $ac_c" 1>&6
-echo "configure:6586: checking for asprintf" >&5
+echo "configure:6603: checking for asprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_asprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6591 "configure"
+#line 6608 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char asprintf(); below.  */
@@ -6610,7 +6627,7 @@ asprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6631: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_asprintf=yes"
 else
@@ -6634,12 +6651,12 @@ NEED_SNPRINTF=1
 fi
 
 echo $ac_n "checking for vasprintf""... $ac_c" 1>&6
-echo "configure:6638: checking for vasprintf" >&5
+echo "configure:6655: checking for vasprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vasprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6643 "configure"
+#line 6660 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vasprintf(); below.  */
@@ -6662,7 +6679,7 @@ vasprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_vasprintf=yes"
 else
@@ -6690,12 +6707,12 @@ if test -n "$NEED_SNPRINTF"; then
 fi
 if test -z "$LIB_CRYPT"; then
     echo $ac_n "checking for crypt""... $ac_c" 1>&6
-echo "configure:6694: checking for crypt" >&5
+echo "configure:6711: checking for crypt" >&5
 if eval "test \"`echo '$''{'ac_cv_func_crypt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6699 "configure"
+#line 6716 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char crypt(); below.  */
@@ -6718,7 +6735,7 @@ crypt();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_crypt=yes"
 else
@@ -6736,7 +6753,7 @@ if eval "test \"`echo '$ac_cv_func_'crypt`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:6740: checking for crypt in -lcrypt" >&5
+echo "configure:6757: checking for crypt in -lcrypt" >&5
 if test -n ""; then
   ac_lib_var=`echo crypt'_'crypt | sed 'y% ./+-%___p_%'`
 else
@@ -6748,7 +6765,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6752 "configure"
+#line 6769 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6759,7 +6776,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:6763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6778,7 +6795,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for crypt in -lcrypt_d""... $ac_c" 1>&6
-echo "configure:6782: checking for crypt in -lcrypt_d" >&5
+echo "configure:6799: checking for crypt in -lcrypt_d" >&5
 if test -n ""; then
   ac_lib_var=`echo crypt_d'_'crypt | sed 'y% ./+-%___p_%'`
 else
@@ -6790,7 +6807,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypt_d  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6794 "configure"
+#line 6811 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6801,7 +6818,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:6805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6822: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6820,7 +6837,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for crypt in -lufc""... $ac_c" 1>&6
-echo "configure:6824: checking for crypt in -lufc" >&5
+echo "configure:6841: checking for crypt in -lufc" >&5
 if test -n ""; then
   ac_lib_var=`echo ufc'_'crypt | sed 'y% ./+-%___p_%'`
 else
@@ -6832,7 +6849,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lufc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6836 "configure"
+#line 6853 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6843,7 +6860,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:6847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6871,12 +6888,12 @@ fi
 
 fi
 echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:6875: checking for socket" >&5
+echo "configure:6892: checking for socket" >&5
 if eval "test \"`echo '$''{'ac_cv_func_socket'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6880 "configure"
+#line 6897 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char socket(); below.  */
@@ -6899,7 +6916,7 @@ socket();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_socket=yes"
 else
@@ -6917,7 +6934,7 @@ if eval "test \"`echo '$ac_cv_func_'socket`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:6921: checking for socket in -lsocket" >&5
+echo "configure:6938: checking for socket in -lsocket" >&5
 if test -n ""; then
   ac_lib_var=`echo socket'_'socket | sed 'y% ./+-%___p_%'`
 else
@@ -6929,7 +6946,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6933 "configure"
+#line 6950 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6940,7 +6957,7 @@ int main() {
 socket()
 ; return 0; }
 EOF
-if { (eval echo configure:6944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6959,7 +6976,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for socket in -linet""... $ac_c" 1>&6
-echo "configure:6963: checking for socket in -linet" >&5
+echo "configure:6980: checking for socket in -linet" >&5
 if test -n ""; then
   ac_lib_var=`echo inet'_'socket | sed 'y% ./+-%___p_%'`
 else
@@ -6971,7 +6988,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-linet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6975 "configure"
+#line 6992 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6982,7 +6999,7 @@ int main() {
 socket()
 ; return 0; }
 EOF
-if { (eval echo configure:6986: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7002,7 +7019,7 @@ else
   echo "$ac_t""no" 1>&6
 echo "configure: warning: unable to find socket() trying -lsocket -lnsl" 1>&2
 echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:7006: checking for socket in -lsocket" >&5
+echo "configure:7023: checking for socket in -lsocket" >&5
 if test -n "-lnsl"; then
   ac_lib_var=`echo socket'_'socket-lnsl | sed 'y% ./+-%___p_%'`
 else
@@ -7014,7 +7031,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket -lnsl $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7018 "configure"
+#line 7035 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7025,7 +7042,7 @@ int main() {
 socket()
 ; return 0; }
 EOF
-if { (eval echo configure:7029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7046: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7052,12 +7069,12 @@ fi
 fi
 
 echo $ac_n "checking for inet_addr""... $ac_c" 1>&6
-echo "configure:7056: checking for inet_addr" >&5
+echo "configure:7073: checking for inet_addr" >&5
 if eval "test \"`echo '$''{'ac_cv_func_inet_addr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7061 "configure"
+#line 7078 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char inet_addr(); below.  */
@@ -7080,7 +7097,7 @@ inet_addr();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_inet_addr=yes"
 else
@@ -7098,7 +7115,7 @@ if eval "test \"`echo '$ac_cv_func_'inet_addr`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for inet_addr in -lnsl""... $ac_c" 1>&6
-echo "configure:7102: checking for inet_addr in -lnsl" >&5
+echo "configure:7119: checking for inet_addr in -lnsl" >&5
 if test -n ""; then
   ac_lib_var=`echo nsl'_'inet_addr | sed 'y% ./+-%___p_%'`
 else
@@ -7110,7 +7127,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7114 "configure"
+#line 7131 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7121,7 +7138,7 @@ int main() {
 inet_addr()
 ; return 0; }
 EOF
-if { (eval echo configure:7125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7140,7 +7157,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for inet_addr in -linet""... $ac_c" 1>&6
-echo "configure:7144: checking for inet_addr in -linet" >&5
+echo "configure:7161: checking for inet_addr in -linet" >&5
 if test -n ""; then
   ac_lib_var=`echo inet'_'inet_addr | sed 'y% ./+-%___p_%'`
 else
@@ -7152,7 +7169,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-linet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7156 "configure"
+#line 7173 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7163,7 +7180,7 @@ int main() {
 inet_addr()
 ; return 0; }
 EOF
-if { (eval echo configure:7167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7183,7 +7200,7 @@ else
   echo "$ac_t""no" 1>&6
 echo "configure: warning: unable to find socket() trying -lsocket -lnsl" 1>&2
 echo $ac_n "checking for inet_addr in -lsocket""... $ac_c" 1>&6
-echo "configure:7187: checking for inet_addr in -lsocket" >&5
+echo "configure:7204: checking for inet_addr in -lsocket" >&5
 if test -n "-lnsl"; then
   ac_lib_var=`echo socket'_'inet_addr-lnsl | sed 'y% ./+-%___p_%'`
 else
@@ -7195,7 +7212,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket -lnsl $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7199 "configure"
+#line 7216 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7206,7 +7223,7 @@ int main() {
 inet_addr()
 ; return 0; }
 EOF
-if { (eval echo configure:7210: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7233,12 +7250,12 @@ fi
 fi
 
 echo $ac_n "checking for syslog""... $ac_c" 1>&6
-echo "configure:7237: checking for syslog" >&5
+echo "configure:7254: checking for syslog" >&5
 if eval "test \"`echo '$''{'ac_cv_func_syslog'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7242 "configure"
+#line 7259 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char syslog(); below.  */
@@ -7261,7 +7278,7 @@ syslog();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_syslog=yes"
 else
@@ -7279,7 +7296,7 @@ if eval "test \"`echo '$ac_cv_func_'syslog`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for syslog in -lsocket""... $ac_c" 1>&6
-echo "configure:7283: checking for syslog in -lsocket" >&5
+echo "configure:7300: checking for syslog in -lsocket" >&5
 if test -n ""; then
   ac_lib_var=`echo socket'_'syslog | sed 'y% ./+-%___p_%'`
 else
@@ -7291,7 +7308,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7295 "configure"
+#line 7312 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7302,7 +7319,7 @@ int main() {
 syslog()
 ; return 0; }
 EOF
-if { (eval echo configure:7306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7321,7 +7338,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for syslog in -lnsl""... $ac_c" 1>&6
-echo "configure:7325: checking for syslog in -lnsl" >&5
+echo "configure:7342: checking for syslog in -lnsl" >&5
 if test -n ""; then
   ac_lib_var=`echo nsl'_'syslog | sed 'y% ./+-%___p_%'`
 else
@@ -7333,7 +7350,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7337 "configure"
+#line 7354 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7344,7 +7361,7 @@ int main() {
 syslog()
 ; return 0; }
 EOF
-if { (eval echo configure:7348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7365: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7363,7 +7380,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for syslog in -linet""... $ac_c" 1>&6
-echo "configure:7367: checking for syslog in -linet" >&5
+echo "configure:7384: checking for syslog in -linet" >&5
 if test -n ""; then
   ac_lib_var=`echo inet'_'syslog | sed 'y% ./+-%___p_%'`
 else
@@ -7375,7 +7392,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-linet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7379 "configure"
+#line 7396 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7386,7 +7403,7 @@ int main() {
 syslog()
 ; return 0; }
 EOF
-if { (eval echo configure:7390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7416,19 +7433,19 @@ if test "$with_DCE" = "yes" -o "$ac_cv_prog_YACC" = "bison -y"; then
     # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:7420: checking for working alloca.h" >&5
+echo "configure:7437: checking for working alloca.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7425 "configure"
+#line 7442 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:7432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -7449,12 +7466,12 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:7453: checking for alloca" >&5
+echo "configure:7470: checking for alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7458 "configure"
+#line 7475 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -7477,7 +7494,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:7481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -7509,12 +7526,12 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:7513: checking whether alloca needs Cray hooks" >&5
+echo "configure:7530: checking whether alloca needs Cray hooks" >&5
 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7518 "configure"
+#line 7535 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -7539,12 +7556,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7543: checking for $ac_func" >&5
+echo "configure:7560: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7548 "configure"
+#line 7565 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7567,7 +7584,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7594,7 +7611,7 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:7598: checking stack direction for C alloca" >&5
+echo "configure:7615: checking stack direction for C alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7602,7 +7619,7 @@ else
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 7606 "configure"
+#line 7623 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -7621,7 +7638,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:7625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_stack_direction=1
 else
@@ -7646,7 +7663,7 @@ fi
 
 if test "$with_kerb5" = "yes"; then
                     echo $ac_n "checking for krb5_get_init_creds_opt in -lkrb5""... $ac_c" 1>&6
-echo "configure:7650: checking for krb5_get_init_creds_opt in -lkrb5" >&5
+echo "configure:7667: checking for krb5_get_init_creds_opt in -lkrb5" >&5
 if test -n ""; then
   ac_lib_var=`echo krb5'_'krb5_get_init_creds_opt | sed 'y% ./+-%___p_%'`
 else
@@ -7658,7 +7675,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lkrb5  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7662 "configure"
+#line 7679 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7669,7 +7686,7 @@ int main() {
 krb5_get_init_creds_opt()
 ; return 0; }
 EOF
-if { (eval echo configure:7673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7690: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7728,21 +7745,21 @@ EOF
 
     if test "$with_kerb5" = "yes"; then
        echo $ac_n "checking for -lkrb4""... $ac_c" 1>&6
-echo "configure:7732: checking for -lkrb4" >&5
+echo "configure:7749: checking for -lkrb4" >&5
 if eval "test \"`echo '$''{'ac_cv_lib_krb4'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-lkrb4  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7739 "configure"
+#line 7756 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:7746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_lib_krb4=yes
 else
@@ -7763,21 +7780,21 @@ else
 fi
 
        echo $ac_n "checking for -ldes""... $ac_c" 1>&6
-echo "configure:7767: checking for -ldes" >&5
+echo "configure:7784: checking for -ldes" >&5
 if eval "test \"`echo '$''{'ac_cv_lib_des'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-ldes  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7774 "configure"
+#line 7791 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:7781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_lib_des=yes
 else
@@ -7798,21 +7815,21 @@ fi
        SUDO_LIBS="${SUDO_LIBS} -ldes425 -lkrb5 -lcrypto -lcom_err"
     else
        echo $ac_n "checking for -ldes""... $ac_c" 1>&6
-echo "configure:7802: checking for -ldes" >&5
+echo "configure:7819: checking for -ldes" >&5
 if eval "test \"`echo '$''{'ac_cv_lib_des'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
 LIBS="-ldes  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7809 "configure"
+#line 7826 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:7816: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_lib_des=yes
 else
@@ -7936,7 +7953,7 @@ if test "$with_authenticate" = "yes"; then
 fi
 
 echo $ac_n "checking for log file location""... $ac_c" 1>&6
-echo "configure:7940: checking for log file location" >&5
+echo "configure:7957: checking for log file location" >&5
 if test -n "$with_logpath"; then
     echo "$ac_t""$with_logpath" 1>&6
     cat >> confdefs.h <<EOF
@@ -7966,7 +7983,7 @@ else
 fi
 
 echo $ac_n "checking for timestamp file location""... $ac_c" 1>&6
-echo "configure:7970: checking for timestamp file location" >&5
+echo "configure:7987: checking for timestamp file location" >&5
 if test -n "$with_timedir"; then
     echo "$ac_t""$with_timedir" 1>&6
     cat >> confdefs.h <<EOF
index 5e991585e01d8142a17098f718ce9026167934af..41ead34e2869facfcccda770ef1df3d81b15394e 100644 (file)
@@ -71,6 +71,14 @@ AC_ARG_WITH(otp-only, [  --with-otp-only         deprecated],
                ;;
 esac])
 
+AC_ARG_WITH(alertmail, [  --with-alertmail        deprecated],
+[case $with_alertmail in
+    *)         with_mailto="$with_alertmail"
+               AC_DEFINE(WITHOUT_PASSWD)
+               AC_MSG_WARN([--with-alertmail option deprecated, treating as --mailto])
+               ;;
+esac])
+
 dnl
 dnl Options for --with
 dnl
@@ -364,7 +372,7 @@ AC_ARG_WITH(logging, [  --with-logging          log via syslog, file, or both],
 esac], [AC_DEFINE(LOGGING, SLOG_SYSLOG) AC_MSG_RESULT(syslog)])
 
 AC_MSG_CHECKING(which syslog facility sudo should log with)
-AC_ARG_WITH(logfac, [  --with-logfac           syslog facility to log with (default is LOG_LOCAL2)],
+AC_ARG_WITH(logfac, [  --with-logfac           syslog facility to log with (default is local2)],
 [case $with_logfac in  
     yes)       echo "Must give --with-logfac an argument."
                exit 1
@@ -372,13 +380,13 @@ AC_ARG_WITH(logfac, [  --with-logfac           syslog facility to log with (defa
     no)                echo "Sorry, --without-logfac not supported."
                exit 1
                ;;
-    *)         AC_DEFINE_UNQUOTED(LOGFAC, $with_logfac)
+    *)         AC_DEFINE_UNQUOTED(LOGFAC, "$with_logfac")
                AC_MSG_RESULT([$with_logfac])
                ;;
-esac], [AC_DEFINE(LOGFAC, LOG_LOCAL2) AC_MSG_RESULT(LOG_LOCAL2)])
+esac], [AC_DEFINE_UNQUOTED(LOGFAC, "local2") AC_MSG_RESULT("local2")])
 
 AC_MSG_CHECKING(at which syslog priority to log commands)
-AC_ARG_WITH(goodpri, [  --with-goodpri          syslog priority for commands (def is LOG_NOTICE)],
+AC_ARG_WITH(goodpri, [  --with-goodpri          syslog priority for commands (def is notice)],
 [case $with_goodpri in  
     yes)       echo "Must give --with-goodpri an argument."
                exit 1
@@ -386,10 +394,10 @@ AC_ARG_WITH(goodpri, [  --with-goodpri          syslog priority for commands (de
     no)                echo "Sorry, --without-goodpri not supported."
                exit 1
                ;;
-    *)         AC_DEFINE_UNQUOTED(LOGFAC, $with_goodpri)
+    *)         AC_DEFINE_UNQUOTED(LOGFAC, "$with_goodpri")
                AC_MSG_RESULT([$with_goodpri])
                ;;
-esac], [AC_DEFINE(PRI_SUCCESS, LOG_NOTICE) AC_MSG_RESULT(LOG_NOTICE)])
+esac], [AC_DEFINE_UNQUOTED(PRI_SUCCESS, "notice") AC_MSG_RESULT("notice")])
 
 AC_MSG_CHECKING(at which syslog priority to log failures)
 AC_ARG_WITH(badpri, [  --with-badpri           syslog priority for failures (def is LOG_ALERT)],
@@ -400,10 +408,10 @@ AC_ARG_WITH(badpri, [  --with-badpri           syslog priority for failures (def
     no)                echo "Sorry, --without-badpri not supported."
                exit 1
                ;;
-    *)         AC_DEFINE_UNQUOTED(LOGFAC, $with_badpri)
+    *)         AC_DEFINE_UNQUOTED(LOGFAC, "$with_badpri")
                AC_MSG_RESULT([$with_badpri])
                ;;
-esac], [AC_DEFINE(PRI_FAILURE, LOG_ALERT) AC_MSG_RESULT(LOG_ALERT)])
+esac], [AC_DEFINE_UNQUOTED(PRI_FAILURE, "alert") AC_MSG_RESULT("alert")])
 
 AC_ARG_WITH(logpath, [  --with-logpath          path to the sudo log file],
 [case $with_logpath in  
@@ -446,17 +454,17 @@ AC_ARG_WITH(ignore-dot, [  --with-ignore-dot       ignore '.' in the PATH],
 esac], AC_MSG_RESULT(no))
 
 AC_MSG_CHECKING(who should get the mail that sudo sends)
-AC_ARG_WITH(alertmail, [  --with-alertmail        who should get sudo mail (default is "root")],
-[case $with_alertmail in  
-    yes)       echo "Must give --with-alertmail an argument."
+AC_ARG_WITH(mailto, [  --with-mailto           who should get sudo mail (default is "root")],
+[case $with_mailto in  
+    yes)       echo "Must give --with-mailto an argument."
                exit 1
                ;;
-    no)                echo "Sorry, --without-alertmail not supported."
+    no)                echo "Sorry, --without-mailto not supported."
                ;;
-    *)         AC_DEFINE_UNQUOTED(ALERTMAIL, "$with_alertmail")
-               AC_MSG_RESULT([$with_alertmail])
+    *)         AC_DEFINE_UNQUOTED(MAILTO, "$with_mailto")
+               AC_MSG_RESULT([$with_mailto])
                ;;
-esac], [AC_DEFINE(ALERTMAIL, "root") AC_MSG_RESULT(root)])
+esac], [AC_DEFINE(MAILTO, "root") AC_MSG_RESULT(root)])
 
 AC_ARG_WITH(mailsubject, [  --with-mailsubject      subject of sudo mail],
 [case $with_mailsubject in  
index 9fc32b917f4106068ed9f294cbdd356d14880567..601d5baf85009cd558ab0ea793e349a859c456d5 100644 (file)
@@ -97,139 +97,138 @@ static struct strmap priorities[] = {
 /*
  * Local prototypes.
  */
-static int store_int __P((char *, int, int));
-static int store_str __P((char *, int, int));
-static int store_syslogfac __P((char *, int, int));
-static int store_syslogpri __P((char *, int, int));
-static int store_umask __P((char *, int, int));
-static char *num_to_name __P((int, struct strmap *));
+static int store_int __P((char *, struct sudo_defs_types *, int));
+static int store_str __P((char *, struct sudo_defs_types *, int));
+static int store_syslogfac __P((char *, struct sudo_defs_types *, int));
+static int store_syslogpri __P((char *, struct sudo_defs_types *, int));
+static int store_mode __P((char *, struct sudo_defs_types *, int));
 
 /*
- * Structure describing compile-time and run-time options.
- * Index for T_INT starts at one since index 0 is for flags.
- * XXX - syslog things should be strings (and !facility should turn off)
- * XXX - some of these names are pretty lame.
+ * Table describing compile-time and run-time options.
  */
-struct sudo_defs_types {
-    char *name;
-    unsigned int type;
-    unsigned int index;
-    int (*store) __P((char *, int, int));
-    char *desc;
-} sudo_defs_table[] = {
+struct sudo_defs_types sudo_defs_table[] = {
     {
-       "long_otp_prompt", T_FLAG, FL_LONG_OTP_PROMPT, NULL,
+       "syslog_ifac", T_INT, { 0 },
+       NULL
+    }, {
+       "syslog_igoodpri", T_INT, { 0 },
+       NULL
+    }, {
+       "syslog_ibadpri", T_INT, { 0 },
+       NULL
+    }, {
+       "syslog", T_LOGFAC|T_BOOL, { 0 },
+       "Syslog facility if syslog is being used for logging: %s"
+    }, {
+       "syslog_goodpri", T_LOGPRI, { 0 },
+       "Syslog priority to use when user authenticates successfully: %s"
+    }, {
+       "syslog_badpri", T_LOGPRI, { 0 },
+       "Syslog priority to use when user authenticates unsuccessfully: %s"
+    }, {
+       "long_otp_prompt", T_FLAG, { 0 },
        "Put OTP prompt on its own line"
     }, {
-       "ignore_dot", T_FLAG, FL_IGNORE_DOT, NULL,
+       "ignore_dot", T_FLAG, { 0 },
        "Ignore '.' in $PATH"
     }, {
-       "mail_if_no_user", T_FLAG, FL_MAIL_IF_NOUSER, NULL,
+       "mail_always", T_FLAG, { 0 },
+       "Always send mail when sudo is run"
+    }, {
+       "mail_if_no_user", T_FLAG, { 0 },
        "Send mail if the user is not in sudoers"
     }, {
-       "mail_if_no_host", T_FLAG, FL_MAIL_IF_NOHOST, NULL,
+       "mail_if_no_host", T_FLAG, { 0 },
        "Send mail if the user is not in sudoers for this host"
     }, {
-       "mail_if_no_perms", T_FLAG, FL_MAIL_IF_NOPERMS, NULL,
+       "mail_if_no_perms", T_FLAG, { 0 },
        "Send mail if the user is not allowed to run a command"
-    }, { 
-       "tty_tickets", T_FLAG, FL_TTY_TICKETS, NULL,
+    }, {
+       "tty_tickets", T_FLAG, { 0 },
        "Use a separate timestamp for each user/tty combo"
-    }, { 
-       "lecture", T_FLAG, FL_LECTURE, NULL,
+    }, {
+       "lecture", T_FLAG, { 0 },
        "Lecture user the first time they run sudo"
-    }, { 
-       "authenticate", T_FLAG, FL_AUTHENTICATE, NULL,
+    }, {
+       "authenticate", T_FLAG, { 0 },
        "Require users to authenticate by default"
-    }, { 
-       "root_sudo", T_FLAG, FL_ROOT_SUDO, NULL,
+    }, {
+       "root_sudo", T_FLAG, { 0 },
        "Root may run sudo"
-    }, { 
-       "log_host", T_FLAG, FL_LOG_HOST, NULL,
+    }, {
+       "log_host", T_FLAG, { 0 },
        "Log the hostname in the (non-syslog) log file"
-    }, { 
-       "log_year", T_FLAG, FL_LOG_YEAR, NULL,
+    }, {
+       "log_year", T_FLAG, { 0 },
        "Log the year in the (non-syslog) log file"
-    }, { 
-       "shell_noargs", T_FLAG, FL_SHELL_NOARGS, NULL,
+    }, {
+       "shell_noargs", T_FLAG, { 0 },
        "If sudo is invoked with no arguments, start a shell"
-    }, { 
-       "set_home", T_FLAG, FL_SET_HOME, NULL,
+    }, {
+       "set_home", T_FLAG, { 0 },
        "Set $HOME to the target user when starting a shell with -s"
-    }, { 
-       "path_info", T_FLAG, FL_PATH_INFO, NULL,
+    }, {
+       "path_info", T_FLAG, { 0 },
        "Allow some information gathering to give useful error messages"
-    }, { 
-       "fqdn", T_FLAG, FL_FQDN, NULL,
+    }, {
+       "fqdn", T_FLAG, { 0 },
        "Require fully-qualified hsotnames in the sudoers file"
-    }, { 
-       "insults", T_FLAG, FL_INSULTS, NULL,
+    }, {
+       "insults", T_FLAG, { 0 },
        "Insult the user when they enter an incorrect password"
-    }, { 
-       "syslog", T_INT|T_BOOL, I_LOGFAC, store_syslogfac,
-       "Syslog facility: %s"
-    }, { 
-       "syslog_goodpri", T_INT, I_GOODPRI, store_syslogpri,
-       "Syslog priority to use when user authenticates successfully: %s"
-    }, { 
-       "syslog_badpri", T_INT, I_BADPRI, store_syslogpri,
-       "Syslog priority to use when user authenticates unsuccessfully: %s"
-    }, { 
-       "loglinelen", T_INT, I_LOGLEN, store_int,
-       "Number of length at which to wrap log file lines (0 for no wrap): %d"
-    }, { 
-       "timestamp_timeout", T_INT, I_TS_TIMEOUT, store_int,
+    }, {
+       "loglinelen", T_INT, { 0 },
+       "Length at which to wrap log file lines (0 for no wrap): %d"
+    }, {
+       "timestamp_timeout", T_INT|T_BOOL, { 0 },
        "Authentication timestamp timeout: %d minutes"
-    }, { 
-       "passwd_timeout", T_INT, I_PW_TIMEOUT, store_int,
+    }, {
+       "passwd_timeout", T_INT|T_BOOL, { 0 },
        "Password prompt timeout: %d minutes"
-    }, { 
-       "passwd_tries", T_INT, I_PW_TRIES, store_int,
+    }, {
+       "passwd_tries", T_INT, { 0 },
        "Number of tries to enter a password: %d"
-    }, { 
-       "umask", T_INT|T_BOOL, I_UMASK, store_umask,
+    }, {
+       "umask", T_MODE|T_BOOL, { 0 },
        "Umask to use or 0777 to use user's: 0%o"
-    }, { 
-       "logfile", T_STR, I_LOGFILE, store_str,
+    }, {
+       "logfile", T_STR|T_BOOL, { 0 },
        "Path to log file: %s"
-    }, { 
-       "mailerpath", T_STR, I_MAILERPATH, store_str,
+    }, {
+       "mailerpath", T_STR|T_BOOL, { 0 },
        "Path to mail program: %s"
-    }, { 
-       "mailerflags", T_STR, I_MAILERARGS, store_str,
+    }, {
+       "mailerflags", T_STR|T_BOOL, { 0 },
        "Flags for mail program: %s"
-    }, { 
-       "alertmail", T_STR, I_ALERTMAIL, store_str,
+    }, {
+       "mailto", T_STR|T_BOOL, { 0 },
        "Address to send mail to: %s"
-    }, { 
-       "mailsub", T_STR, I_MAILSUB, store_str,
+    }, {
+       "mailsub", T_STR, { 0 },
        "Subject line for mail messages: %s"
-    }, { 
-       "badpass_message", T_STR, I_BADPASS_MSG, store_str,
+    }, {
+       "badpass_message", T_STR, { 0 },
        "Incorrect password message: %s"
-    }, { 
-       "timestampdir", T_STR, I_TIMESTAMPDIR, store_str,
+    }, {
+       "timestampdir", T_STR, { 0 },
        "Path to authentication timestamp dir: %s"
-    }, { 
-       "exempt_group", T_STR, I_EXEMPT_GRP, store_str,
+    }, {
+       "exempt_group", T_STR|T_BOOL, { 0 },
        "Users in this group are exempt from password and PATH requirements: %s"
-    }, { 
-       "passprompt", T_STR, I_PASSPROMPT, store_str,
+    }, {
+       "passprompt", T_STR, { 0 },
        "Default password prompt: %s"
-    }, { 
-       "runas_default", T_STR, I_RUNAS_DEF, store_str,
+    }, {
+       "runas_default", T_STR, { 0 },
        "Default user to run commands as: %s"
-    }, { 
-       "secure_path", T_STR, I_SECURE_PATH, store_str,
-       "Override user's $PATH with: %s"
     }, {
-       NULL, 0, 0, NULL, NULL
+       "secure_path", T_STR|T_BOOL, { 0 },
+       "Value to override user's $PATH with: %s"
+    }, {
+       NULL, 0, { 0 }, NULL
     }
 };
 
-unsigned int sudo_inttable[SUDO_INTTABLE_LAST];
-char *sudo_strtable[SUDO_STRTABLE_LAST];
-
 /*
  * Print version and configure info.
  */
@@ -239,28 +238,26 @@ dump_defaults()
     struct sudo_defs_types *cur;
 
     for (cur = sudo_defs_table; cur->name; cur++) {
-       switch (cur->type & T_MASK) {
-           case T_FLAG:
-               if ((sudo_inttable[I_FLAGS]) & (cur->index))
-                   puts(cur->desc);
-               break;
-           case T_STR:
-               if (sudo_strtable[cur->index]) {
-                   (void) printf(cur->desc, sudo_strtable[cur->index]);
+       if (cur->desc) {
+           switch (cur->type & T_MASK) {
+               case T_FLAG:
+                   if (cur->sd_un.flag)
+                       puts(cur->desc);
+                   break;
+               case T_STR:
+               case T_LOGFAC:
+               case T_LOGPRI:
+                   if (cur->sd_un.str) {
+                       (void) printf(cur->desc, cur->sd_un.str);
+                       putchar('\n');
+                   }
+                   break;
+               case T_INT:
+               case T_MODE:
+                   (void) printf(cur->desc, cur->sd_un.ival);
                    putchar('\n');
-               }
-               break;
-           case T_INT:
-               if (cur->index == I_LOGFAC)
-                   (void) printf(cur->desc,
-                       num_to_name(sudo_inttable[cur->index], facilities));
-               else if (cur->index == I_GOODPRI || cur->index == I_BADPRI)
-                   (void) printf(cur->desc,
-                       num_to_name(sudo_inttable[cur->index], priorities));
-               else
-                   (void) printf(cur->desc, sudo_inttable[cur->index]);
-               putchar('\n');
-               break;
+                   break;
+           }
        }
     }
 
@@ -282,40 +279,24 @@ list_options()
 
     (void) puts("Available options in a sudoers ``Defaults'' line:\n");
     for (cur = sudo_defs_table; cur->name; cur++) {
-       switch (cur->type & T_MASK) {
-           case T_FLAG:
-               (void) printf("%s: %s\n", cur->name, cur->desc);
-               break;
-           case T_STR:
-           case T_INT:
-               p = strrchr(cur->desc, ':');
-               if (p)
-                   (void) printf("%s: %.*s\n", cur->name, p - cur->desc,
-                       cur->desc);
-               else
+       if (cur->name && cur->desc) {
+           switch (cur->type & T_MASK) {
+               case T_FLAG:
                    (void) printf("%s: %s\n", cur->name, cur->desc);
-               break;
+                   break;
+               default:
+                   p = strrchr(cur->desc, ':');
+                   if (p)
+                       (void) printf("%s: %.*s\n", cur->name, p - cur->desc,
+                           cur->desc);
+                   else
+                       (void) printf("%s: %s\n", cur->name, cur->desc);
+                   break;
+           }
        }
     }
 }
 
-/*
- * Convert a syslog number to a name.
- */
-static char *
-num_to_name(num, table)
-    int num;
-    struct strmap *table;
-{
-    struct strmap *t;
-
-    for (t = table; t->name; t++)
-       if (t->num == num)
-           return(t->name);
-
-    return("disabled");
-}
-
 /*
  * Sets/clears an entry in the defaults structure
  * If a variable that takes a value is used in a boolean
@@ -344,6 +325,22 @@ set_default(var, val, op)
     }
 
     switch (cur->type & T_MASK) {
+       case T_LOGFAC:
+           if (!store_syslogfac(val, cur, op)) {
+               (void) fprintf(stderr,
+                   "%s: value '%s' is invalid for option '%s'\n", Argv[0],
+                   val, var);
+               return(FALSE);
+           }
+           break;
+       case T_LOGPRI:
+           if (!store_syslogpri(val, cur, op)) {
+               (void) fprintf(stderr,
+                   "%s: value '%s' is invalid for option '%s'\n", Argv[0],
+                   val, var);
+               return(FALSE);
+           }
+           break;
        case T_STR:
            if (!val) {
                /* Check for bogus boolean usage or lack of a value. */
@@ -354,7 +351,7 @@ set_default(var, val, op)
                    return(FALSE);
                }
            }
-           if (!cur->store(val, cur->index, op)) {
+           if (!store_str(val, cur, op)) {
                (void) fprintf(stderr,
                    "%s: value '%s' is invalid for option '%s'\n", Argv[0],
                    val, var);
@@ -371,7 +368,24 @@ set_default(var, val, op)
                    return(FALSE);
                }
            }
-           if (!cur->store(val, cur->index, op)) {
+           if (!store_int(val, cur, op)) {
+               (void) fprintf(stderr,
+                   "%s: value '%s' is invalid for option '%s'\n", Argv[0],
+                   val, var);
+               return(FALSE);
+           }
+           break;
+       case T_MODE:
+           if (!val) {
+               /* Check for bogus boolean usage or lack of a value. */
+               if (!(cur->type & T_BOOL) || op != FALSE) {
+                   (void) fprintf(stderr,
+                       "%s: no value specified for `%s' on line %d\n", Argv[0],
+                       var, sudolineno);
+                   return(FALSE);
+               }
+           }
+           if (!store_mode(val, cur, op)) {
                (void) fprintf(stderr,
                    "%s: value '%s' is invalid for option '%s'\n", Argv[0],
                    val, var);
@@ -385,10 +399,7 @@ set_default(var, val, op)
                    Argv[0], var, sudolineno);
                return(FALSE);
            }
-           if (op == TRUE)
-               sudo_inttable[0] |= cur->index;
-           else
-               sudo_inttable[0] &= ~(cur->index);
+           cur->sd_un.flag = op;
            break;
     }
 
@@ -403,108 +414,108 @@ void
 init_defaults()
 {
     static int firsttime = 1;
-    int i;
+    struct sudo_defs_types *def;
 
     /* Free any strings that were set. */
     if (!firsttime) {
-       for (i = 0; i < SUDO_STRTABLE_LAST; i++)
-           if (sudo_strtable[i])
-               free(sudo_strtable[i]);
+       for (def = sudo_defs_table; def->name; def++)
+           switch (def->type & T_MASK) {
+               case T_STR:
+               case T_LOGFAC:
+               case T_LOGPRI:
+                   if (def->sd_un.str)
+                       free(def->sd_un.str);
+                   break;
+           }
     }
 
-    memset(sudo_strtable, 0, sizeof(sudo_strtable));
-    memset(sudo_inttable, 0, sizeof(sudo_inttable));
-
     /* First initialize the flags. */
 #ifdef LONG_OTP_PROMPT
-    sudo_inttable[I_FLAGS] |= FL_LONG_OTP_PROMPT;
+    def_flag(I_LONG_OTP_PROMPT) = TRUE;
 #endif
 #ifdef IGNORE_DOT_PATH
-    sudo_inttable[I_FLAGS] |= FL_IGNORE_DOT;
+    def_flag(I_IGNORE_DOT) = TRUE;
 #endif
 #ifdef ALWAYS_SEND_MAIL
-    sudo_inttable[I_FLAGS] |= FL_MAIL_ALWAYS;
+    def_flag(I_MAIL_ALWAYS) = TRUE;
 #endif
 #ifdef SEND_MAIL_WHEN_NO_USER
-    sudo_inttable[I_FLAGS] |= FL_MAIL_IF_NOUSER;
+    def_flag(I_MAIL_IF_NOUSER) = TRUE;
 #endif
 #ifdef SEND_MAIL_WHEN_NO_HOST
-    sudo_inttable[I_FLAGS] |= FL_MAIL_IF_NOHOST;
+    def_flag(I_MAIL_IF_NOHOST) = TRUE;
 #endif
 #ifdef SEND_MAIL_WHEN_NOT_OK
-    sudo_inttable[I_FLAGS] |= FL_MAIL_IF_NOPERMS;
+    def_flag(I_MAIL_IF_NOPERMS) = TRUE;
 #endif
 #ifdef USE_TTY_TICKETS
-    sudo_inttable[I_FLAGS] |= FL_TTY_TICKETS;
+    def_flag(I_TTY_TICKETS) = TRUE;
 #endif
 #ifndef NO_LECTURE
-    sudo_inttable[I_FLAGS] |= FL_LECTURE;
+    def_flag(I_LECTURE) = TRUE;
 #endif
 #ifndef NO_AUTHENTICATION
-    sudo_inttable[I_FLAGS] |= FL_AUTHENTICATE;
+    def_flag(I_AUTHENTICATE) = TRUE;
 #endif
 #ifndef NO_ROOT_SUDO
-    sudo_inttable[I_FLAGS] |= FL_ROOT_SUDO;
+    def_flag(I_ROOT_SUDO) = TRUE;
 #endif
 #ifdef HOST_IN_LOG
-    sudo_inttable[I_FLAGS] |= FL_LOG_HOST;
+    def_flag(I_LOG_HOST) = TRUE;
 #endif
 #ifdef SHELL_IF_NO_ARGS
-    sudo_inttable[I_FLAGS] |= FL_SHELL_NOARGS;
+    def_flag(I_SHELL_NOARGS) = TRUE;
 #endif
 #ifdef SHELL_SETS_HOME
-    sudo_inttable[I_FLAGS] |= FL_SET_HOME;
+    def_flag(I_SET_HOME) = TRUE;
 #endif
 #ifndef DONT_LEAK_PATH_INFO
-    sudo_inttable[I_FLAGS] |= FL_PATH_INFO;
+    def_flag(I_PATH_INFO) = TRUE;
 #endif
 #ifdef FQDN
-    sudo_inttable[I_FLAGS] |= FL_FQDN;
+    def_flag(I_FQDN) = TRUE;
 #endif
 #ifdef USE_INSULTS
-    sudo_inttable[I_FLAGS] |= FL_INSULTS;
+    def_flag(I_INSULTS) = TRUE;
 #endif
 
-    /* Then initialize the ints. */
+    /* Syslog options need special care since they both strings and ints */
 #if (LOGGING & SLOG_SYSLOG)
-    sudo_inttable[I_LOGFAC] = LOGFAC;
-    sudo_inttable[I_GOODPRI] = PRI_SUCCESS;
-    sudo_inttable[I_BADPRI] = PRI_FAILURE;
-#else
-    sudo_inttable[I_LOGFAC] = (unsigned int)-1;
+    (void) store_syslogfac(LOGFAC, &sudo_defs_table[I_LOGFACSTR], TRUE);
+    (void) store_syslogpri(PRI_SUCCESS, &sudo_defs_table[I_GOODPRISTR], TRUE);
+    (void) store_syslogpri(PRI_FAILURE, &sudo_defs_table[I_BADPRISTR], TRUE);
 #endif
+
+    /* Then initialize the int-like things. */
 #ifdef SUDO_UMASK
-    sudo_inttable[I_UMASK] = SUDO_UMASK;
+    def_mode(I_UMASK) = SUDO_UMASK;
 #else
-    sudo_inttable[I_UMASK] = 0777;
+    def_mode(I_UMASK) = 0777;
 #endif
-    sudo_inttable[I_LOGLEN] = MAXLOGFILELEN;
-    sudo_inttable[I_TS_TIMEOUT] = TIMEOUT;
-    sudo_inttable[I_PW_TIMEOUT] = PASSWORD_TIMEOUT;
-    sudo_inttable[I_PW_TRIES] = TRIES_FOR_PASSWORD;
+    def_ival(I_LOGLEN) = MAXLOGFILELEN;
+    def_ival(I_TS_TIMEOUT) = TIMEOUT;
+    def_ival(I_PW_TIMEOUT) = PASSWORD_TIMEOUT;
+    def_ival(I_PW_TRIES) = TRIES_FOR_PASSWORD;
 
     /* Finally do the strings */
-    sudo_strtable[I_ALERTMAIL] = estrdup(ALERTMAIL);
-    sudo_strtable[I_MAILSUB] = estrdup(MAILSUBJECT);
-    sudo_strtable[I_BADPASS_MSG] = estrdup(INCORRECT_PASSWORD);
-    sudo_strtable[I_TIMESTAMPDIR] = estrdup(_PATH_SUDO_TIMEDIR);
-    sudo_strtable[I_PASSPROMPT] = estrdup(PASSPROMPT);
-    sudo_strtable[I_RUNAS_DEF] = estrdup(RUNAS_DEFAULT);
+    def_str(I_MAILTO) = estrdup(MAILTO);
+    def_str(I_MAILSUB) = estrdup(MAILSUBJECT);
+    def_str(I_BADPASS_MSG) = estrdup(INCORRECT_PASSWORD);
+    def_str(I_TIMESTAMPDIR) = estrdup(_PATH_SUDO_TIMEDIR);
+    def_str(I_PASSPROMPT) = estrdup(PASSPROMPT);
+    def_str(I_RUNAS_DEF) = estrdup(RUNAS_DEFAULT);
 #ifdef _PATH_SENDMAIL
-    sudo_strtable[I_MAILERPATH] = estrdup(_PATH_SENDMAIL);
+    def_str(I_MAILERPATH) = estrdup(_PATH_SENDMAIL);
+    def_str(I_MAILERFLAGS) = estrdup("-t");
 #endif
 #if (LOGGING & SLOG_FILE)
-    sudo_strtable[I_LOGFILE] = estrdup(_PATH_SUDO_LOGFILE);
+    def_str(I_LOGFILE) = estrdup(_PATH_SUDO_LOGFILE);
 #endif
 #ifdef EXEMPTGROUP
-    sudo_strtable[I_EXEMPT_GRP] = estrdup(EXEMPTGROUP);
+    def_str(I_EXEMPT_GRP) = estrdup(EXEMPTGROUP);
 #endif
 #ifdef SECURE_PATH
-    sudo_strtable[I_SECURE_PATH] = estrdup(SECURE_PATH);
-#endif
-#if 0
-    /* XXX - implement */
-    sudo_strtable[I_MAILERARGS] = estrdup(XXX);
+    def_str(I_SECURE_PATH) = estrdup(SECURE_PATH);
 #endif
 
     /*
@@ -513,104 +524,122 @@ init_defaults()
      * value changes we get the change.
      */
     if (user_runas == NULL)
-       user_runas = &sudo_strtable[I_RUNAS_DEF];
+       user_runas = &def_str(I_RUNAS_DEF);
 
     firsttime = 0;
 }
 
 static int
-store_int(val, index, op)
+store_int(val, def, op)
     char *val;
-    int index;
+    struct sudo_defs_types *def;
     int op;
 {
     char *endp;
     unsigned long ul;
 
     if (op == FALSE) {
-       sudo_inttable[index] = 0;
+       def->sd_un.ival = 0;
     } else {
        ul = strtoul(val, &endp, 10);
        if (*endp != '\0')
            return(FALSE);
        /* XXX - should check against UINT_MAX */
-       sudo_inttable[index] = (unsigned int)ul;
+       def->sd_un.ival = (unsigned int)ul;
     }
     return(TRUE);
 }
 
 static int
-store_str(val, index, op)
+store_str(val, def, op)
     char *val;
-    int index;
+    struct sudo_defs_types *def;
     int op;
 {
 
-    if (sudo_strtable[index])
-       free(sudo_strtable[index]);
+    if (def->sd_un.str)
+       free(def->sd_un.str);
     if (op == FALSE)
-       sudo_strtable[index] = NULL;
+       def->sd_un.str = NULL;
     else
-       sudo_strtable[index] = estrdup(val);
+       def->sd_un.str = estrdup(val);
     return(TRUE);
 }
 
 static int
-store_syslogfac(val, index, op)
+store_syslogfac(val, def, op)
     char *val;
-    int index;
+    struct sudo_defs_types *def;
     int op;
 {
     struct strmap *fac;
 
     if (op == FALSE) {
-       sudo_inttable[index] = (unsigned int)-1;
+       free(def->sd_un.str);
+       def->sd_un.str = NULL;
        return(TRUE);
     }
 
     for (fac = facilities; fac->name && strcmp(val, fac->name); fac++)
        ;
     if (fac->name == NULL)
-       return(FALSE);
-    sudo_inttable[index] = fac->num;
+       return(FALSE);                          /* not found */
+
+    /* Store both name and number. */
+    if (def->sd_un.str)
+       free(def->sd_un.str);
+    def->sd_un.str = estrdup(fac->name);
+    sudo_defs_table[I_LOGFAC].sd_un.ival = fac->num;
     return(TRUE);
 }
 
 static int
-store_syslogpri(val, index, op)
+store_syslogpri(val, def, op)
     char *val;
-    int index;
+    struct sudo_defs_types *def;
     int op;
 {
     struct strmap *pri;
+    struct sudo_defs_types *idef;
 
     if (op == FALSE)
        return(FALSE);
+    if (def == &sudo_defs_table[I_GOODPRISTR])
+       idef = &sudo_defs_table[I_GOODPRI];
+    else if (def == &sudo_defs_table[I_BADPRISTR])
+       idef = &sudo_defs_table[I_BADPRI];
+    else
+       return(FALSE);
 
     for (pri = priorities; pri->name && strcmp(val, pri->name); pri++)
        ;
     if (pri->name == NULL)
-       return(FALSE);
-    sudo_inttable[index] = pri->num;
+       return(FALSE);                          /* not found */
+
+    /* Store both name and number. */
+    if (def->sd_un.str)
+       free(def->sd_un.str);
+    def->sd_un.str = estrdup(pri->name);
+    idef->sd_un.ival = pri->num;
     return(TRUE);
 }
 
 static int
-store_umask(val, index, op)
+store_mode(val, def, op)
     char *val;
-    int index;
+    struct sudo_defs_types *def;
     int op;
 {
     char *endp;
     unsigned long ul;
 
     if (op == FALSE) {
-       sudo_inttable[index] = 0777;
+       def->sd_un.mode = 0777;
     } else {
        ul = strtoul(val, &endp, 8);
        if (*endp != '\0' || ul >= 0777)
            return(FALSE);
-       sudo_inttable[index] = (mode_t)ul;
+       def->sd_un.mode = (mode_t)ul;
     }
     return(TRUE);
 }
index c07ca67b2b18e20f5a0e9425d7230e63324dd821..7edec91290e487a4cc5c66fd567ec2bb9737843a 100644 (file)
 #define _SUDO_DEFAULTS_H
 
 /*
- * Four types of defaults: strings, integers, booleans, and flags.
- * Note that flags have their value in the index field.
- * Also, T_INT or T_STR may be ANDed with T_BOOL to indicate that
- * a value is not required.
+ * Structure describing compile-time and run-time options.
  */
-#define T_INT  0x01
-#define T_STR  0x02
-#define T_FLAG 0x08
-#define T_MASK 0x0F
-#define T_BOOL 0x10
+struct sudo_defs_types {
+    char *name;
+    int type;
+    union {
+       int flag;
+       char *str;
+       unsigned int ival;
+       mode_t mode;
+    } sd_un;
+    char *desc;
+};
 
 /*
- * Flag values
+ * Four types of defaults: strings, integers, and flags.
+ * Also, T_INT or T_STR may be ANDed with T_BOOL to indicate that
+ * a value is not required.  Flags are boolean by nature...
  */
-#define FL_LONG_OTP_PROMPT     0x00001
-#define FL_IGNORE_DOT          0x00002
-#define FL_MAIL_ALWAYS         0x00004
-#define FL_MAIL_IF_NOUSER      0x00008
-#define FL_MAIL_IF_NOHOST      0x00010
-#define FL_MAIL_IF_NOPERMS     0x00020
-#define FL_TTY_TICKETS         0x00040
-#define FL_LECTURE             0x00080
-#define FL_AUTHENTICATE                0x00100
-#define FL_ROOT_SUDO           0x00200
-#define FL_LOG_HOST            0x00400
-#define FL_SHELL_NOARGS                0x00800
-#define FL_SET_HOME            0x01000
-#define FL_PATH_INFO           0x02000
-#define FL_FQDN                        0x04000
-#define FL_INSULTS             0x08000
-#define FL_LOG_YEAR            0x10000
-#define FL_MAX                 0xFFFFF
+#define T_INT          0x001
+#define T_STR          0x002
+#define T_FLAG         0x003
+#define T_MODE         0x004
+#define T_LOGFAC       0x005
+#define T_LOGPRI       0x006
+#define T_MASK         0x0FF
+#define T_BOOL         0x100
 
 /*
- * Indexes into sudo_inttable
+ * Indexes into sudo_defs_table
  */
-#define        I_FLAGS         0       /* various flags, as listed above */
-#define        I_LOGFAC        1       /* syslog facility */
-#define        I_GOODPRI       2       /* syslog priority for successful auth */
-#define        I_BADPRI        3       /* syslog priority for unsuccessful auth */
-#define        I_LOGLEN        4       /* wrap log file line after N chars */
-#define        I_TS_TIMEOUT    5       /* timestamp stale after N minutes */
-#define        I_PW_TIMEOUT    6       /* exit if pass not entered in N minutes */
-#define        I_PW_TRIES      7       /* exit after N bad password tries */
-#define        I_UMASK         8       /* umask to use or 0777 to use user's */
 
-/*
- * Indexes into sudo_strtable
- */
-#define        I_LOGFILE       0       /* path to logfile (or NULL for none) */
-#define        I_MAILERPATH    1       /* path to sendmail or other mailer */
-#define        I_MAILERARGS    2       /* flags to pass to the mailer */
-#define        I_ALERTMAIL     3       /* who to send bitch mail to */
-#define        I_MAILSUB       4       /* subject line of mail msg */
-#define        I_BADPASS_MSG   5       /* what to say when passwd is wrong */
-#define        I_TIMESTAMPDIR  6       /* path to timestamp dir */
-#define        I_EXEMPT_GRP    7       /* no password or PATH override for these */
-#define        I_PASSPROMPT    8       /* password prompt */
-#define        I_RUNAS_DEF     9       /* default user to run commands as */
-#define        I_SECURE_PATH   10      /* set $PATH to this if not NULL */
+/* Integer versions of syslog options.  */
+#define        I_LOGFAC        0       /* syslog facility */
+#define        I_GOODPRI       1       /* syslog priority for successful auth */
+#define        I_BADPRI        2       /* syslog priority for unsuccessful auth */
+
+/* String versions of syslog options.  */
+#define        I_LOGFACSTR     3       /* syslog facility */
+#define        I_GOODPRISTR    4       /* syslog priority for successful auth */
+#define        I_BADPRISTR     5       /* syslog priority for unsuccessful auth */
 
-#define SUDO_INTTABLE_LAST     9
-#define SUDO_STRTABLE_LAST     11
+/* Booleans */
+#define I_LONG_OTP_PROMPT      6
+#define I_IGNORE_DOT           7
+#define I_MAIL_ALWAYS          8
+#define I_MAIL_IF_NOUSER       9
+#define I_MAIL_IF_NOHOST       10
+#define I_MAIL_IF_NOPERMS      11
+#define I_TTY_TICKETS          12
+#define I_LECTURE              13
+#define I_AUTHENTICATE         14
+#define I_ROOT_SUDO            15
+#define I_LOG_HOST             16
+#define I_LOG_YEAR             17
+#define I_SHELL_NOARGS         18
+#define I_SET_HOME             19
+#define I_PATH_INFO            20
+#define I_FQDN                 21
+#define I_INSULTS              22
 
-#define sudo_flag_set(_f)      (sudo_inttable[I_FLAGS] & (_f))
+/* Integer values */
+#define        I_LOGLEN        23      /* wrap log file line after N chars */
+#define        I_TS_TIMEOUT    24      /* timestamp stale after N minutes */
+#define        I_PW_TIMEOUT    25      /* exit if pass not entered in N minutes */
+#define        I_PW_TRIES      26      /* exit after N bad password tries */
+#define        I_UMASK         27      /* umask to use or 0777 to use user's */
 
-extern unsigned int sudo_inttable[SUDO_INTTABLE_LAST];
-extern char *sudo_strtable[SUDO_STRTABLE_LAST];
+/* Strings */
+#define        I_LOGFILE       28      /* path to logfile (or NULL for none) */
+#define        I_MAILERPATH    29      /* path to sendmail or other mailer */
+#define        I_MAILERFLAGS   30      /* flags to pass to the mailer */
+#define        I_MAILTO        31      /* who to send bitch mail to */
+#define        I_MAILSUB       32      /* subject line of mail msg */
+#define        I_BADPASS_MSG   33      /* what to say when passwd is wrong */
+#define        I_TIMESTAMPDIR  34      /* path to timestamp dir */
+#define        I_EXEMPT_GRP    35      /* no password or PATH override for these */
+#define        I_PASSPROMPT    36      /* password prompt */
+#define        I_RUNAS_DEF     37      /* default user to run commands as */
+#define        I_SECURE_PATH   38      /* set $PATH to this if not NULL */
+
+/*
+ * Macros for accessing sudo_defs_table.
+ */
+#define def_flag(_i)   (sudo_defs_table[(_i)].sd_un.flag)
+#define def_ival(_i)   (sudo_defs_table[(_i)].sd_un.ival)
+#define def_str(_i)    (sudo_defs_table[(_i)].sd_un.str)
+#define def_mode(_i)   (sudo_defs_table[(_i)].sd_un.mode)
 
 /*
  * Prototypes
@@ -115,4 +135,6 @@ int set_default             __P((char *, char *, int));
 void init_defaults     __P((void));
 void list_options      __P((void));
 
+extern struct sudo_defs_types sudo_defs_table[];
+
 #endif /* _SUDO_DEFAULTS_H */
index 26d8efae49e3f75f83d654b3667466b0a309f8c5..be4865904473d98c4233a79558ed18c0926e76b2 100644 (file)
@@ -72,7 +72,7 @@ static const char rcsid[] = "$Sudo$";
  * stores it in a statically allocated array, filling in a pointer
  * to the array.  Returns FOUND if the command was found, NOT_FOUND
  * if it was not found, or NOT_FOUND_DOT if it would have been found
- * but it is in '.' and FL_IGNORE_DOT is set.
+ * but it is in '.' and IGNORE_DOT is set.
  */
 int
 find_path(infile, outfile)
@@ -108,8 +108,8 @@ find_path(infile, outfile)
      * Grab PATH out of the environment (or from the string table
      * if SECURE_PATH is in effect) and make a local copy.
      */
-    if (sudo_strtable[I_SECURE_PATH])
-       path = sudo_strtable[I_SECURE_PATH];
+    if (def_str(I_SECURE_PATH))
+       path = def_str(I_SECURE_PATH);
     else if ((path = getenv("PATH")) == NULL)
        return(NOT_FOUND);
     path = estrdup(path);
@@ -150,7 +150,7 @@ find_path(infile, outfile)
      */
     if (!result && checkdot) {
        result = sudo_goodpath(infile);
-       if (result && sudo_flag_set(FL_IGNORE_DOT))
+       if (result && def_flag(I_IGNORE_DOT))
            return(NOT_FOUND_DOT);
     }
 
index 53fc8f1e6c224069ab921d33f4735b4b2d27776a..80d10d8e2456421c8a73e9a693ad7e7fea762118 100644 (file)
@@ -144,9 +144,9 @@ sudo_getepw(pw)
 
        spw = getprpwnam(pw->pw_name);
        if (spw != NULL && spw->ufld.fd_encrypt != NULL) {
-#  ifdef __alpha
+# ifdef __alpha
            crypt_type = spw->ufld.fd_oldcrypt;
-#  endif /* __alpha */
+# endif /* __alpha */
            return(spw->ufld.fd_encrypt);
        }
     }
index b086f858f9a00615e4ddeba95f9f15b760d4e5da..b9f60047232c98964f7f8caaec9b21fd8891b29b 100644 (file)
--- a/logging.c
+++ b/logging.c
@@ -154,32 +154,32 @@ do_logfile(msg)
     char *beg, *oldend, *end;
     FILE *fp;
     mode_t oldmask;
-    int maxlen = sudo_inttable[I_LOGLEN];
+    int maxlen = def_ival(I_LOGLEN);
 
     oldmask = umask(077);
-    fp = fopen(sudo_strtable[I_LOGFILE], "a");
+    fp = fopen(def_str(I_LOGFILE), "a");
     (void) umask(oldmask);
     if (fp == NULL) {
        easprintf(&full_line, "Can't open log file: %s: %s",
-           sudo_strtable[I_LOGFILE], strerror(errno));
+           def_str(I_LOGFILE), strerror(errno));
        send_mail(full_line);
        free(full_line);
     } else if (!lock_file(fileno(fp), SUDO_LOCK)) {
        easprintf(&full_line, "Can't lock log file: %s: %s",
-           sudo_strtable[I_LOGFILE], strerror(errno));
+           def_str(I_LOGFILE), strerror(errno));
        send_mail(full_line);
        free(full_line);
     } else {
-       if (sudo_inttable[I_LOGLEN] == 0) {
+       if (def_ival(I_LOGLEN) == 0) {
            /* Don't pretty-print long log file lines (hard to grep) */
-           if (sudo_flag_set(FL_LOG_HOST))
+           if (def_flag(I_LOG_HOST))
                (void) fprintf(fp, "%s : %s : HOST=%s : %s\n", get_timestr(),
                    user_name, user_shost, msg);
            else
                (void) fprintf(fp, "%s : %s : %s\n", get_timestr(),
                    user_name, msg);
        } else {
-           if (sudo_flag_set(FL_LOG_HOST))
+           if (def_flag(I_LOG_HOST))
                easprintf(&full_line, "%s : %s : HOST=%s : %s", get_timestr(),
                    user_name, user_shost, msg);
            else
@@ -255,9 +255,9 @@ log_auth(status, inform_user)
     int pri;
 
     if (status & VALIDATE_OK)
-       pri = PRI_SUCCESS;
+       pri = def_ival(I_GOODPRI);
     else
-       pri = PRI_FAILURE;
+       pri = def_ival(I_BADPRI);
 
     /* Set error message, if any. */
     if (status & VALIDATE_OK)
@@ -298,9 +298,9 @@ log_auth(status, inform_user)
     /*
      * Log via syslog and/or a file.
      */
-    if (sudo_inttable[I_LOGFAC] != (unsigned int)-1)
+    if (def_str(I_LOGFACSTR))
        do_syslog(pri, logline);
-    if (sudo_strtable[I_LOGFILE])
+    if (def_str(I_LOGFILE))
        do_logfile(logline);
 
     free(logline);
@@ -379,9 +379,9 @@ log_error(va_alist)
     /*
      * Log to syslog and/or a file.
      */
-    if (sudo_inttable[I_LOGFAC] != (unsigned int)-1)
-       do_syslog(PRI_FAILURE, logline);
-    if (sudo_strtable[I_LOGFILE])
+    if (def_str(I_LOGFACSTR))
+       do_syslog(def_ival(I_BADPRI), logline);
+    if (def_str(I_LOGFILE))
        do_logfile(logline);
 
     free(logline);
@@ -389,8 +389,10 @@ log_error(va_alist)
        free(message);
 }
 
+#define MAX_MAILFLAGS  63
+
 /*
- * Send a message to ALERTMAIL
+ * Send a message to MAILTO user
  */
 static void
 send_mail(line)
@@ -401,7 +403,7 @@ send_mail(line)
     int pfd[2], pid;
 
     /* Just return if mailer is disabled. */
-    if (!sudo_strtable[I_MAILERPATH])
+    if (!def_str(I_MAILERPATH) || !def_str(I_MAILTO))
        return;
 
     if ((pid = fork()) > 0) {  /* Child. */
@@ -425,15 +427,37 @@ send_mail(line)
                exit(1);
                break;
            case 0:
-               /* Grandchild. */
-               (void) close(pfd[1]);
-               (void) dup2(pfd[0], STDIN_FILENO);
-               (void) close(pfd[0]);
-
-               /* Run sendmail as root so user cannot kill it. */
-               set_perms(PERM_ROOT, 0);
-               execl(_PATH_SENDMAIL, "sendmail", "-t", NULL);
-               _exit(127);
+               {
+                   char *argv[MAX_MAILFLAGS + 1];
+                   char *mpath, *mflags;
+                   int i;
+
+                   /* Grandchild. */
+                   (void) close(pfd[1]);
+                   (void) dup2(pfd[0], STDIN_FILENO);
+                   (void) close(pfd[0]);
+
+                   /* Build up an argv based the mailer path and flags */
+                   mflags = estrdup(def_str(I_MAILERFLAGS));
+                   mpath = estrdup(def_str(I_MAILERPATH));
+                   if ((argv[0] = strrchr(mpath, ' ')))
+                       argv[0]++;
+                   else
+                       argv[0] = mpath;
+
+                   i = 1;
+                   if ((p = strtok(mflags, " \t"))) {
+                       do {
+                           argv[i] = p;
+                       } while (++i < MAX_MAILFLAGS && (p = strtok(NULL, " \t")));
+                   }
+                   argv[i] = NULL;
+
+                   /* Run mailer as root so user cannot kill it. */
+                   set_perms(PERM_ROOT, 0);
+                   execv(mpath, argv);
+                   _exit(127);
+               }
                break;
        }
 
@@ -442,8 +466,8 @@ send_mail(line)
 
        /* Pipes are all setup, send message via sendmail. */
        (void) fprintf(mail, "To: %s\nFrom: %s\nSubject: ",
-           sudo_strtable[I_ALERTMAIL], user_name);
-       for (p = sudo_strtable[I_MAILSUB]; *p; p++) {
+           def_str(I_MAILTO), user_name);
+       for (p = def_str(I_MAILSUB); *p; p++) {
            /* Expand escapes in the subject */
            if (*p == '%' && *(p+1) != '%') {
                switch (*(++p)) {
@@ -486,16 +510,16 @@ mail_auth(status, line)
     int mail_mask;
 
     /* If any of these bits are set in status, we send mail. */
-    if (sudo_flag_set(FL_MAIL_ALWAYS))
+    if (def_flag(I_MAIL_ALWAYS))
        mail_mask =
            VALIDATE_ERROR|VALIDATE_OK|FLAG_NO_USER|FLAG_NO_HOST|VALIDATE_NOT_OK;
     else {
        mail_mask = VALIDATE_ERROR;
-       if (sudo_flag_set(FL_MAIL_IF_NOUSER))
+       if (def_flag(I_MAIL_IF_NOUSER))
            mail_mask |= FLAG_NO_USER;
-       if (sudo_flag_set(FL_MAIL_IF_NOHOST))
+       if (def_flag(I_MAIL_IF_NOHOST))
            mail_mask |= FLAG_NO_HOST;
-       if (sudo_flag_set(FL_MAIL_IF_NOPERMS))
+       if (def_flag(I_MAIL_IF_NOPERMS))
            mail_mask |= VALIDATE_NOT_OK;
     }
 
@@ -538,24 +562,23 @@ get_timestr()
     struct tm *timeptr;
 
     timeptr = localtime(&now);
-    if (sudo_flag_set(FL_LOG_YEAR))
+    if (def_flag(I_LOG_YEAR))
        s = "%h %e %T %Y";
     else
        s = "%h %e %T";
 
     /* strftime() does not guarantee to NUL-terminate so we must check. */
     buf[sizeof(buf) - 1] = '\0';
-    if (strftime(buf, sizeof(buf), s, timeptr) && !buf[sizeof(buf) - 1])
+    if (strftime(buf, sizeof(buf), s, timeptr) && buf[sizeof(buf) - 1] == '\0')
        return(buf);
 
-#else
+#endif /* HAVE_STRFTIME */
 
     s = ctime(&now) + 4;               /* skip day of the week */
-    if (sudo_flag_set(FL_LOG_YEAR))
+    if (def_flag(I_LOG_YEAR))
        s[20] = '\0';                   /* avoid the newline */
     else
        s[15] = '\0';                   /* don't care about year */
 
     return(s);
-#endif /* HAVE_STRFTIME */
 }
index 1ef614210845a79d9cc9e32aa5d94a5423dfc58d..f3bc00924b4815d77e4720a98319d3d52562d6fe 100644 (file)
@@ -115,7 +115,7 @@ int top = 0, stacksize = 0;
        match[top].cmnd   = -1; \
        match[top].host   = -1; \
        match[top].runas  = -1; \
-       match[top].nopass = sudo_flag_set(FL_AUTHENTICATE) ? -1 : TRUE; \
+       match[top].nopass = def_flag(I_AUTHENTICATE) ? -1 : TRUE; \
        top++; \
     } while (0)
 
@@ -324,7 +324,7 @@ privilege   :       hostlist '=' cmndspeclist {
                             */
                            host_matches = -1;
                            runas_matches = -1;
-                           if (sudo_flag_set(FL_AUTHENTICATE))
+                           if (def_flag(I_AUTHENTICATE))
                                no_passwd = -1;
                            else
                                no_passwd = TRUE;
@@ -460,7 +460,7 @@ runasspec   :       /* empty */ {
                             */
                            if (runas_matches == -1)
                                runas_matches = (strcmp(*user_runas,
-                                   sudo_strtable[I_RUNAS_DEF]) == 0);
+                                   def_str(I_RUNAS_DEF)) == 0);
                        }
                |       RUNAS runaslist { ; }
                ;
@@ -996,13 +996,13 @@ list_matches()
            } while ((p = strtok(NULL, ", ")));
            (void) fputs(") ", stdout);
        } else {
-           (void) printf("(%s) ", sudo_strtable[I_RUNAS_DEF]);
+           (void) printf("(%s) ", def_str(I_RUNAS_DEF));
        }
 
        /* Is a password required? */
-       if (cm_list[i].nopasswd == TRUE && sudo_flag_set(FL_AUTHENTICATE))
+       if (cm_list[i].nopasswd == TRUE && def_flag(I_AUTHENTICATE))
            (void) fputs("NOPASSWD: ", stdout);
-       else if (cm_list[i].nopasswd == FALSE && !sudo_flag_set(FL_AUTHENTICATE))
+       else if (cm_list[i].nopasswd == FALSE && !def_flag(I_AUTHENTICATE))
            (void) fputs("PASSWD: ", stdout);
 
        /* Print the actual command or expanded Cmnd_Alias. */
diff --git a/sudo.c b/sudo.c
index 19c6c0c9bc6306efda1368c4cb797dca6779c2fd..ce267cb4d37615d8710e1985f12e9c1698113b72 100644 (file)
--- a/sudo.c
+++ b/sudo.c
@@ -229,9 +229,9 @@ main(argc, argv)
     init_defaults();
 
     /* Initialize syslog(3) if we are using it. */
-    if (sudo_inttable[I_LOGFAC] != (unsigned int)-1) {
+    if (def_str(I_LOGFACSTR)) {
 #ifdef LOG_NFACILITIES
-       openlog("sudo", 0, sudo_inttable[I_LOGFAC]);
+       openlog("sudo", 0, def_ival(I_LOGFAC));
 #else
        openlog("sudo", 0);
 #endif /* LOG_NFACILITIES */
@@ -298,7 +298,7 @@ main(argc, argv)
            errorlineno);
 
     /* Is root even allowed to run sudo? */
-    if (getuid() == 0 && !sudo_flag_set(FL_ROOT_SUDO)) {
+    if (getuid() == 0 && !def_flag(I_ROOT_SUDO)) {
        (void) fputs("You are already root, you don't need to use sudo.\n",
            stderr);
        exit(1);
@@ -342,7 +342,7 @@ main(argc, argv)
                "please report this error to sudo-bugs@courtesan.com");
        }
 
-       if (sudo_inttable[I_LOGFAC] != (unsigned int)-1)
+       if (def_ival(I_LOGFACSTR))
            closelog();
 
        /* Reset signal mask before we exec. */
@@ -353,12 +353,12 @@ main(argc, argv)
 #endif /* POSIX_SIGNALS */
 
        /* Override user's umask if configured to do so. */
-       if (sudo_inttable[I_UMASK] != 0777)
-           (void) umask((mode_t)sudo_inttable[I_UMASK]);
+       if (def_ival(I_UMASK) != 0777)
+           (void) umask(def_mode(I_UMASK));
 
        /* Replace the PATH envariable with a secure one. */
-       if (sudo_strtable[I_SECURE_PATH] && !user_is_exempt())
-           if (sudo_setenv("PATH", sudo_strtable[I_SECURE_PATH])) {
+       if (def_str(I_SECURE_PATH) && !user_is_exempt())
+           if (sudo_setenv("PATH", def_str(I_SECURE_PATH))) {
                (void) fprintf(stderr, "%s: cannot allocate memory!\n",
                    Argv[0]);
                exit(1);
@@ -382,7 +382,7 @@ main(argc, argv)
        log_auth(validated, 1);
        exit(1);
     } else if (validated & VALIDATE_NOT_OK) {
-       if (sudo_flag_set(FL_PATH_INFO)) {
+       if (def_flag(I_PATH_INFO)) {
            /*
             * We'd like to not leak path info at all here, but that can
             * *really* confuse the users.  To really close the leak we'd
@@ -448,7 +448,7 @@ init_vars(sudo_mode)
        log_error(USE_ERRNO|MSG_ONLY, "can't get hostname");
     } else
        user_host = estrdup(thost);
-    if (sudo_flag_set(FL_FQDN)) {
+    if (def_flag(I_FQDN)) {
        if (!(hp = gethostbyname(user_host))) {
            log_error(USE_ERRNO|MSG_ONLY|NO_EXIT,
                "unable to lookup %s via gethostbyname()", user_host);
@@ -556,7 +556,7 @@ parse_args()
     NewArgc = Argc - 1;
 
     if (Argc < 2) {                    /* no options and no command */
-       if (!sudo_flag_set(FL_SHELL_NOARGS))
+       if (!def_flag(I_SHELL_NOARGS))
            usage(1);
        rval |= MODE_SHELL;
        return(rval);
@@ -652,7 +652,7 @@ parse_args()
                break;
            case 's':
                rval |= MODE_SHELL;
-               if (sudo_flag_set(FL_SET_HOME))
+               if (def_flag(I_SET_HOME))
                    rval |= MODE_RESET_HOME;
                break;
            case 'H':
@@ -661,7 +661,7 @@ parse_args()
            case '-':
                NewArgc--;
                NewArgv++;
-               if (sudo_flag_set(FL_SHELL_NOARGS) && rval == MODE_RUN)
+               if (def_flag(I_SHELL_NOARGS) && rval == MODE_RUN)
                    rval |= MODE_SHELL;
                return(rval);
            case '\0':
index 29ae7cb05b3575bafe54a962cd5853e0e5502921..9f65c18f25b6c9f413d0c8e8c09aaffdeb7114a7 100644 (file)
@@ -133,7 +133,7 @@ int top = 0, stacksize = 0;
        match[top].cmnd   = -1; \
        match[top].host   = -1; \
        match[top].runas  = -1; \
-       match[top].nopass = sudo_flag_set(FL_AUTHENTICATE) ? -1 : TRUE; \
+       match[top].nopass = def_flag(I_AUTHENTICATE) ? -1 : TRUE; \
        top++; \
     } while (0)
 
@@ -763,13 +763,13 @@ list_matches()
            } while ((p = strtok(NULL, ", ")));
            (void) fputs(") ", stdout);
        } else {
-           (void) printf("(%s) ", sudo_strtable[I_RUNAS_DEF]);
+           (void) printf("(%s) ", def_str(I_RUNAS_DEF));
        }
 
        /* Is a password required? */
-       if (cm_list[i].nopasswd == TRUE && sudo_flag_set(FL_AUTHENTICATE))
+       if (cm_list[i].nopasswd == TRUE && def_flag(I_AUTHENTICATE))
            (void) fputs("NOPASSWD: ", stdout);
-       else if (cm_list[i].nopasswd == FALSE && !sudo_flag_set(FL_AUTHENTICATE))
+       else if (cm_list[i].nopasswd == FALSE && !def_flag(I_AUTHENTICATE))
            (void) fputs("PASSWD: ", stdout);
 
        /* Print the actual command or expanded Cmnd_Alias. */
@@ -1216,7 +1216,7 @@ case 25:
                             */
                            host_matches = -1;
                            runas_matches = -1;
-                           if (sudo_flag_set(FL_AUTHENTICATE))
+                           if (def_flag(I_AUTHENTICATE))
                                no_passwd = -1;
                            else
                                no_passwd = TRUE;
@@ -1379,7 +1379,7 @@ case 40:
                             */
                            if (runas_matches == -1)
                                runas_matches = (strcmp(*user_runas,
-                                   sudo_strtable[I_RUNAS_DEF]) == 0);
+                                   def_str(I_RUNAS_DEF)) == 0);
                        }
 break;
 case 41: