Brent Cook e83c30c158 monkey patch more POSIX-like behavior out of winsock 2
Windows sockets functions look on the outside like they behave similarly
to POSIX functions, but there are many subtle and glaring differences,
including errors reported via WSAGetLastError, read, write, and close do
not work on sockets, setsockopt takes a (char *) rather than (void *),
etc.

This header implements wrappers that coerce more POSIX-like behavior
from these functions, making portable code easier to develop.

BENEFITS:
One does not necessarily need to sprinkle #ifdefs around code to handle
the Windows and non-Windows behavior when porting code.

CAVEATS:
There may be performance implications with the 'mother-may-I'
approach to determining if a descriptor is a socket or a file.

The errno mappings are not 100% what one might expect compared to POSIX
since there were not always good 1:1 equivalents from the WSA errors.
2014-12-03 17:07:17 -06:00
2014-10-14 21:54:37 -05:00
2014-12-03 17:02:23 -06:00
2014-07-10 06:07:09 -05:00
2014-07-10 06:07:09 -05:00
2014-10-15 22:28:34 -05:00
2014-08-16 14:16:01 -05:00
2014-07-10 06:07:09 -05:00
2014-10-22 11:16:39 -05:00

This package is the official portable version of LibreSSL
	(http://www.libressl.org).

LibreSSL is a fork of OpenSSL developed by the OpenBSD project
(http://www.openbsd.org). LibreSSL is developed on OpenBSD. This
package then adds portability shims for other operating systems.

Official release tarballs are available at your friendly neighborhood
OpenBSD mirror in directory LibreSSL, e.g.:

	http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/

although we suggest that you use a mirror:

	http://www.openbsd.org/ftp.html

The LibreSSL portable build framework is also mirrored in Github:

	https://github.com/libressl-portable/portable

If you have checked this source using Git, follow these initial steps to
prepare the source tree for building:

 1. ensure you have the following packages installed:
	automake, autoconf, bash, git, libtool, perl, pod2man
 2. run './autogen.sh' to prepare the source tree for building
    or run './dist.sh' to prepare a tarball.

Once you have a source tree from Git or FTP, run these commands to build and
install the package:

  ./configure   # see ./configure --help for configuration options
  make check    # runs builtin unit tests
  make install  # set DESTDIR= to install to an alternate location

The resulting library and 'openssl' utility is largely API-compatible with
OpenSSL 1.0.1. However, it is not ABI compatible - you will need to relink your
programs to LibreSSL in order to use it, just as in moving from OpenSSL 0.9.8
to 1.0.1.

The project attempts to provide working alternatives for operating systems with
limited or broken security primitives (e.g. arc4random(3), issetugid(2)) and
assists with improving OS-native implementations where possible.

LibreSSL portable will build on any reasonably modern version of Linux,
Solaris, or OSX with a standards-compliant compiler and C library.
Description
No description provided
Readme 1.3 MiB
Languages
C 36.2%
CMake 18.6%
Makefile 17.8%
Shell 16%
M4 7.5%
Other 3.8%