Netware-specific changes,
[openssl.git] / crypto / bio / bss_file.c
index 1f9bd3312af7e4c731a1bdb400c6dba43a589edb..774bc5a7e78d53998f4e02642661d1967ec44d7f 100644 (file)
@@ -218,6 +218,13 @@ static long MS_CALLBACK file_ctrl(BIO *b, int cmd, long num, void *ptr)
                        _setmode(fd,_O_TEXT);
                else
                        _setmode(fd,_O_BINARY);
+#elif defined(OPENSSL_SYS_NETWARE) && defined(NETWARE_CLIB)
+         /* Under CLib there are differences in file modes
+         */
+               if (num & BIO_FP_TEXT)
+                       _setmode(fileno((FILE *)ptr),O_TEXT);
+               else
+                       _setmode(fileno((FILE *)ptr),O_BINARY);
 #elif defined(OPENSSL_SYS_MSDOS)
                {
                int fd = fileno((FILE*)ptr);
@@ -270,7 +277,13 @@ static long MS_CALLBACK file_ctrl(BIO *b, int cmd, long num, void *ptr)
                else
                        strcat(p,"t");
 #endif
-               fp=fopen(ptr,p);
+#if defined(OPENSSL_SYS_NETWARE)
+               if (!(num & BIO_FP_TEXT))
+                       strcat(p,"b");
+               else
+                       strcat(p,"t");
+#endif
+fp=fopen(ptr,p);
                if (fp == NULL)
                        {
                        SYSerr(SYS_F_FOPEN,get_last_sys_error());