Commit Graph

77 Commits (d486de889dcfff27e80e4c06ef8acf4b7e11f0f5)

Author SHA1 Message Date
John Benediktsson 39093727b1 libc: rename (io-error) to throw-errno. 2014-11-21 09:29:45 -08:00
John Benediktsson f79d61060e io.buffers: cleanup interface a bit. 2014-11-16 18:54:24 -08:00
John Benediktsson 8033741135 io/ui: slim down the USE: list 2014-10-24 17:33:27 -07:00
John Benediktsson 8c58b99b1d Revert "openssl: define a startup-hook so that openssl initializes automatically"
This reverts commit 981ea313a0.

Conflicts:
	basis/openssl/openssl.factor
2014-08-05 12:14:53 -07:00
Doug Coleman 6ea98afc99 io.sockets.secure.openssl: We don't care what the error is as long as it fails. 2014-07-09 22:32:32 -07:00
Doug Coleman 377180baf6 io.sockets.secure.windows: Fix using, remove duplication. 2014-07-07 21:44:40 -05:00
Doug Coleman 59c5373263 io.sockets.secure: Another fix for cross-platform openssl. 2014-07-07 18:45:22 -07:00
Doug Coleman 075a86f5d9 io.sockets.secure: Move some code from secure.unix to secure.openssl. Add a hook for finding sockets to upgrade. 2014-07-07 18:34:41 -07:00
Björn Lindqvist 981ea313a0 openssl: define a startup-hook so that openssl initializes automatically 2014-06-06 14:12:09 -07:00
John Benediktsson e3323818cc io.sockets.secure.openssl: disable tests for now. 2014-04-22 08:16:53 -07:00
John Benediktsson 06912460b4 io.sockets.secure.openssl: use must-fail-with. 2014-04-22 07:41:23 -07:00
Björn Lindqvist 516ffcc311 io.sockets.secure.openssl.tests: more and better SSL_connect tests
Better error handling so it should be easier to see why the tests fail
on the build server (#1036).
2014-04-18 10:06:46 -07:00
Björn Lindqvist df3417c5b7 io.sockets.secure.openssl: more docs 2014-04-18 10:06:46 -07:00
Björn Lindqvist e473ef628d io.sockets.secure.openssl: big refactoring, all error handling merged into one check-ssl-error word 2014-04-18 10:06:46 -07:00
Doug Coleman d123f589f7 io.sockets.secure.openssl: Check error code in unit test. 2014-04-08 12:08:58 -07:00
Doug Coleman a02e8e3cda io.sockets.secure.openssl: Fix using list. 2014-04-02 23:11:52 -05:00
Björn Lindqvist f8387a08ae Merge:
io.sockets.secure.windows: use non-blocking sockets to prevent
SSL_connect from blocking

On Windows, SSL_connect may hang forever if the server doesn't send any
data. To counteract that we temporarily set the socket non-blocking and
then call select in the wait-for-fd method.

Conflicts:
	basis/io/sockets/secure/openssl/openssl-tests.factor
2014-04-02 12:16:51 -05:00
Björn Lindqvist 4d8f3e8a78 io.sockets.secure.openssl: do-ssl-connect needs to call wait-for-fd 2014-04-02 12:13:21 -05:00
Björn Lindqvist 753b2f0177 io.files: make wait-for-fd generic and dispatch depending on backend
do-ssl-accept need to call wait-for-fd so it needs to be generic. On
windows it's a noop but on unix it will wait for the fd.
2014-04-02 12:12:49 -05:00
Björn Lindqvist 6421af3401 io.sockets.secure.*: unification of lots of platform-independent code
Code that is duplicated in the backends moved to
io.sockets.secure.openssl. The wait-for-fd verb used by do-ssl-accept
doesn't have any equivalent on Windows so that needs to be
implemented.
2014-04-02 12:12:37 -05:00
Björn Lindqvist 5f38df7741 io.sockets.secure.windows: reading and writing from ssl sockets
Unified the drain and refill generics and put their definition in
io.files. They are now used by both the windows and unix ssl backend
for io. Windows ssl kind of works now, but the error cases are not
implemented correctly.
2014-04-02 12:12:14 -05:00
Björn Lindqvist 6ed3a09b5d io.sockets.secure: new hook variable ssl-certificate-verification-supported?
t if the backend is able to verify certificates, f
otherwise. Currently certificate validation isn't implemented on Windows
2014-04-02 12:11:53 -05:00
Björn Lindqvist 39b13b6736 io.sockets.secure.openssl: guard against SSL_get_peer_certificate returning null 2014-03-06 18:41:37 +01:00
Doug Coleman a71e2d8060 io.sockets.secure.openssl: Fix docs. 2013-11-28 12:59:36 -06:00
John Benediktsson 53592b9c7d io.sockets.secure.windows: add platforms.txt. 2013-11-16 16:20:34 -08:00
Doug Coleman 4bcb356ba8 io.sockets.secure.openssl: libssl error is opaque, check that cert files
exist in Factor beforehand so we can get a nicer error message.
Add missing USE: and neaten up the list.
2013-11-16 15:59:31 -08:00
Björn Lindqvist 5f2238f7d4 io.sockets.secure.windows: secure socket implementation for windows, it works reasonably but certificate validation is not working correctly yet 2013-10-11 10:23:40 -07:00
Björn Lindqvist 729bd8a362 io.sockets.secure.openssl.tests: remove windows.winsock import and another test for subject-name 2013-10-11 10:23:40 -07:00
Björn Lindqvist ad627a1395 openssl.libssl: on windows the X509_* family of functions is in a
different dll than the other functions in libssl
2013-10-11 10:23:40 -07:00
John Benediktsson 32b07016b0 io.sockets.secure.openssl: some style improvements. 2013-09-16 17:24:31 -07:00
Björn Lindqvist 44a1d61bd4 io.sockets.secure: common-name -> subject-name 2013-09-16 17:17:48 -07:00
Björn Lindqvist c2fd5031e0 io.sockets.secure, io.sockets.secure.openssl: improved host name verification that takes into account a certificates subject alternative names. 2013-09-16 17:17:48 -07:00
Björn Lindqvist f4f60b8ba3 io.sockets.secure.openssl: support for getting issuer name 2013-09-16 17:17:47 -07:00
Doug Coleman 30673f65cf io.ports: More correct memory handling. There are still leaks in the tests... 2012-08-25 19:44:22 -07:00
John Benediktsson 2398580eb8 io.sockets.secure.unix.debug: move to io.sockets.secure.debug (not unix specific). 2012-07-19 19:17:52 -07:00
John Benediktsson 5cc30f46f5 using if-zero in more places. 2012-07-16 15:45:21 -07:00
Doug Coleman 94db86a6db Make "foo.private" require load foo instead.
Move require from vocabs.loader to vocabs. Update everything.
Fixes #201.
2011-11-02 11:50:03 -07:00
Doug Coleman 51c033a1f6 Fix all failures in the linux64 build email 2011-10-24 19:33:09 -07:00
John Benediktsson 9f34c9c676 Spelling fixes to documentation. 2011-08-26 16:20:31 -07:00
Slava Pestov 78a85d0b05 io.sockets.secure.unix: update unit test for close-notify change 2011-02-25 21:05:56 -08:00
Slava Pestov 4270c6cce6 io.sockets.secure.unix: fix socket shutdown handling to make http.client work with https://www.google.com 2011-01-31 23:45:45 -05:00
Slava Pestov cc06c4e51f openssl: remove cacert.pem, since its useless and we should call SSL_CTX_set_default_verify_paths instead 2011-01-29 23:26:29 -05:00
Slava Pestov b10897334c io.sockets.secure: add ssl-supported? hook, and make furnace.auth and twitter vocabs use it. This makes furnace work on Windows 2010-10-24 15:54:19 -07:00
Slava Pestov afbf4e9cb2 io.sockets: make addrspecs immutable 2010-09-04 18:49:27 -07:00
Joe Groff 65c3259761 "cdecl" -> cdecl 2010-03-31 19:20:35 -07:00
Slava Pestov 95bfc8a240 vocabs.metadata: replace unportable tag with a platforms.txt file for more fine-grained control. Rename unportable tag to untested for remaining cases 2010-02-20 13:30:49 +13:00
Doug Coleman 8d952277a2 Handle EINTR in a lot of cases where it wasn't handled before. Split off unix into unix.ffi and unix. 2010-01-22 12:59:24 -06:00
Doug Coleman 1ff1e3f4bc add docs to 8-bit encodings vocabs, update usages 2009-11-12 18:36:20 -06:00
Doug Coleman 17f0a5d41a Merge branch 'master' of git://factorcode.org/git/factor 2009-10-28 17:26:23 -05:00
Doug Coleman e376a0ece2 (normalize-path) -> absolute-path, canonicalize-path -> resolve-symlinks 2009-10-28 17:25:50 -05:00