Commit Graph

189 Commits (ae81a9c4265a836aecd759fe6b80d22f4ab847ad)

Author SHA1 Message Date
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
Doug Coleman 50ca01a4d8 io.sockets.windows: Fix using. 2014-04-23 20:07:32 -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
John Benediktsson 6f87c2afc7 io.sockets: use must-fail-with for resolve-host errors. 2014-04-20 10:02:04 -07:00
John Benediktsson 24cb41aa13 io.sockets: don't need "0 or" for addrinfo. 2014-04-20 09:30:03 -07:00
Björn Lindqvist e1206d5ef1 io.sockets: add word addrinfo-error to signal host lookup failures
If the getaddrinfo call fails, and you want to handle that failure in
a structured way, then you need a designated error type to know what
went wrong.
2014-04-20 09:29:31 -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
Björn Lindqvist a3eba146fd io.sockets: example for the with-socket function 2014-04-14 08:42:09 -07:00
Björn Lindqvist b79bd45908 io.sockets: example for resolve-host 2014-04-14 08:42:08 -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 ee19a97869 io.sockets.windows: wrap ioctlsocket and related constants to enable
setting sockets in non-blocking mode
2014-04-02 16:50:20 -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 eaca04de3b libc: several vocabs now need to depend on libc 2014-04-02 12:13:00 -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
John Benediktsson 0a2fef0775 io.sockets: change protocol-port to handle ``f`` on all platforms. 2014-03-12 07:27:39 -07: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
Björn Lindqvist bc56b5099f io.sockets, urls: move documentation for protocol-port 2013-09-16 17:31:37 -07:00
Björn Lindqvist 7c179f876c unix.ffi, windows.winsock: wraps for servent functions 2013-09-16 17:31:37 -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 bcc86baf45 io.sockets: Minor cleanup. 2012-08-26 00:04:53 -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 8343c88f4d io.sockets: fix stack effect names. 2012-08-02 14:49:50 -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
Doug Coleman 1da8666a70 io.sockets.unix: Needs to still use namespaces. Clean up using lists. 2012-07-19 00:53:09 -07:00
Doug Coleman 42f4dc36b2 namespaces: Rename ``bind`` to ``with-variables``. Update a few places that called ``global [ ] with-variables`` to use ``with-global``. 2012-07-19 00:02:47 -07:00
John Benediktsson 5cc30f46f5 using if-zero in more places. 2012-07-16 15:45:21 -07:00
John Benediktsson f53f6993ec io.sockets: fix stack effect for <broadcast>. 2012-05-29 15:47:15 -07:00
John Benediktsson 2db76ac23c io.sockets.windows: get the handle from the handle. 2012-05-29 11:20:55 -07:00