Commit 29ca1645 authored by Richard Levitte's avatar Richard Levitte
Browse files

WinCE patches

parent 97d58ead
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -4,6 +4,10 @@

 Changes between 0.9.6h and 0.9.7  [XX xxx 2002]

  *) Add the VC-CE target, introduce the WINCE sysname, and add
     INSTALL.WCE and appropriate conditionals to make it build.
     [Steven Reddie <smr@essemer.com.au> via Richard Levitte]

  *) Change the DLL names for Cygwin to cygcrypto-x.y.z.dll and
     cygssl-x.y.z.dll, where x, y and z are the major, minor and
     edit numbers of the version.
+3 −2
Original line number Diff line number Diff line
@@ -500,6 +500,7 @@ my %table=(
# Windows NT, Microsoft Visual C++ 4.0

"VC-NT","cl::::WINNT::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}::::::::::win32",
"VC-CE","cl::::WINCE::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}::::::::::win32",
"VC-WIN32","cl::::WIN32::BN_LLONG RC4_INDEX EXPORT_VAR_AS_FN ${x86_gcc_opts}::::::::::win32",
"VC-WIN16","cl:::(unknown):WIN16::MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX THIRTY_TWO_BIT:::",
"VC-W31-16","cl:::(unknown):WIN16::BN_LLONG MD2_CHAR DES_UNROLL DES_PTR RC4_INDEX SIXTEEN_BIT:::",
@@ -571,8 +572,8 @@ my %table=(

);

my @WinTargets=qw(VC-NT VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS BC-32
	BC-16 Mingw32 OS2-EMX);
my @WinTargets=qw(VC-NT VC-CE VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS
	BC-32 BC-16 Mingw32 OS2-EMX);

my $idx = 0;
my $idx_cc = $idx++;
+2 −0
Original line number Diff line number Diff line
@@ -2,6 +2,8 @@
 INSTALLATION ON THE WIN32 PLATFORM
 ----------------------------------

 [Instructions for building for Windows CE can be found in INSTALL.WCE]

 Heres a few comments about building OpenSSL in Windows environments.  Most
 of this is tested on Win32 but it may also work in Win 3.1 with some
 modification.
+25 −0
Original line number Diff line number Diff line
@@ -345,6 +345,7 @@ void program_name(char *in, char *out, int size)
#ifdef OPENSSL_SYS_WIN32
int WIN32_rename(char *from, char *to)
	{
#ifndef OPENSSL_SYS_WINCE
	/* Windows rename gives an error if 'to' exists, so delete it
	 * first and ignore file not found errror
	 */
@@ -352,6 +353,30 @@ int WIN32_rename(char *from, char *to)
		return -1;
#undef rename
	return rename(from, to);
#else
	/* convert strings to UNICODE */
	{
	BOOL result = FALSE;
	WCHAR* wfrom;
	WCHAR* wto;
	int i;
	wfrom = malloc((strlen(from)+1)*2);
	wto = malloc((strlen(to)+1)*2);
	if (wfrom != NULL && wto != NULL)
		{
		for (i=0; i<(int)strlen(from)+1; i++)
			wfrom[i] = (short)from[i];
		for (i=0; i<(int)strlen(to)+1; i++)
			wto[i] = (short)to[i];
		result = MoveFile(wfrom, wto);
		}
	if (wfrom != NULL)
		free(wfrom);
	if (wto != NULL)
		free(wto);
	return result;
	}
#endif
	}
#endif

+16 −0
Original line number Diff line number Diff line
@@ -140,6 +140,14 @@ typedef unsigned int u_int;
#include <conio.h>
#endif

#ifdef OPENSSL_SYS_WINCE
/* Windows CE incorrectly defines fileno as returning void*, so to avoid problems below... */
#ifdef fileno
#undef fileno
#endif
#define fileno(a) (int)_fileno(a)
#endif


#if (defined(OPENSSL_SYS_VMS) && __VMS_VER < 70000000)
/* FIONBIO used as a switch to enable ioctl, and that isn't in VMS < 7.0 */
@@ -662,7 +670,11 @@ re_start:
					tv.tv_usec = 0;
					i=select(width,(void *)&readfds,(void *)&writefds,
						 NULL,&tv);
#ifdef OPENSSL_SYS_WINCE
					if(!i && (!_kbhit() || !read_tty) ) continue;
#else
					if(!i && (!((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0))) || !read_tty) ) continue;
#endif
				} else 	i=select(width,(void *)&readfds,(void *)&writefds,
					 NULL,NULL);
			}
@@ -828,7 +840,11 @@ printf("read=%d pending=%d peek=%d\n",k,SSL_pending(con),SSL_peek(con,zbuf,10240
			}

#ifdef OPENSSL_SYS_WINDOWS
#ifdef OPENSSL_SYS_WINCE
		else if (_kbhit())
#else
		else if ((_kbhit()) || (WAIT_OBJECT_0 == WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0)))
#endif
#else
		else if (FD_ISSET(fileno(stdin),&readfds))
#endif
Loading