Timothee Cour
b7b84fa165
parseutils: integerOutOfRangeDefect => integerOutOfRangeError ( #14627 )
2020-06-09 23:57:27 -07:00
Timothee Cour
d81bc69587
enable tioselectors on osx; more diagnostic for #13166 ( #14625 )
2020-06-09 19:15:18 -07:00
Juan Carlos
387e337a2a
Documentation update a description ( #14619 )
...
* Documentation update a description in a page listing links
* Update doc/docs.rst
Co-authored-by: Danil Yarantsev <tiberiumk12@gmail.com >
Co-authored-by: Danil Yarantsev <tiberiumk12@gmail.com >
2020-06-09 22:17:32 +01:00
Andreas Rumpf
6085ad95ff
fixes #14279 ( #14618 )
2020-06-09 20:39:26 +02:00
Andreas Rumpf
b3029ba213
fixes #14578 ( #14615 )
2020-06-09 17:05:01 +02:00
Juan Carlos
881fa94b57
Documentation Fix Typo, Add Table ( #14609 )
2020-06-09 15:43:42 +02:00
ynfle
aa70cfdea2
Fix(astspec.txt): type of repeated word ( #14612 )
2020-06-08 20:14:26 -07:00
Max Grender-Jones
cc3409e264
Make the example better describe the desired outcome ( #14611 )
2020-06-08 18:49:07 -07:00
lbartoletti
30c09e4607
[OpenBSD] Add arm support ( #14608 )
...
* add arm support to openbsd
* use clang on openbsd
2020-06-08 20:06:04 +02:00
Andreas Rumpf
c308c2e60b
optimized wrapWords; fixes #14579 ( #14606 ) [backport:1.2]
2020-06-08 14:34:26 +02:00
Andreas Rumpf
e3f80e434a
fixes #14557 ( #14607 )
2020-06-08 14:32:45 +02:00
Timothee Cour
c7a1a7b8bf
toJson, jsonTo, json (de)serialization for custom types; remove dependency on strtabs thanks to a hooking mechanism (#14563 )
...
* json custom serialization; application for strtabs
* serialize using nesting
* make toJson more feature complete
* add since
* Revert "Improve JSON serialisation of strtabs (#14549 )"
This reverts commit 7cb4ef26ad .
* better approach via mixin
* toJson, jsonTo
* fix test
* address comments
* move to jsonutils
* doc
* cleanups
* also test for js
* also test for vm
2020-06-08 10:35:23 +02:00
Tomohiro
733bd76f6b
Fix sugar.dump: It doesn't work correctly with compile time expression ( #14580 )
2020-06-08 10:28:42 +02:00
Timothee Cour
0d814f2d44
hotfix disable nitter refs https://github.com/timotheecour/Nim/issues/167 ( #14603 )
2020-06-08 08:15:34 +02:00
alaviss
8edac9cf1d
openssl: use explicit result for SSL_in_init ( #14597 )
...
Sometimes the analysis might get funky and decide that the if-expression
below is not an if-expression. Details of how this can happen is largely
unknown, but it's easy to prevent so we will just go forward with that.
Fix #14591
2020-06-08 08:15:10 +02:00
Clyybber
52841dba09
Fix #14568 ( #14583 )
...
* Fix #14568
* Add testcase
* Fix bogus test
* Adapt other failing tests
* Declarations are always first writes
2020-06-07 23:32:41 +02:00
Andreas Rumpf
754a196d47
fixes #14315 ( #14594 )
2020-06-07 23:29:26 +02:00
Andreas Rumpf
419dbd573d
fixes #14118 ( #14595 )
2020-06-07 20:11:42 +02:00
Andreas Rumpf
66c50c2ffc
implement the 'bind' statement for generics, it was an oversight that this was never implemented ( #14584 )
2020-06-07 09:55:56 +02:00
lbartoletti
51b71e35f2
Fix link to "rebuilding the compiler" ( #14567 )
2020-06-06 21:53:18 +02:00
Andreas Rumpf
32083c7ff8
more precise analysis about 'observable stores' [backport:1.2] ( #14582 )
2020-06-06 21:28:46 +02:00
Leorize
4fdf9cb808
wrappers/openssl: defer loading SSL_CTX_set_ciphersuites
2020-06-06 21:11:53 +02:00
Leorize
6b2d8bfc8b
net: also set TLSv1.3 cipher suites
2020-06-06 21:11:53 +02:00
Leorize
3cd74c6408
wrappers/openssl: mark casts as gcsafe
...
Nim will pretend that these proc are not gcsafe if they are not marked.
2020-06-06 21:11:53 +02:00
Leorize
b323bccd81
wrappers/openssl: enable SSL_CTX_set_ecdh_auto for LibreSSL
...
This procedure is not no-op for older LibreSSL, and the ABI is kept for
newer versions, so there's no harm in enabling it unconditionally for
all LibreSSL versions.
2020-06-06 21:11:53 +02:00
Leorize
e80a23f4d2
net: revert compatibility changes for Windows
...
This reverts commit d53a6355f3 and
688b1f250e .
2020-06-06 21:11:53 +02:00
Leorize
d406f588d8
wrappers/openssl: the version number comes from the utility library
...
Previously we loaded the SSL library for this, but that's not where the
symbol resides.
2020-06-06 21:11:53 +02:00
Leorize
0ca069b4f8
net: use CiphersOld list for Windows
...
The default DLLs shipped are too old, switch to CiphersOld list to
ensure compatibility.
This commit should be reverted before any future release.
2020-06-06 21:11:53 +02:00
Leorize
279438f1df
net: don't call set_ecdh_auto for super old OpenSSL
...
And the fun thing is that currently we use a super old OpenSSL on
Windows.
2020-06-06 21:11:53 +02:00
Leorize
b5b191af4b
wrappers/openssl: fix SSL_CTX_set_mode
...
Follow up of 794042080b
2020-06-06 21:11:53 +02:00
Leorize
61d4fbce4f
wrappers/openssl: getOpenSSLVersion is gcsafe
...
Yet another weird {.gcsafe.} triggering when it shouldn't.
2020-06-06 21:11:53 +02:00
Leorize
6c0f86c486
net: enable automatic EC curve selection for OpenSSL 1.0.2
...
This setting is required for servers running OpenSSL < 1.1.0 to support
EC-based secure ciphers that is now part of the default cipher list.
2020-06-06 21:11:53 +02:00
Leorize
9278e785bd
wrappers/openssl: fix SSL_CTX_ctrl signature
2020-06-06 21:11:53 +02:00
Leorize
e4e3d99ee2
asyncnet: clear SSL error queue before performing I/O
...
Follow up of 476be6cc27
2020-06-06 21:11:53 +02:00
Leorize
256841cf2c
changelog.md: clarify that only the default has changed [ci-skip]
2020-06-06 21:11:53 +02:00
Leorize
1715935846
ssl_config_parser: refactor for sanity reasons
2020-06-06 21:11:53 +02:00
Leorize
3d4d3f4ac2
untestable/thttpclient_ssl: some tests are no longer broken
...
With the changes to the default cipher suites, certain tests are no
longer broken and are acting as they should.
2020-06-06 21:11:53 +02:00
Leorize
23cc4091d9
untestable/thttpclient_ssl: move incomplete-chain to dubious_broken
...
It's unsure why this test fail for macOS, but it doesn't hurt if it's
not passing.
2020-06-06 21:11:53 +02:00
Leorize
1fb2a58674
net: use a secure cipher list by default
...
Previously, the `net` module use the blanket "ALL" as the default cipher
list. This list may contain security ciphers that are weak and/or outdated
according to the current standard.
This commit introduces a new module `ssl_config` that contains the
latest OpenSSL configurations as recommended by Mozilla OpSec, and
make the `net` module use the cipher list targeting `intermediate`
compatibility level as the default.
2020-06-06 21:11:53 +02:00
Leorize
6cb94b5da6
asyncnet, net: clear openssl error queue before performing I/O
...
Per SSL_get_error(3):
The current thread's error queue must be empty before the TLS/SSL I/O
operation is attempted, or SSL_get_error() will not work reliably.
There has been records of not clearing the error queue causing weird SSL
errors when there shouldn't be any, see:
https://github.com/openssl/openssl/issues/11889
2020-06-06 21:11:53 +02:00
Leorize
f243f9aeb5
openssl: fix erroneous function signatures
...
Now matches the declaration in openssl/err.h
2020-06-06 21:11:53 +02:00
Leorize
78982b52f0
net: don't clear error queue unless shutdown() will be performed
2020-06-06 21:11:53 +02:00
Leorize
19ccce2617
Revert "net: don't clear all errors on close"
...
You're supposed to clear the error queue before any I/O operations. Per
SSL_get_error(3) man page.
This reverts commit ee3ed37300 .
2020-06-06 21:11:53 +02:00
Leorize
44d0b4bdfd
thttpclient_ssl: be less specific
...
The error we're looking for is "certificate verify failed". The routine
that reports this will be different between openssl versions, so it
makes no sense to track the routine name as well.
2020-06-06 21:11:53 +02:00
Leorize
d06e6eec79
net: don't clear all errors on close
...
Closing a socket clears the error queue of the entire thread, which
seems to be a bit too invasive.
Also I don't find any reason in the PR that added this.
2020-06-06 21:11:53 +02:00
Leorize
65b350f112
untestable/thttpclient_ssl: fix macos
2020-06-06 21:11:53 +02:00
Leorize
df91f61e20
untestable/thttpclient_ssl: fix 10000-sans test
2020-06-06 21:11:53 +02:00
Leorize
19ccc5fd8d
untestable/thttpclient_ssl: catch errors caused by the bad catergory
...
Previously the errors caused by `SSL_shutdown()` masked these, so now we
catch them.
2020-06-06 21:11:53 +02:00
Leorize
82092b3bb7
asyncnet, net: call SSL_shutdown only when connection established
...
This commit prevents "SSL_shutdown while in init" errors from happening.
See https://github.com/openssl/openssl/issues/710#issuecomment-253897666
2020-06-06 21:11:53 +02:00
Timothee Cour
61f2f1f5c5
fix #14576 addr of param (including for lent) now works with nim js ( #14577 )
...
* fix #14576 addr(param) now works in nim js
* workaround https://github.com/nim-lang/Nim/issues/14578
2020-06-06 20:15:24 +02:00