Fix to build better with DJGPP.
PR: 338 Here's the description, submitted by Gisle Vanem <giva@bgnett.no>: 1. sock_init() renamed to ssl_sock_init() in ./apps/s_socket.c due to name-clash with Watt-32. 2. rand() renamed to Rand() in ./crypto/bn/divtest.c due to name-clash with <stdlib.h> 3. Added calls to dbug_init()/sock_init() in some demo programs. 4. Changed cflags/lflags in configure. Watt-32 install root now taken from $WATT_ROOT.
This commit is contained in:
parent
1f30946481
commit
8d6e60486f
11 changed files with 67 additions and 23 deletions
|
@ -521,7 +521,7 @@ my %table=(
|
|||
"Cygwin", "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall:::CYGWIN32::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:win32:cygwin-shared:::.dll",
|
||||
|
||||
# DJGPP
|
||||
"DJGPP", "gcc:-I/dev/env/DJDIR/watt32/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall:::MSDOS:-L/dev/env/DJDIR/watt32/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::",
|
||||
"DJGPP", "gcc:-I/dev/env/WATT_ROOT/inc -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O2 -Wall:::MSDOS:-L/dev/env/WATT_ROOT/lib -lwatt:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::",
|
||||
|
||||
# Ultrix from Bernhard Simon <simon@zid.tuwien.ac.at>
|
||||
"ultrix-cc","cc:-std1 -O -Olimit 1000 -DL_ENDIAN::(unknown):::::::",
|
||||
|
|
|
@ -746,8 +746,8 @@ re_start:
|
|||
goto shut;
|
||||
}
|
||||
}
|
||||
#ifdef OPENSSL_SYS_WINDOWS
|
||||
/* Assume Windows can always write */
|
||||
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
|
||||
/* Assume Windows/DOS can always write */
|
||||
else if (!ssl_pending && write_tty)
|
||||
#else
|
||||
else if (!ssl_pending && FD_ISSET(fileno(stdout),&writefds))
|
||||
|
|
|
@ -1473,7 +1473,7 @@ static int www_body(char *hostname, int s, unsigned char *context)
|
|||
else
|
||||
{
|
||||
BIO_printf(bio_s_out,"read R BLOCK\n");
|
||||
#ifndef OPENSSL_SYS_MSDOS
|
||||
#if !defined(OPENSSL_SYS_MSDOS) && !defined(__DJGPP__)
|
||||
sleep(1);
|
||||
#endif
|
||||
continue;
|
||||
|
|
|
@ -83,9 +83,9 @@ typedef unsigned int u_int;
|
|||
|
||||
static struct hostent *GetHostByName(char *name);
|
||||
#ifdef OPENSSL_SYS_WINDOWS
|
||||
static void sock_cleanup(void);
|
||||
static void ssl_sock_cleanup(void);
|
||||
#endif
|
||||
static int sock_init(void);
|
||||
static int ssl_sock_init(void);
|
||||
static int init_client_ip(int *sock,unsigned char ip[4], int port);
|
||||
static int init_server(int *sock, int port);
|
||||
static int init_server_long(int *sock, int port,char *ip);
|
||||
|
@ -118,7 +118,7 @@ static LONG FAR PASCAL topHookProc(HWND hwnd, UINT message, WPARAM wParam,
|
|||
case WM_DESTROY:
|
||||
case WM_CLOSE:
|
||||
SetWindowLong(topWnd,GWL_WNDPROC,(LONG)lpTopWndProc);
|
||||
sock_cleanup();
|
||||
ssl_sock_cleanup();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ static BOOL CALLBACK enumproc(HWND hwnd,LPARAM lParam)
|
|||
#endif /* OPENSSL_SYS_WINDOWS */
|
||||
|
||||
#ifdef OPENSSL_SYS_WINDOWS
|
||||
static void sock_cleanup(void)
|
||||
static void ssl_sock_cleanup(void)
|
||||
{
|
||||
if (wsa_init_done)
|
||||
{
|
||||
|
@ -146,15 +146,21 @@ static void sock_cleanup(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
static int sock_init(void)
|
||||
static int ssl_sock_init(void)
|
||||
{
|
||||
#ifdef OPENSSL_SYS_WINDOWS
|
||||
#ifdef WATT32
|
||||
extern int _watt_do_exit;
|
||||
_watt_do_exit = 0;
|
||||
dbug_init();
|
||||
if (sock_init())
|
||||
return (0);
|
||||
#elif defined(OPENSSL_SYS_WINDOWS)
|
||||
if (!wsa_init_done)
|
||||
{
|
||||
int err;
|
||||
|
||||
#ifdef SIGINT
|
||||
signal(SIGINT,(void (*)(int))sock_cleanup);
|
||||
signal(SIGINT,(void (*)(int))ssl_sock_cleanup);
|
||||
#endif
|
||||
wsa_init_done=1;
|
||||
memset(&wsa_state,0,sizeof(wsa_state));
|
||||
|
@ -196,7 +202,7 @@ static int init_client_ip(int *sock, unsigned char ip[4], int port)
|
|||
struct sockaddr_in them;
|
||||
int s,i;
|
||||
|
||||
if (!sock_init()) return(0);
|
||||
if (!ssl_sock_init()) return(0);
|
||||
|
||||
memset((char *)&them,0,sizeof(them));
|
||||
them.sin_family=AF_INET;
|
||||
|
@ -261,7 +267,7 @@ static int init_server_long(int *sock, int port, char *ip)
|
|||
struct sockaddr_in server;
|
||||
int s= -1,i;
|
||||
|
||||
if (!sock_init()) return(0);
|
||||
if (!ssl_sock_init()) return(0);
|
||||
|
||||
memset((char *)&server,0,sizeof(server));
|
||||
server.sin_family=AF_INET;
|
||||
|
@ -318,7 +324,7 @@ static int do_accept(int acc_sock, int *sock, char **host)
|
|||
int len;
|
||||
/* struct linger ling; */
|
||||
|
||||
if (!sock_init()) return(0);
|
||||
if (!ssl_sock_init()) return(0);
|
||||
|
||||
#ifndef OPENSSL_SYS_WINDOWS
|
||||
redoit:
|
||||
|
@ -448,7 +454,7 @@ static int host_ip(char *str, unsigned char ip[4])
|
|||
{ /* do a gethostbyname */
|
||||
struct hostent *he;
|
||||
|
||||
if (!sock_init()) return(0);
|
||||
if (!ssl_sock_init()) return(0);
|
||||
|
||||
he=GetHostByName(str);
|
||||
if (he == NULL)
|
||||
|
|
|
@ -467,6 +467,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
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
# include <starlet.h>
|
||||
#elif defined(__ultrix)
|
||||
# include <sys/syslog.h>
|
||||
#elif !defined(MSDOS) && !defined(OPENSSL_SYS_VXWORKS) && !defined(NO_SYSLOG) /* Unix */
|
||||
#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)
|
||||
|
|
|
@ -64,6 +64,12 @@
|
|||
#include "cryptlib.h"
|
||||
#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);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include <openssl/bn.h>
|
||||
#include <openssl/rand.h>
|
||||
|
||||
static int rand(n)
|
||||
static int Rand(n)
|
||||
{
|
||||
unsigned char x[2];
|
||||
RAND_pseudo_bytes(x,2);
|
||||
|
@ -26,8 +26,8 @@ main()
|
|||
BN_CTX *ctx=BN_CTX_new();
|
||||
|
||||
for(;;) {
|
||||
BN_pseudo_rand(a,rand(),0,0);
|
||||
BN_pseudo_rand(b,rand(),0,0);
|
||||
BN_pseudo_rand(a,Rand(),0,0);
|
||||
BN_pseudo_rand(b,Rand(),0,0);
|
||||
if (BN_is_zero(b)) continue;
|
||||
|
||||
BN_RECP_CTX_set(recp,b,ctx);
|
||||
|
|
|
@ -45,6 +45,11 @@ char *argv[];
|
|||
|
||||
SSL_load_error_strings();
|
||||
|
||||
#ifdef WATT32
|
||||
dbug_init();
|
||||
sock_init();
|
||||
#endif
|
||||
|
||||
/* Add ciphers and message digests */
|
||||
OpenSSL_add_ssl_algorithms();
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
18
e_os.h
18
e_os.h
|
@ -154,6 +154,13 @@ extern "C" {
|
|||
#define readsocket(s,b,n) recv((s),(b),(n),0)
|
||||
#define writesocket(s,b,n) send((s),(b),(n),0)
|
||||
#define EADDRINUSE WSAEADDRINUSE
|
||||
#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
|
||||
|
@ -207,7 +214,7 @@ extern "C" {
|
|||
# define S_IFMT _S_IFMT
|
||||
# endif
|
||||
|
||||
# if !defined(WINNT)
|
||||
# if !defined(WINNT) && !defined(__DJGPP__)
|
||||
# define NO_SYSLOG
|
||||
# endif
|
||||
# define NO_DIRENT
|
||||
|
@ -344,7 +351,7 @@ extern "C" {
|
|||
/*************/
|
||||
|
||||
#ifdef USE_SOCKETS
|
||||
# if (defined(WINDOWS) || defined(MSDOS)) && !defined(__DJGPP__)
|
||||
# if defined(WINDOWS) || defined(MSDOS)
|
||||
/* windows world */
|
||||
|
||||
# ifdef OPENSSL_NO_SOCK
|
||||
|
@ -352,13 +359,18 @@ extern "C" {
|
|||
# define SSLeay_Read(a,b,c) (-1)
|
||||
# define SHUTDOWN(fd) close(fd)
|
||||
# define SHUTDOWN2(fd) close(fd)
|
||||
# else
|
||||
# elif !defined(__DJGPP__)
|
||||
# include <winsock.h>
|
||||
extern HINSTANCE _hInstance;
|
||||
# define SSLeay_Write(a,b,c) send((a),(b),(c),0)
|
||||
# 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)
|
||||
|
|
Loading…
Reference in a new issue