From c5f8bbbc0b94f3ec3f3f8f2aabbe3cc81f7b8158 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Thu, 21 Sep 2000 05:42:01 +0000 Subject: [PATCH] Portability patch for HP MPE/iX. Submitted by Mark Bixby --- Configure | 3 +++ apps/s_socket.c | 2 ++ apps/speed.c | 2 +- config | 4 ++++ crypto/bio/bss_conn.c | 2 +- crypto/des/read_pwd.c | 6 ++++++ e_os.h | 7 ++++++- ssl/ssl2.h | 4 ++++ 8 files changed, 27 insertions(+), 3 deletions(-) diff --git a/Configure b/Configure index 2e2023394b..257b94ac62 100755 --- 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 diff --git a/apps/s_socket.c b/apps/s_socket.c index 0238566a81..9812e6d505 100644 --- a/apps/s_socket.c +++ b/apps/s_socket.c @@ -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); } diff --git a/apps/speed.c b/apps/speed.c index 1214de39df..15c9a1fdc7 100644 --- a/apps/speed.c +++ b/apps/speed.c @@ -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 910c97face..6a2625308e 100755 --- 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 ;; diff --git a/crypto/bio/bss_conn.c b/crypto/bio/bss_conn.c index e092528b3e..a6b77a2cb9 100644 --- a/crypto/bio/bss_conn.c +++ b/crypto/bio/bss_conn.c @@ -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) diff --git a/crypto/des/read_pwd.c b/crypto/des/read_pwd.c index 9555abe3a5..c27ec336e7 100644 --- a/crypto/des/read_pwd.c +++ b/crypto/des/read_pwd.c @@ -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 77efc6e35b..0c0784f9a9 100644 --- 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 # endif -# include /* Needed under linux for FD_XXX */ +# ifndef MPE +# include /* Needed under linux for FD_XXX */ +# endif # include # if defined(VMS) && !defined(__DECC) diff --git a/ssl/ssl2.h b/ssl/ssl2.h index 01d41c88c5..df7d03c18f 100644 --- a/ssl/ssl2.h +++ b/ssl/ssl2.h @@ -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