Benjamin Pollack [Sat, 12 Mar 2016 14:27:31 +0000 (09:27 -0500)]
io.sockets.secure: add SNI support for Windows
M: secure ((client)) is identical between Unix and Windows, so this probably
could be moved out of the platform-specific vocab, but doing it sanely would
require a refactor I'm not excited about, so punting on that for now.
Benjamin Pollack [Fri, 11 Mar 2016 21:18:29 +0000 (16:18 -0500)]
xml.writer: do not include meaningless extra whitespace in doctype
This is theoretically merely annoying, but since we're using the XML vocab in
tons of places as an overenthusiastic HTML generator, and HTML5 technically
mandates that the first token needs to be `<!DOCTYPE html>` full-stop, this had
to get fixed.
Benjamin Pollack [Fri, 11 Mar 2016 16:16:18 +0000 (11:16 -0500)]
chloe/html: switch to HTML5 templates
Since XHTML is dead, and HTML5 isn't, switch to HTML5 templates for Chloe and
other key parts of our HTML subsystems. As part of this, I went through and
added DOCTYPE declarations to some of our examples as well.
Benjamin Pollack [Fri, 11 Mar 2016 16:01:22 +0000 (11:01 -0500)]
chloe: ensure self-closing tags are self-closing
This gets us much closer to HTML5 compatibility, while not breaking the
existing XHTML functionality. (Indeed, the entire reason this is necessary is
that XHTML, being an XML derivative, treats `<foo></foo>` and `<foo />`
equivalently, whereas HTML5 does not.)
Björn Lindqvist [Tue, 8 Mar 2016 13:38:48 +0000 (14:38 +0100)]
compiler.cfg.*: big changes which removes the last basic-block uses
All intrinsic code generating words signatures are changed from ( node
-- ) to ( block node -- block' ) so the current block is now always
passed on the stack.
Björn Lindqvist [Mon, 7 Mar 2016 03:42:28 +0000 (04:42 +0100)]
compiler.cfg.*: changes to remove basic-block variable
The emit-node generics signature is changed to ( block node -- block' )
so that it always returns the next block to operate on. Signature for a
lot of related words are changed similarily. Now there is only a few
basic-block usages left.
Doug Coleman [Tue, 8 Mar 2016 20:48:45 +0000 (12:48 -0800)]
windows openssl, libtls: Use the libressl dlls for SSL.
http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/
http://downloads.factorcode.org/dlls/
libcrypt-37.dll
libssl-38.dll
libtls-10.dll
Doug Coleman [Mon, 7 Mar 2016 21:59:17 +0000 (13:59 -0800)]
io.sockets: Windows doesn't recognize 0.0.0.0. Add a method for
resolve-localhost for Windows, and make the default ipv4 make-sockaddr use
127.0.0.1 since we are making a sockaddr for ipv4 anyway and 127.0.0.1 is
cross-platform. Fixes #85.
Doug Coleman [Mon, 7 Mar 2016 21:23:24 +0000 (13:23 -0800)]
editors.visual-studio-code: msft changed the install directory to
c:\program files (x86). Now we don't need the platform-specific windows
file.
Also, add -r option to reuse existing windows.
Doug Coleman [Mon, 7 Mar 2016 21:21:30 +0000 (13:21 -0800)]
io.standard-paths.windows: We call >lower on the paths being compared, but
not on the original file we are looking for. So searching for something
like "Code.exe" would never find it. Fixed.
Doug Coleman [Fri, 4 Mar 2016 00:53:24 +0000 (16:53 -0800)]
command-line.startup: document more command line flags. we already have -nosignals, but it was hidden in the source code. Fix spacing for default image. Closes #1514.
All versions of SSL are deprecated and have major security issues. Just
kill the whole thing. If you want to deliberately expose yourself to
POODLE, you can do it on your own time.
Benjamin Pollack [Tue, 23 Feb 2016 13:09:07 +0000 (08:09 -0500)]
openssl: only set RSA keys if required to do so
Modern OpenSSL and LibreSSL both do not require SSL_CTX_set_tmp_rsa to
be called unless SSL_CTX_need_tmp_rsa returns true, and LibreSSL and
OpenSSL compiled with deprecation warnings both will fail if this
happens. This commit resolves that.
With this change, it becomes possible to use LibreSSL in place of
OpenSSL with Factor.
Benjamin Pollack [Mon, 22 Feb 2016 18:37:54 +0000 (13:37 -0500)]
Update OpenSSL calls to work with LibreSSL/newer OpenSSL
RSA_generate_key has been deprecated, and is not available in either
LibreSSL or newer OpenSSL that are not compiled with deprecated call
support. This commit switches to the still-supported
RSA_generate_key_ex, which is supported by both libraries.
Note that this is still insufficient for Factor to work under LibreSSL,
though we now get a call further than before.