]> andersk Git - openssh.git/commitdiff
- (dtucker) [configure.ac openbsd-compat/bsd-cray.c openbsd-compat/bsd-cray.h]
authordtucker <dtucker>
Fri, 30 Jan 2004 03:34:21 +0000 (03:34 +0000)
committerdtucker <dtucker>
Fri, 30 Jan 2004 03:34:21 +0000 (03:34 +0000)
   Bug #775: Cray fixes from wendy at cray.com

CREDITS
ChangeLog
configure.ac
openbsd-compat/bsd-cray.c
openbsd-compat/bsd-cray.h

diff --git a/CREDITS b/CREDITS
index f235483edfcb508242becca86c685e7a1369b85f..2bc37f74cae591d29800d6987178dbde0c66d32b 100644 (file)
--- a/CREDITS
+++ b/CREDITS
@@ -88,6 +88,7 @@ Tom Bertelson's <tbert@abac.com> - AIX auth fixes
 Tor-Ake Fransson <torake@hotmail.com> - AIX support
 Tudor Bosman <tudorb@jm.nu> - MD5 password support
 Udo Schweigert <ust@cert.siemens.de> - ReliantUNIX support
+Wendy Palm <wendyp at cray.com> - Cray fixes.
 Zack Weinberg <zack@wolery.cumb.org> - GNOME askpass enhancement
 
 Apologies to anyone I have missed.
index 75c08ea8aab127dff8d0cc960448a6780e223ff8..7795a466c66d49e2e028a40566e0cb2d6585ab4b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,8 @@
      [sftp-batch.sh]
  - (dtucker) [configure.ac] Add --without-zlib-version-check.  Feedback from
    tim@, ok several
+ - (dtucker) [configure.ac openbsd-compat/bsd-cray.c openbsd-compat/bsd-cray.h]
+   Bug #775: Cray fixes from wendy at cray.com
 
 20040128
  - (dtucker) [regress/README.regress] Add tcpwrappers issue, noted by tim@
index 6a7bbfd7216deca6fe6794770fb715b90d2a5c7a..7c487c5547873835bca50d3517b078eecad2481f 100644 (file)
@@ -360,6 +360,10 @@ mips-sony-bsd|mips-sony-newsos4)
        MANTYPE=man
        ;;
 *-*-unicosmk*)
+       AC_DEFINE(NO_SSH_LASTLOG)
+       AC_DEFINE(SETEUID_BREAKS_SETUID)
+       AC_DEFINE(BROKEN_SETREUID)
+       AC_DEFINE(BROKEN_SETREGID)
        AC_DEFINE(USE_PIPES)
        AC_DEFINE(DISABLE_FD_PASSING)
        LDFLAGS="$LDFLAGS"
@@ -367,14 +371,20 @@ mips-sony-bsd|mips-sony-newsos4)
        MANTYPE=cat
        ;;
 *-*-unicosmp*)
+       AC_DEFINE(SETEUID_BREAKS_SETUID)
+       AC_DEFINE(BROKEN_SETREUID)
+       AC_DEFINE(BROKEN_SETREGID)
        AC_DEFINE(WITH_ABBREV_NO_TTY)
        AC_DEFINE(USE_PIPES)
        AC_DEFINE(DISABLE_FD_PASSING)
        LDFLAGS="$LDFLAGS"
-       LIBS="$LIBS -lgen -lacid"
+       LIBS="$LIBS -lgen -lacid -ldb"
        MANTYPE=cat
        ;;
 *-*-unicos*)
+       AC_DEFINE(SETEUID_BREAKS_SETUID)
+       AC_DEFINE(BROKEN_SETREUID)
+       AC_DEFINE(BROKEN_SETREGID)
        AC_DEFINE(USE_PIPES)
        AC_DEFINE(DISABLE_FD_PASSING)
        AC_DEFINE(NO_SSH_LASTLOG)
index 7b8cfb142eacb257aec439132fffa1ea20e3ff9e..9761a8b94dca00b2389e420200130fec31a1c669 100644 (file)
 #include <ia.h>
 #include <urm.h>
 #include "ssh.h"
+
+#include "includes.h"
+#include "sys/types.h"
+
+#ifndef HAVE_STRUCT_SOCKADDR_STORAGE
+# define      _SS_MAXSIZE     128     /* Implementation specific max size */
+# define       _SS_PADSIZE     (_SS_MAXSIZE - sizeof (struct sockaddr))
+
+# define ss_family ss_sa.sa_family
+#endif /* !HAVE_STRUCT_SOCKADDR_STORAGE */
+
+#ifndef IN6_IS_ADDR_LOOPBACK
+# define IN6_IS_ADDR_LOOPBACK(a) \
+       (((u_int32_t *) (a))[0] == 0 && ((u_int32_t *) (a))[1] == 0 && \
+        ((u_int32_t *) (a))[2] == 0 && ((u_int32_t *) (a))[3] == htonl (1))
+#endif /* !IN6_IS_ADDR_LOOPBACK */
+
+#ifndef AF_INET6
+/* Define it to something that should never appear */
+#define AF_INET6 AF_MAX
+#endif
+
 #include "log.h"
 #include "servconf.h"
 #include "bsd-cray.h"
@@ -182,7 +204,7 @@ cray_setup (uid_t uid, char *username, const char *command)
        /* passwd stuff for ia_user */
        passwd_t pwdacm, pwddialup, pwdudb, pwdwal, pwddce;
        ia_user_ret_t uret;             /* stuff returned from ia_user */
-       ia_user_t usent                 /* ia_user main structure */
+       ia_user_t usent;                /* ia_user main structure */
        int ia_rcode;                   /* ia_user return code */
        ia_failure_t fsent;             /* ia_failure structure */
        ia_failure_ret_t fret;          /* ia_failure return stuff */
@@ -501,54 +523,54 @@ cray_setup (uid_t uid, char *username, const char *command)
                                        break;
                                default:
                                        valid_acct = nam2acid(acct_name);
-                                       if (valid_acct == -1) {
+                                       if (valid_acct == -1) 
                                                printf(
                                                    "Account id not found for"
                                                    " account name \"%s\"\n\n",
                                                    acct_name);
                                        break;
-                                       }
-                                       /*
-                                        * If an account was given, search the user's
-                                        * acids array to verify they can use this account.
-                                        */
-                                       if ((valid_acct != -1) &&
-                                           !(ue.ue_permbits & PERMBITS_ACCTID)) {
-                                               for (i = 0; i < MAXVIDS; i++) {
-                                                       if (ue.ue_acids[i] == -1)
-                                                               break;
-                                                       if (valid_acct == ue.ue_acids[i])
-                                                               break;
-                                               }
-                                               if (i == MAXVIDS ||
-                                                   ue.ue_acids[i] == -1) {
-                                                       fprintf(stderr, "Cannot set"
-                                                           " account name to "
-                                                           "\"%s\", permission "
-                                                           "denied\n\n", acct_name);
-                                                       valid_acct = -1;
-                                               }
-                                       }
                                }
-                       } else {
                                /*
-                                * The client isn't connected to a terminal and can't
-                                * respond to an acid prompt.  Use default acid.
+                                * If an account was given, search the user's
+                                * acids array to verify they can use this account.
                                 */
-                               debug("cray_setup: ttyname false case, %.100s",
-                                   ttyname);
-                               valid_acct = ue.ue_acids[0];
+                               if ((valid_acct != -1) &&
+                                   !(ue.ue_permbits & PERMBITS_ACCTID)) {
+                                       for (i = 0; i < MAXVIDS; i++) {
+                                               if (ue.ue_acids[i] == -1)
+                                                       break;
+                                               if (valid_acct == ue.ue_acids[i])
+                                                       break;
+                                       }
+                                       if (i == MAXVIDS ||
+                                           ue.ue_acids[i] == -1) {
+                                               fprintf(stderr, "Cannot set"
+                                                   " account name to "
+                                                   "\"%s\", permission "
+                                                   "denied\n\n", acct_name);
+                                               valid_acct = -1;
+                                       }
+                               }
                        }
                } else {
                        /*
-                        * The user doesn't have the askacid permbit set or
-                        * only has one valid account to use.
+                        * The client isn't connected to a terminal and can't
+                        * respond to an acid prompt.  Use default acid.
                         */
+                       debug("cray_setup: ttyname false case, %.100s",
+                           ttyname);
                        valid_acct = ue.ue_acids[0];
                }
-               if (acctid(0, valid_acct) < 0) {
-                       printf ("Bad account id: %d\n", valid_acct);
-                       exit(1);
+       } else {
+               /*
+                * The user doesn't have the askacid permbit set or
+                * only has one valid account to use.
+                */
+               valid_acct = ue.ue_acids[0];
+       }
+       if (acctid(0, valid_acct) < 0) {
+               printf ("Bad account id: %d\n", valid_acct);
+               exit(1);
        }
 
        /* 
@@ -778,4 +800,17 @@ cray_set_tmpdir(struct utmp *ut)
        ut->ut_jid = jid;
        strncpy(ut->ut_tpath, cray_tmpdir, TPATHSIZ);
 }
-#endif
+#endif /* UNICOS */
+
+#ifdef _UNICOSMP
+#include <pwd.h>
+/*
+ * Set job id and create tmpdir directory.
+ */
+void
+cray_init_job(struct passwd *pw)
+{
+       initrm_silent(pw->pw_uid);
+       return;
+}
+#endif /* _UNICOSMP */
index 375baf92a7ceea2b3f565a0e48d5cb908c0166b6..8c9dd060d465c2b713dc9557f681da7c14ace604 100644 (file)
@@ -53,7 +53,6 @@ extern char cray_tmpdir[];
 # define MAXHOSTNAMELEN  64
 #endif
 #ifndef _CRAYT3E
-# include <sys/ttold.h>
 # define TIOCGPGRP (tIOC|20)
 #endif
 
This page took 0.348309 seconds and 5 git commands to generate.