diff options
Diffstat (limited to 'crypto/bio')
-rw-r--r-- | crypto/bio/bss_dgram.c | 6 | ||||
-rw-r--r-- | crypto/bio/bss_file.c | 30 | ||||
-rw-r--r-- | crypto/bio/bss_sock.c | 6 |
3 files changed, 35 insertions, 7 deletions
diff --git a/crypto/bio/bss_dgram.c b/crypto/bio/bss_dgram.c index cf2f9f66b5..e6d74e4867 100644 --- a/crypto/bio/bss_dgram.c +++ b/crypto/bio/bss_dgram.c @@ -94,12 +94,6 @@ ((a)->s6_addr32[2] == htonl(0x0000ffff))) # endif -# ifdef WATT32 -# define sock_write SockWrite /* Watt-32 uses same names */ -# define sock_read SockRead -# define sock_puts SockPuts -# endif - static int dgram_write(BIO *h, const char *buf, int num); static int dgram_read(BIO *h, char *buf, int size); static int dgram_puts(BIO *h, const char *str); diff --git a/crypto/bio/bss_file.c b/crypto/bio/bss_file.c index a37e89d935..3c056604c8 100644 --- a/crypto/bio/bss_file.c +++ b/crypto/bio/bss_file.c @@ -154,6 +154,36 @@ static FILE *file_fopen(const char *filename, const char *mode) } else if (GetLastError() == ERROR_NO_UNICODE_TRANSLATION) { file = fopen(filename, mode); } +# elif defined(__DJGPP__) + { + char *newname = NULL; + + if (!HAS_LFN_SUPPORT(filename)) { + char *iterator; + char lastchar; + + newname = OPENSSL_malloc(strlen(filename) + 1); + if (newname == NULL) + return NULL; + + for(iterator = newname, lastchar = '\0'; + *filename; filename++, iterator++) { + if (lastchar == '/' && filename[0] == '.' + && filename[1] != '.' && filename[1] != '/') { + /* Leading dots are not permitted in plain DOS. */ + *iterator = '_'; + } else { + *iterator = *filename; + } + lastchar = *filename; + } + *iterator = '\0'; + filename = newname; + } + file = fopen(filename, mode); + + OPENSSL_free(newname); + } # else file = fopen(filename, mode); # endif diff --git a/crypto/bio/bss_sock.c b/crypto/bio/bss_sock.c index c1f76a24a7..c4e263dabf 100644 --- a/crypto/bio/bss_sock.c +++ b/crypto/bio/bss_sock.c @@ -66,7 +66,11 @@ # include <openssl/bio.h> # ifdef WATT32 -# define sock_write SockWrite /* Watt-32 uses same names */ +/* Watt-32 uses same names */ +# undef sock_write +# undef sock_read +# undef sock_puts +# define sock_write SockWrite # define sock_read SockRead # define sock_puts SockPuts # endif |