mirror of
https://github.com/openssl/openssl.git
synced 2025-03-19 19:50:42 +08:00
DJGPP adjustments
* Configure: Replaced -DTERMIO by -DTERMIOS in CFLAGS. * crypto/bio/bss_dgram.c [WATT32]: Remove obsolete redefinition of function names: sock_write, sock_read and sock_puts. * crypto/bio/bss_sock.c [WATT32]: For Watt-32 2.2.11 sock_write, sock_read and sock_puts are redefined to their private names so their names must be undefined first before they can be redefined again. * crypto/bio/bss_file.c (file_fopen) [__DJGPP__]: Make a copy of the passed file name and replace the leading dots in the dirname part and the basname part of the file name, unless LFN is supported. * e_os.h [__DJGPP__]: Undefine macro DEVRANDOM_EGD. Neither MS-DOS nor FreeDOS provide 'egd' sockets. New macro HAS_LFN_SUPPORT checks if underlying file system supports long file names or not. Include sys/un.h. Define WATT32_NO_OLDIES. * INSTALL.DJGPP: Update URL of WATT-32 library. Submitted by Juan Manuel Guerrero <juan.guerrero@gmx.de> RT#4217 Reviewed-by: Andy Polyakov <appro@openssl.org>
This commit is contained in:
parent
ae69c7d353
commit
2c25ebd1e2
@ -19,7 +19,7 @@
|
||||
files to download, see the DJGPP "ZIP PICKER" page at
|
||||
"http://www.delorie.com/djgpp/zip-picker.html". You also need to have
|
||||
the WATT-32 networking package installed before you try to compile
|
||||
OpenSSL. This can be obtained from "http://www.bgnett.no/~giva/".
|
||||
OpenSSL. This can be obtained from "http://www.watt-32.net/".
|
||||
The Makefile assumes that the WATT-32 code is in the directory
|
||||
specified by the environment variable WATT_ROOT. If you have watt-32
|
||||
in directory "watt32" under your main DJGPP directory, specify
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
4
e_os.h
4
e_os.h
@ -151,6 +151,7 @@ extern "C" {
|
||||
# define writesocket(s,b,n) send((s),(b),(n),0)
|
||||
# elif defined(__DJGPP__)
|
||||
# define WATT32
|
||||
# define WATT32_NO_OLDIES
|
||||
# define get_last_socket_error() errno
|
||||
# define clear_socket_error() errno=0
|
||||
# define closesocket(s) close_s(s)
|
||||
@ -185,11 +186,14 @@ extern "C" {
|
||||
# include <unistd.h>
|
||||
# include <sys/stat.h>
|
||||
# include <sys/socket.h>
|
||||
# include <sys/un.h>
|
||||
# include <tcp.h>
|
||||
# include <netdb.h>
|
||||
# define _setmode setmode
|
||||
# define _O_TEXT O_TEXT
|
||||
# define _O_BINARY O_BINARY
|
||||
# define HAS_LFN_SUPPORT(name) (pathconf((name), _PC_NAME_MAX) > 12)
|
||||
# undef DEVRANDOM_EGD /* Neither MS-DOS nor FreeDOS provide 'egd' sockets. */
|
||||
# undef DEVRANDOM
|
||||
# define DEVRANDOM "/dev/urandom\x24"
|
||||
# endif /* __DJGPP__ */
|
||||
|
Loading…
x
Reference in New Issue
Block a user