Skip to content

Commit

Permalink
Undo a900815
Browse files Browse the repository at this point in the history
Undo unapproved commit that removed DJGPP and WATT32
  • Loading branch information
richsalz committed Aug 9, 2014
1 parent 693b71f commit f642ebc
Show file tree
Hide file tree
Showing 19 changed files with 120 additions and 17 deletions.
7 changes: 7 additions & 0 deletions apps/s_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion apps/s_server.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
7 changes: 6 additions & 1 deletion apps/s_socket.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
12 changes: 11 additions & 1 deletion crypto/bio/b_sock.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand All @@ -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);
Expand Down
6 changes: 6 additions & 0 deletions crypto/bio/bss_dgram.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
8 changes: 6 additions & 2 deletions crypto/bio/bss_log.c
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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)
Expand Down
6 changes: 6 additions & 0 deletions crypto/bio/bss_sock.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion crypto/des/read_pwd.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion crypto/md4/md4.c
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion crypto/md5/md5.c
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion crypto/o_dir.c
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
2 changes: 1 addition & 1 deletion crypto/perlasm/x86asm.pl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion crypto/ripemd/rmd160.c
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion crypto/ui/ui_openssl.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
37 changes: 36 additions & 1 deletion crypto/x86cpuid.pl
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@
&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");
Expand Down Expand Up @@ -202,6 +202,41 @@
&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");
Expand Down
5 changes: 5 additions & 0 deletions demos/bio/sconnect.c
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down
29 changes: 27 additions & 2 deletions e_os.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion e_os2.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion engines/e_aep.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit f642ebc

Please sign in to comment.