Portability patch for HP MPE/iX. Submitted by Mark Bixby <mark_bixby@hp.com>
authorRichard Levitte <levitte@openssl.org>
Thu, 21 Sep 2000 05:42:01 +0000 (05:42 +0000)
committerRichard Levitte <levitte@openssl.org>
Thu, 21 Sep 2000 05:42:01 +0000 (05:42 +0000)
Configure
apps/s_socket.c
apps/speed.c
config
crypto/bio/bss_conn.c
crypto/des/read_pwd.c
e_os.h
ssl/ssl2.h

index 2e20233..257b94a 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -256,6 +256,9 @@ my %table=(
 #"hpux11-64bit-cc","cc:+DA2.0W -g -D_HPUX_SOURCE -Aa -Ae +ESlit::-D_REENTRANT::SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT :::",
 # Use unified settings above instead.
 
+#### HP MPE/iX http://jazz.external.hp.com/src/openssl/
+"MPE/iX-gcc", "gcc:-D_ENDIAN -DBN_DIV2W -O3 -DMPE -D_POSIX_SOURCE -D_SOCKET_SOURCE -I/SYSLOG/PUB::(unknown):-L/SYSLOG/PUB -lsyslog -lsocket -lcurses:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:::",
+
 # Dec Alpha, OSF/1 - the alpha164-cc is the flags for a 21164A with
 # the new compiler
 # For gcc, the following gave a %50 speedup on a 164 over the 'DES_INT' version
index 0238566..9812e6d 100644 (file)
@@ -209,9 +209,11 @@ static int init_client_ip(int *sock, unsigned char ip[4], int port)
        s=socket(AF_INET,SOCK_STREAM,SOCKET_PROTOCOL);
        if (s == INVALID_SOCKET) { perror("socket"); return(0); }
 
+#ifndef MPE
        i=0;
        i=setsockopt(s,SOL_SOCKET,SO_KEEPALIVE,(char *)&i,sizeof(i));
        if (i < 0) { perror("keepalive"); return(0); }
+#endif
 
        if (connect(s,(struct sockaddr *)&them,sizeof(them)) == -1)
                { close(s); perror("connect"); return(0); }
index 1214de3..15c9a1f 100644 (file)
@@ -87,7 +87,7 @@
 #elif !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
 # define TIMES
 #endif
-#if !defined(_UNICOS) && !defined(__OpenBSD__) && !defined(sgi) && !defined(__FreeBSD__) && !(defined(__bsdi) || defined(__bsdi__)) && !defined(_AIX)
+#if !defined(_UNICOS) && !defined(__OpenBSD__) && !defined(sgi) && !defined(__FreeBSD__) && !(defined(__bsdi) || defined(__bsdi__)) && !defined(_AIX) && !defined(MPE)
 # define TIMEB
 #endif
 
diff --git a/config b/config
index 910c97f..6a26253 100755 (executable)
--- a/config
+++ b/config
@@ -71,6 +71,10 @@ fi
 # Now we simply scan though... In most cases, the SYSTEM info is enough
 #
 case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
+    MPE/iX:*)
+       MACHINE=`echo "$MACHINE" | sed -e 's/-/_/g'`
+       echo "parisc-hp-MPE/iX"; exit 0
+       ;;
     A/UX:*)
        echo "m68k-apple-aux3"; exit 0
        ;;
index e092528..a6b77a2 100644 (file)
@@ -236,7 +236,7 @@ static int conn_state(BIO *b, BIO_CONNECT *c)
                                }
                        c->state=BIO_CONN_S_CONNECT;
 
-#ifdef SO_KEEPALIVE
+#if defined(SO_KEEPALIVE) && !defined(MPE)
                        i=1;
                        i=setsockopt(b->num,SOL_SOCKET,SO_KEEPALIVE,(char *)&i,sizeof(i));
                        if (i < 0)
index 9555abe..c27ec33 100644 (file)
@@ -271,7 +271,9 @@ int des_read_pw(char *buf, char *buff, int size, const char *prompt,
 #elif defined(MAC_OS_pre_X)
        tty=stdin;
 #else
+#ifndef MPE
        if ((tty=fopen("/dev/tty","r")) == NULL)
+#endif
                tty=stdin;
 #endif
 
@@ -312,8 +314,12 @@ int des_read_pw(char *buf, char *buff, int size, const char *prompt,
 
 #if defined(TTY_set) && !defined(VMS)
        if (is_a_tty && (TTY_set(fileno(tty),&tty_new) == -1))
+#ifdef MPE 
+               ; /* MPE lies -- echo really has been disabled */
+#else
                return(-1);
 #endif
+#endif
 #ifdef VMS
        tty_new[0] = tty_orig[0];
        tty_new[1] = tty_orig[1] | TT$M_NOECHO;
diff --git a/e_os.h b/e_os.h
index 77efc6e..0c0784f 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -275,6 +275,9 @@ extern "C" {
 #    define NO_SYS_PARAM_H
 #  else
      /* !defined VMS */
+#    ifdef MPE
+#      define NO_SYS_PARAM_H
+#    endif
 #    ifdef OPENSSL_UNISTD
 #      include OPENSSL_UNISTD
 #    else
@@ -344,7 +347,9 @@ extern HINSTANCE _hInstance;
 #    ifndef NO_SYS_PARAM_H
 #      include <sys/param.h>
 #    endif
-#    include <sys/time.h> /* Needed under linux for FD_XXX */
+#    ifndef MPE
+#      include <sys/time.h> /* Needed under linux for FD_XXX */
+#    endif
 
 #    include <netdb.h>
 #    if defined(VMS) && !defined(__DECC)
index 01d41c8..df7d03c 100644 (file)
@@ -133,7 +133,11 @@ extern "C" {
 
 /* Upper/Lower Bounds */
 #define SSL2_MAX_MASTER_KEY_LENGTH_IN_BITS     256
+#ifdef MPE
+#define SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER   (unsigned int)29998
+#else
 #define SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER   (unsigned int)32767 
+#endif
 #define SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER   16383 /**/
 
 #define SSL2_CHALLENGE_LENGTH  16