mirror of
https://github.com/openssl/openssl.git
synced 2024-11-24 18:43:34 +08:00
parent
693b71fa71
commit
f642ebc1e2
@ -308,6 +308,9 @@ static void sc_usage(void)
|
||||
BIO_printf(bio_err," -prexit - print session information even on connection failure\n");
|
||||
BIO_printf(bio_err," -showcerts - show all certificates in the chain\n");
|
||||
BIO_printf(bio_err," -debug - extra output\n");
|
||||
#ifdef WATT32
|
||||
BIO_printf(bio_err," -wdebug - WATT-32 tcp debugging\n");
|
||||
#endif
|
||||
BIO_printf(bio_err," -msg - Show protocol messages\n");
|
||||
BIO_printf(bio_err," -nbio_test - more ssl protocol testing\n");
|
||||
BIO_printf(bio_err," -state - print the 'ssl' states\n");
|
||||
@ -827,6 +830,10 @@ static char *jpake_secret = NULL;
|
||||
c_tlsextdebug=1;
|
||||
else if (strcmp(*argv,"-status") == 0)
|
||||
c_status_req=1;
|
||||
#endif
|
||||
#ifdef WATT32
|
||||
else if (strcmp(*argv,"-wdebug") == 0)
|
||||
dbug_init();
|
||||
#endif
|
||||
else if (strcmp(*argv,"-msg") == 0)
|
||||
c_msg=1;
|
||||
|
@ -2971,7 +2971,7 @@ static int www_body(char *hostname, int s, int stype, unsigned char *context)
|
||||
BIO_printf(bio_s_out,"read R BLOCK\n");
|
||||
#if defined(OPENSSL_SYS_NETWARE)
|
||||
delay(1000);
|
||||
#elif !defined(OPENSSL_SYS_MSDOS) && !defined(__DJGPP__)
|
||||
#elif !defined(OPENSSL_SYS_MSDOS)
|
||||
sleep(1);
|
||||
#endif
|
||||
continue;
|
||||
|
@ -178,7 +178,12 @@ static void sock_cleanup(void)
|
||||
|
||||
static int ssl_sock_init(void)
|
||||
{
|
||||
#if defined(OPENSSL_SYS_WINDOWS)
|
||||
#ifdef WATT32
|
||||
extern int _watt_do_exit;
|
||||
_watt_do_exit = 0;
|
||||
if (sock_init())
|
||||
return (0);
|
||||
#elif defined(OPENSSL_SYS_WINDOWS)
|
||||
if (!wsa_init_done)
|
||||
{
|
||||
int err;
|
||||
|
@ -494,6 +494,12 @@ int BIO_sock_init(void)
|
||||
}
|
||||
}
|
||||
#endif /* OPENSSL_SYS_WINDOWS */
|
||||
#ifdef WATT32
|
||||
extern int _watt_do_exit;
|
||||
_watt_do_exit = 0; /* don't make sock_init() call exit() */
|
||||
if (sock_init())
|
||||
return (-1);
|
||||
#endif
|
||||
|
||||
#if defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK)
|
||||
WORD wVerReq;
|
||||
@ -543,6 +549,9 @@ int BIO_socket_ioctl(int fd, long type, void *arg)
|
||||
{
|
||||
int i;
|
||||
|
||||
#ifdef __DJGPP__
|
||||
i=ioctlsocket(fd,type,(char *)arg);
|
||||
#else
|
||||
# if defined(OPENSSL_SYS_VMS)
|
||||
/* 2011-02-18 SMS.
|
||||
* VMS ioctl() can't tolerate a 64-bit "void *arg", but we
|
||||
@ -565,8 +574,9 @@ int BIO_socket_ioctl(int fd, long type, void *arg)
|
||||
# else /* defined(OPENSSL_SYS_VMS) */
|
||||
# define ARG arg
|
||||
# endif /* defined(OPENSSL_SYS_VMS) [else] */
|
||||
i=ioctlsocket(fd,type,ARG);
|
||||
|
||||
i=ioctlsocket(fd,type,ARG);
|
||||
#endif /* __DJGPP__ */
|
||||
if (i < 0)
|
||||
SYSerr(SYS_F_IOCTLSOCKET,get_last_socket_error());
|
||||
return(i);
|
||||
|
@ -95,6 +95,12 @@
|
||||
((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);
|
||||
|
@ -88,7 +88,7 @@
|
||||
# include <sys/syslog.h>
|
||||
#elif defined(OPENSSL_SYS_NETWARE)
|
||||
# define NO_SYSLOG
|
||||
#elif !defined(MSDOS) && !defined(OPENSSL_SYS_VXWORKS) && !defined(NO_SYSLOG)
|
||||
#elif (!defined(MSDOS) || defined(WATT32)) && !defined(OPENSSL_SYS_VXWORKS) && !defined(NO_SYSLOG)
|
||||
# include <syslog.h>
|
||||
#endif
|
||||
|
||||
@ -373,11 +373,15 @@ static void xcloselog(BIO* bp)
|
||||
{
|
||||
}
|
||||
|
||||
#else /* Unix */
|
||||
#else /* Unix/Watt32 */
|
||||
|
||||
static void xopenlog(BIO* bp, char* name, int level)
|
||||
{
|
||||
#ifdef WATT32 /* djgpp/DOS */
|
||||
openlog(name, LOG_PID|LOG_CONS|LOG_NDELAY, level);
|
||||
#else
|
||||
openlog(name, LOG_PID|LOG_CONS, level);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void xsyslog(BIO *bp, int priority, const char *string)
|
||||
|
@ -65,6 +65,12 @@
|
||||
|
||||
#include <openssl/bio.h>
|
||||
|
||||
#ifdef WATT32
|
||||
#define sock_write SockWrite /* Watt-32 uses same names */
|
||||
#define sock_read SockRead
|
||||
#define sock_puts SockPuts
|
||||
#endif
|
||||
|
||||
static int sock_write(BIO *h, const char *buf, int num);
|
||||
static int sock_read(BIO *h, char *buf, int size);
|
||||
static int sock_puts(BIO *h, const char *str);
|
||||
|
@ -266,7 +266,7 @@ int des_read_pw(char *buf, char *buff, int size, const char *prompt,
|
||||
long status;
|
||||
unsigned short channel = 0;
|
||||
#else
|
||||
#if !defined(OPENSSL_SYS_MSDOS)
|
||||
#if !defined(OPENSSL_SYS_MSDOS) || defined(__DJGPP__)
|
||||
TTY_STRUCT tty_orig,tty_new;
|
||||
#endif
|
||||
#endif
|
||||
|
@ -64,7 +64,7 @@
|
||||
|
||||
void do_fp(FILE *f);
|
||||
void pt(unsigned char *md);
|
||||
#if !defined(_OSD_POSIX)
|
||||
#if !defined(_OSD_POSIX) && !defined(__DJGPP__)
|
||||
int read(int, void *, unsigned int);
|
||||
#endif
|
||||
|
||||
|
@ -64,7 +64,7 @@
|
||||
|
||||
void do_fp(FILE *f);
|
||||
void pt(unsigned char *md);
|
||||
#if !defined(_OSD_POSIX)
|
||||
#if !defined(_OSD_POSIX) && !defined(__DJGPP__)
|
||||
int read(int, void *, unsigned int);
|
||||
#endif
|
||||
|
||||
|
@ -70,7 +70,7 @@
|
||||
#include "o_dir.h"
|
||||
|
||||
#define LPDIR_H
|
||||
#if defined OPENSSL_SYS_UNIX
|
||||
#if defined OPENSSL_SYS_UNIX || defined DJGPP
|
||||
#include "LPdir_unix.c"
|
||||
#elif defined OPENSSL_SYS_VMS
|
||||
#include "LPdir_vms.c"
|
||||
|
@ -277,7 +277,7 @@ sub ::asm_init
|
||||
{ print STDERR <<"EOF";
|
||||
Pick one target type from
|
||||
elf - Linux, FreeBSD, Solaris x86, etc.
|
||||
a.out - elder OpenBSD, etc.
|
||||
a.out - DJGPP, elder OpenBSD, etc.
|
||||
coff - GAS/COFF such as Win32 targets
|
||||
win32n - Windows 95/Windows NT NASM format
|
||||
nw-nasm - NetWare NASM format
|
||||
|
@ -64,7 +64,7 @@
|
||||
|
||||
void do_fp(FILE *f);
|
||||
void pt(unsigned char *md);
|
||||
#if !defined(_OSD_POSIX)
|
||||
#if !defined(_OSD_POSIX) && !defined(__DJGPP__)
|
||||
int read(int, void *, unsigned int);
|
||||
#endif
|
||||
|
||||
|
@ -296,7 +296,7 @@ static long tty_orig[3], tty_new[3]; /* XXX Is there any guarantee that this w
|
||||
static long status;
|
||||
static unsigned short channel = 0;
|
||||
#else
|
||||
#if !defined(OPENSSL_SYS_MSDOS)
|
||||
#if !defined(OPENSSL_SYS_MSDOS) || defined(__DJGPP__)
|
||||
static TTY_STRUCT tty_orig,tty_new;
|
||||
#endif
|
||||
#endif
|
||||
|
@ -168,7 +168,7 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
|
||||
&ret ();
|
||||
&function_end_B("OPENSSL_rdtsc");
|
||||
|
||||
# This works in Ring 0 only [read MS-DOS+privileged DPMI host],
|
||||
# This works in Ring 0 only [read DJGPP+MS-DOS+privileged DPMI host],
|
||||
# but it's safe to call it on any [supported] 32-bit platform...
|
||||
# Just check for [non-]zero return value...
|
||||
&function_begin_B("OPENSSL_instrument_halt","EXTRN\t_OPENSSL_ia32cap_P:DWORD");
|
||||
@ -202,6 +202,41 @@ for (@ARGV) { $sse2=1 if (/-DOPENSSL_IA32_SSE2/); }
|
||||
&ret ();
|
||||
&function_end_B("OPENSSL_instrument_halt");
|
||||
|
||||
# Essentially there is only one use for this function. Under DJGPP:
|
||||
#
|
||||
# #include <go32.h>
|
||||
# ...
|
||||
# i=OPENSSL_far_spin(_dos_ds,0x46c);
|
||||
# ...
|
||||
# to obtain the number of spins till closest timer interrupt.
|
||||
|
||||
&function_begin_B("OPENSSL_far_spin");
|
||||
&pushf ();
|
||||
&pop ("eax");
|
||||
&bt ("eax",9);
|
||||
&jnc (&label("nospin")); # interrupts are disabled
|
||||
|
||||
&mov ("eax",&DWP(4,"esp"));
|
||||
&mov ("ecx",&DWP(8,"esp"));
|
||||
&data_word (0x90d88e1e); # push %ds, mov %eax,%ds
|
||||
&xor ("eax","eax");
|
||||
&mov ("edx",&DWP(0,"ecx"));
|
||||
&jmp (&label("spin"));
|
||||
|
||||
&align (16);
|
||||
&set_label("spin");
|
||||
&inc ("eax");
|
||||
&cmp ("edx",&DWP(0,"ecx"));
|
||||
&je (&label("spin"));
|
||||
|
||||
&data_word (0x1f909090); # pop %ds
|
||||
&ret ();
|
||||
|
||||
&set_label("nospin");
|
||||
&xor ("eax","eax");
|
||||
&xor ("edx","edx");
|
||||
&ret ();
|
||||
&function_end_B("OPENSSL_far_spin");
|
||||
|
||||
&function_begin_B("OPENSSL_wipe_cpu","EXTRN\t_OPENSSL_ia32cap_P:DWORD");
|
||||
&xor ("eax","eax");
|
||||
|
@ -32,6 +32,11 @@ char *argv[];
|
||||
else
|
||||
host=argv[1];
|
||||
|
||||
#ifdef WATT32
|
||||
dbug_init();
|
||||
sock_init();
|
||||
#endif
|
||||
|
||||
/* Lets get nice error messages */
|
||||
SSL_load_error_strings();
|
||||
|
||||
|
29
e_os.h
29
e_os.h
@ -150,6 +150,13 @@ extern "C" {
|
||||
#define clear_socket_error() WSASetLastError(0)
|
||||
#define readsocket(s,b,n) recv((s),(b),(n),0)
|
||||
#define writesocket(s,b,n) send((s),(b),(n),0)
|
||||
#elif defined(__DJGPP__)
|
||||
#define WATT32
|
||||
#define get_last_socket_error() errno
|
||||
#define clear_socket_error() errno=0
|
||||
#define closesocket(s) close_s(s)
|
||||
#define readsocket(s,b,n) read_s(s,b,n)
|
||||
#define writesocket(s,b,n) send(s,b,n,0)
|
||||
#elif defined(MAC_OS_pre_X)
|
||||
#define get_last_socket_error() errno
|
||||
#define clear_socket_error() errno=0
|
||||
@ -220,6 +227,19 @@ extern "C" {
|
||||
|
||||
#if (defined(WINDOWS) || defined(MSDOS))
|
||||
|
||||
# ifdef __DJGPP__
|
||||
# include <unistd.h>
|
||||
# include <sys/stat.h>
|
||||
# include <sys/socket.h>
|
||||
# include <tcp.h>
|
||||
# include <netdb.h>
|
||||
# define _setmode setmode
|
||||
# define _O_TEXT O_TEXT
|
||||
# define _O_BINARY O_BINARY
|
||||
# undef DEVRANDOM
|
||||
# define DEVRANDOM "/dev/urandom\x24"
|
||||
# endif /* __DJGPP__ */
|
||||
|
||||
# ifndef S_IFDIR
|
||||
# define S_IFDIR _S_IFDIR
|
||||
# endif
|
||||
@ -228,7 +248,7 @@ extern "C" {
|
||||
# define S_IFMT _S_IFMT
|
||||
# endif
|
||||
|
||||
# if !defined(WINNT)
|
||||
# if !defined(WINNT) && !defined(__DJGPP__)
|
||||
# define NO_SYSLOG
|
||||
# endif
|
||||
# define NO_DIRENT
|
||||
@ -479,7 +499,7 @@ static unsigned int _strlen31(const char *str)
|
||||
# define SSLeay_Read(a,b,c) (-1)
|
||||
# define SHUTDOWN(fd) close(fd)
|
||||
# define SHUTDOWN2(fd) close(fd)
|
||||
# else
|
||||
# elif !defined(__DJGPP__)
|
||||
# if defined(_WIN32_WCE) && _WIN32_WCE<410
|
||||
# define getservbyname _masked_declaration_getservbyname
|
||||
# endif
|
||||
@ -506,6 +526,11 @@ static unsigned int _strlen31(const char *str)
|
||||
# define SSLeay_Read(a,b,c) recv((a),(b),(c),0)
|
||||
# define SHUTDOWN(fd) { shutdown((fd),0); closesocket(fd); }
|
||||
# define SHUTDOWN2(fd) { shutdown((fd),2); closesocket(fd); }
|
||||
# else
|
||||
# define SSLeay_Write(a,b,c) write_s(a,b,c,0)
|
||||
# define SSLeay_Read(a,b,c) read_s(a,b,c)
|
||||
# define SHUTDOWN(fd) close_s(fd)
|
||||
# define SHUTDOWN2(fd) close_s(fd)
|
||||
# endif
|
||||
|
||||
# elif defined(MAC_OS_pre_X)
|
||||
|
2
e_os2.h
2
e_os2.h
@ -85,7 +85,7 @@ extern "C" {
|
||||
/* ---------------------- Microsoft operating systems ---------------------- */
|
||||
|
||||
/* Note that MSDOS actually denotes 32-bit environments running on top of
|
||||
MS-DOS. */
|
||||
MS-DOS, such as DJGPP one. */
|
||||
#if defined(OPENSSL_SYSNAME_MSDOS)
|
||||
# undef OPENSSL_SYS_UNIX
|
||||
# define OPENSSL_SYS_MSDOS
|
||||
|
@ -57,7 +57,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#include <openssl/e_os2.h>
|
||||
#if !defined(OPENSSL_SYS_MSDOS) || defined(__MINGW32__)
|
||||
#if !defined(OPENSSL_SYS_MSDOS) || defined(__DJGPP__) || defined(__MINGW32__)
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
#else
|
||||
|
Loading…
Reference in New Issue
Block a user