Initial support for MacOS.
authorAndy Polyakov <appro@openssl.org>
Sat, 11 Sep 1999 17:54:18 +0000 (17:54 +0000)
committerAndy Polyakov <appro@openssl.org>
Sat, 11 Sep 1999 17:54:18 +0000 (17:54 +0000)
This will soon be complemented with MacOS specific source code files and
INSTALL.MacOS.

I (Andy) have decided to get rid of a number of #include <sys/types.h>.
I've verified it's ok (both by examining /usr/include/*.h and compiling)
on a number of Unix platforms. Unfortunately I don't have Windows box
to verify this on. I really appreciate if somebody could try to compile
it and contact me a.s.a.p. in case a problem occurs.

Submitted by: Roy Wood <roy@centricsystems.ca>
Reviewed by: Andy Polyakov <appro@fy.chalmers.se>

18 files changed:
crypto/asn1/a_digest.c
crypto/asn1/a_sign.c
crypto/asn1/a_verify.c
crypto/bio/bss_sock.c
crypto/des/enc_read.c
crypto/des/read_pwd.c
crypto/rand/md_rand.c
crypto/rand/rand_lib.c
crypto/rand/randfile.c
crypto/x509/by_dir.c
crypto/x509/by_file.c
crypto/x509/x509_cmp.c
crypto/x509/x509_d2.c
crypto/x509/x509_def.c
crypto/x509/x509_txt.c
crypto/x509/x509_vfy.c
e_os.h
ssl/ssl_cert.c

index 8c45add..c838f60 100644 (file)
 
 #include <stdio.h>
 #include <time.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 
 #include "cryptlib.h"
+
+#ifndef NO_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
 #include <openssl/evp.h>
 #include <openssl/buffer.h>
 #include <openssl/x509.h>
index 5759569..eed7faa 100644 (file)
 
 #include <stdio.h>
 #include <time.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 
 #include "cryptlib.h"
+
+#ifndef NO_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
 #include <openssl/bn.h>
 #include <openssl/evp.h>
 #include <openssl/x509.h>
index 6383d2c..2f4892f 100644 (file)
 
 #include <stdio.h>
 #include <time.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 
 #include "cryptlib.h"
+
+#ifndef NO_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
 #include <openssl/bn.h>
 #include <openssl/x509.h>
 #include <openssl/objects.h>
index d336b99..1b8d040 100644 (file)
@@ -163,8 +163,7 @@ static int fd_free(BIO *a)
                if (a->init)
                        {
 #ifndef BIO_FD
-                       shutdown(a->num,2);
-                       closesocket(a->num);
+                       SHUTDOWN2(a->num);
 #else                  /* BIO_FD */
                        close(a->num);
 #endif
index 694970c..7399ff7 100644 (file)
@@ -147,7 +147,7 @@ int des_enc_read(int fd, void *buf, int len, des_key_schedule sched,
        /* first - get the length */
        while (net_num < HDRSIZE) 
                {
-               i=read(fd,&(net[net_num]),HDRSIZE-net_num);
+               i=read(fd,(void *)&(net[net_num]),HDRSIZE-net_num);
 #ifdef EINTR
                if ((i == -1) && (errno == EINTR)) continue;
 #endif
@@ -169,7 +169,7 @@ int des_enc_read(int fd, void *buf, int len, des_key_schedule sched,
        net_num=0;
        while (net_num < rnum)
                {
-               i=read(fd,&(net[net_num]),rnum-net_num);
+               i=read(fd,(void *)&(net[net_num]),rnum-net_num);
 #ifdef EINTR
                if ((i == -1) && (errno == EINTR)) continue;
 #endif
index fed4965..a262f98 100644 (file)
 #undef  SGTTY
 #endif
 
-#if !defined(TERMIO) && !defined(TERMIOS) && !defined(VMS) && !defined(MSDOS)
+#if !defined(TERMIO) && !defined(TERMIOS) && !defined(VMS) && !defined(MSDOS) && !defined(MAC_OS_pre_X)
 #undef  TERMIOS
 #undef  TERMIO
 #define SGTTY
 #define TTY_set(tty,data)      ioctl(tty,TIOCSETP,data)
 #endif
 
-#if !defined(_LIBC) && !defined(MSDOS) && !defined(VMS)
+#if !defined(_LIBC) && !defined(MSDOS) && !defined(VMS) && !defined(MAC_OS_pre_X)
 #include <sys/ioctl.h>
 #endif
 
@@ -174,6 +174,15 @@ struct IOSB {
        };
 #endif
 
+#ifdef MAC_OS_pre_X
+/*
+ * This one needs work. As a matter of fact the code is unoperational
+ * and this is only a trick to get it compiled.
+ *                                     <appro@fy.chalmers.se>
+ */
+#define TTY_STRUCT int
+#endif
+
 #ifndef NX509_SIG
 #define NX509_SIG 32
 #endif
index 6bd1960..72c557b 100644 (file)
@@ -57,7 +57,6 @@
  */
 
 #include <stdio.h>
-#include <sys/types.h>
 #include <time.h>
 #include <string.h>
 
index 34c6d5b..0f96e16 100644 (file)
@@ -57,7 +57,6 @@
  */
 
 #include <stdio.h>
-#include <sys/types.h>
 #include <time.h>
 #include <openssl/rand.h>
 
index 6829d4e..e1ed4e3 100644 (file)
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/types.h>
 
 #include "openssl/e_os.h"
 
+#ifndef NO_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef MAC_OS_pre_X
+# include <stat.h>
+#else
+# include <sys/stat.h>
+#endif
+
 #include <openssl/rand.h>
 
 #undef BUFSIZE
@@ -116,19 +122,25 @@ int RAND_write_file(const char *file)
        FILE *out;
        int n;
 
-       /* Under VMS, fopen(file, "wb") will craete a new version of the
+       /* Under VMS, fopen(file, "wb") will create a new version of the
           same file.  This is not good, so let's try updating an existing
           one, and create file only if it doesn't already exist.  This
           should be completely harmless on system that have no file
           versions.                                    -- Richard Levitte */
        out=fopen(file,"rb+");
-       if (out == NULL && errno == ENOENT)
+       if (out == NULL
+#ifdef ENOENT
+ && errno == ENOENT
+#endif
+          )
                {
                errno = 0;
                out=fopen(file,"wb");
                }
        if (out == NULL) goto err;
+#ifndef NO_CHMOD
        chmod(file,0600);
+#endif
        n=RAND_DATA;
        for (;;)
                {
index 734e39a..3e1565e 100644 (file)
 #include <stdio.h>
 #include <time.h>
 #include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 
 #include "cryptlib.h"
+
+#ifndef NO_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef MAC_OS_pre_X
+# include <stat.h>
+#else
+# include <sys/stat.h>
+#endif
+
 #include <openssl/lhash.h>
 #include <openssl/x509.h>
 
index 00ee5e8..3c31de7 100644 (file)
@@ -59,8 +59,6 @@
 #include <stdio.h>
 #include <time.h>
 #include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 
 #include "cryptlib.h"
 #include <openssl/lhash.h>
index 9a93bae..be29979 100644 (file)
@@ -57,8 +57,6 @@
  */
 
 #include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 #include "cryptlib.h"
 #include <openssl/asn1.h>
 #include <openssl/objects.h>
index 3e7ec5b..5f0da4c 100644 (file)
@@ -57,8 +57,6 @@
  */
 
 #include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 #include "cryptlib.h"
 #include <openssl/crypto.h>
 #include <openssl/x509.h>
index c4bee71..e0ac151 100644 (file)
@@ -57,8 +57,6 @@
  */
 
 #include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 #include "cryptlib.h"
 #include <openssl/crypto.h>
 #include <openssl/x509.h>
index 11a3d20..60c48f1 100644 (file)
@@ -59,7 +59,6 @@
 #include <stdio.h>
 #include <time.h>
 #include <errno.h>
-#include <sys/types.h>
 
 #include "cryptlib.h"
 #include <openssl/lhash.h>
index c72ee4a..def60ef 100644 (file)
 #include <stdio.h>
 #include <time.h>
 #include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 
-#include <openssl/crypto.h>
 #include "cryptlib.h"
+#include <openssl/crypto.h>
 #include <openssl/lhash.h>
 #include <openssl/buffer.h>
 #include <openssl/evp.h>
diff --git a/e_os.h b/e_os.h
index 5eaa3cc..61ff56e 100644 (file)
--- a/e_os.h
+++ b/e_os.h
@@ -82,6 +82,15 @@ extern "C" {
 #define DEVRANDOM "/dev/urandom"
 #endif
 
+#if defined(__MWERKS__) && defined(macintosh)
+# if macintosh==1
+#  define MAC_OS_pre_X
+#  define NO_SYS_TYPES_H
+#  define NO_CHMOD
+#  define NO_SYSLOG
+# endif
+#endif
+
 /********************************************************************
  The Microsoft section
  ********************************************************************/
@@ -119,6 +128,12 @@ extern "C" {
 #define readsocket(s,b,n)      recv((s),(b),(n),0)
 #define writesocket(s,b,n)     send((s),(b),(n),0)
 #define EADDRINUSE             WSAEADDRINUSE
+#elif MAC_OS_pre_X
+#define get_last_socket_error()        errno
+#define clear_socket_error()   errno=0
+#define closesocket(s)         MacSocket_close(s)
+#define readsocket(s,b,n)      MacSocket_recv((s),(b),(n),true)
+#define writesocket(s,b,n)     MacSocket_send((s),(b),(n))
 #else
 #define get_last_socket_error()        errno
 #define clear_socket_error()   errno=0
@@ -268,6 +283,13 @@ extern HINSTANCE _hInstance;
 #      define SHUTDOWN2(fd)            { shutdown((fd),2); closesocket(fd); }
 #    endif
 
+#  elif defined(MAC_OS_pre_X)
+
+#    include "MacSocket.h"
+#    define SSLeay_Write(a,b,c)                MacSocket_send((a),(b),(c))
+#    define SSLeay_Read(a,b,c)         MacSocket_recv((a),(b),(c),true)
+#    define SHUTDOWN(fd)               MacSocket_close(fd)
+#    define SHUTDOWN2(fd)              MacSocket_close(fd)
 
 #  else
 
index 6d2511f..a695d04 100644 (file)
  */
 
 #include <stdio.h>
-#include <sys/types.h>
-#if !defined(WIN32) && !defined(VSM) && !defined(NeXT)
+
+#include "openssl/e_os.h"
+
+#ifndef NO_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
+#if !defined(WIN32) && !defined(VSM) && !defined(NeXT) && !defined(MAC_OS_pre_X)
 #include <dirent.h>
 #endif
+
 #ifdef NeXT
 #include <sys/dir.h>
 #define dirent direct
 #endif
+
 #include <openssl/objects.h>
 #include <openssl/bio.h>
 #include <openssl/pem.h>
@@ -671,6 +679,7 @@ err:
 
 #ifndef WIN32
 #ifndef VMS                    /* XXXX This may be fixed in the future */
+#ifndef MAC_OS_pre_X
 
 int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack,
                                       const char *dir)
@@ -714,3 +723,4 @@ err:
 
 #endif
 #endif
+#endif