summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* openssl: use explicit result for SSL_in_init (#14597)alaviss2020-06-081-2/+2
| | | | | | | 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
* Fix #14568 (#14583)Clyybber2020-06-073-25/+49
| | | | | | | * Fix #14568 * Add testcase * Fix bogus test * Adapt other failing tests * Declarations are always first writes
* fixes #14315 (#14594)Andreas Rumpf2020-06-071-2/+1
|
* fixes #14118 (#14595)Andreas Rumpf2020-06-071-1/+4
|
* implement the 'bind' statement for generics, it was an oversight that this ↵Andreas Rumpf2020-06-072-4/+28
| | | | was never implemented (#14584)
* Fix link to "rebuilding the compiler" (#14567)lbartoletti2020-06-061-1/+1
|
* more precise analysis about 'observable stores' [backport:1.2] (#14582)Andreas Rumpf2020-06-063-4/+15
|
* wrappers/openssl: defer loading SSL_CTX_set_ciphersuitesLeorize2020-06-061-1/+3
|
* net: also set TLSv1.3 cipher suitesLeorize2020-06-062-0/+12
|
* wrappers/openssl: mark casts as gcsafeLeorize2020-06-061-17/+13
| | | | Nim will pretend that these proc are not gcsafe if they are not marked.
* wrappers/openssl: enable SSL_CTX_set_ecdh_auto for LibreSSLLeorize2020-06-061-1/+1
| | | | | | 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.
* net: revert compatibility changes for WindowsLeorize2020-06-061-5/+2
| | | | | This reverts commit d53a6355f3ad4401731142d8fc66b95ecfdfb321 and 688b1f250ed058ecc49737dc75fd089206fa25b9.
* wrappers/openssl: the version number comes from the utility libraryLeorize2020-06-061-9/+20
| | | | | Previously we loaded the SSL library for this, but that's not where the symbol resides.
* net: use CiphersOld list for WindowsLeorize2020-06-061-1/+4
| | | | | | | The default DLLs shipped are too old, switch to CiphersOld list to ensure compatibility. This commit should be reverted before any future release.
* net: don't call set_ecdh_auto for super old OpenSSLLeorize2020-06-062-6/+4
| | | | | And the fun thing is that currently we use a super old OpenSSL on Windows.
* wrappers/openssl: fix SSL_CTX_set_modeLeorize2020-06-061-1/+1
| | | | Follow up of 794042080b270d9da8d64bb4285ce83787bdec7e
* wrappers/openssl: getOpenSSLVersion is gcsafeLeorize2020-06-061-3/+4
| | | | Yet another weird {.gcsafe.} triggering when it shouldn't.
* net: enable automatic EC curve selection for OpenSSL 1.0.2Leorize2020-06-062-0/+23
| | | | | 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.
* wrappers/openssl: fix SSL_CTX_ctrl signatureLeorize2020-06-061-1/+1
|
* asyncnet: clear SSL error queue before performing I/OLeorize2020-06-061-0/+1
| | | | Follow up of 476be6cc278d58232e2c6cd3515eb24eca7e2d38
* changelog.md: clarify that only the default has changed [ci-skip]Leorize2020-06-061-1/+1
|
* ssl_config_parser: refactor for sanity reasonsLeorize2020-06-061-15/+17
|
* untestable/thttpclient_ssl: some tests are no longer brokenLeorize2020-06-061-6/+6
| | | | | With the changes to the default cipher suites, certain tests are no longer broken and are acting as they should.
* untestable/thttpclient_ssl: move incomplete-chain to dubious_brokenLeorize2020-06-061-1/+1
| | | | | It's unsure why this test fail for macOS, but it doesn't hurt if it's not passing.
* net: use a secure cipher list by defaultLeorize2020-06-065-1/+125
| | | | | | | | | | | 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.
* asyncnet, net: clear openssl error queue before performing I/OLeorize2020-06-063-0/+9
| | | | | | | | | | | | 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
* openssl: fix erroneous function signaturesLeorize2020-06-062-5/+3
| | | | Now matches the declaration in openssl/err.h
* net: don't clear error queue unless shutdown() will be performedLeorize2020-06-061-1/+1
|
* Revert "net: don't clear all errors on close"Leorize2020-06-061-0/+1
| | | | | | | You're supposed to clear the error queue before any I/O operations. Per SSL_get_error(3) man page. This reverts commit ee3ed37300743addb1344e39bc46d3cd2b89a718.
* thttpclient_ssl: be less specificLeorize2020-06-061-2/+1
| | | | | | 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.
* net: don't clear all errors on closeLeorize2020-06-061-1/+0
| | | | | | | 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.
* untestable/thttpclient_ssl: fix macosLeorize2020-06-061-0/+1
|
* untestable/thttpclient_ssl: fix 10000-sans testLeorize2020-06-061-1/+3
|
* untestable/thttpclient_ssl: catch errors caused by the bad catergoryLeorize2020-06-061-1/+1
| | | | | Previously the errors caused by `SSL_shutdown()` masked these, so now we catch them.
* asyncnet, net: call SSL_shutdown only when connection establishedLeorize2020-06-064-12/+52
| | | | | | This commit prevents "SSL_shutdown while in init" errors from happening. See https://github.com/openssl/openssl/issues/710#issuecomment-253897666
* fix #14576 addr of param (including for lent) now works with nim js (#14577)Timothee Cour2020-06-063-3/+71
| | | | | * fix #14576 addr(param) now works in nim js * workaround https://github.com/nim-lang/Nim/issues/14578
* reorder.nim: fixes the indentationAraq2020-06-061-41/+40
|
* Fix asynchttpserver newline breaking content-length (#14565) [backport]Zed2020-06-061-2/+3
|
* remove isMainModule from json,os,sequtils (#14572)Timothee Cour2020-06-066-757/+759
| | | | | * move json.isMainModule => tjson * move isMainModule => tos,tsequtils
* Fix #14570 (#14571)Danil Yarantsev2020-06-062-1/+12
| | | | * Fix #14570
* refs #14545 fix snippet errors: avoid showing confusing errors when they are ↵Timothee Cour2020-06-051-3/+4
| | | | expected (#14569)
* fixes #14562Araq2020-06-051-1/+4
|
* Improve JSON serialisation of strtabs (#14549)PMunch2020-06-052-7/+30
| | | | This creates a more compact serialisation of strtabs that is more in line with the normal tables.
* tfdleak: fix flakyness on Windows (#14550)alaviss2020-06-042-4/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tfdleak_multiple: introduce stress tester for tfdleak Imported from #14548 and tweaked for consumption by testament. This test seems to be really good at bringing out the flakyness of tfdleadk. Co-authored-by: Timothee Cour <timothee.cour2@gmail.com> * tfdleak: increase accuracy of the test on Windows This commit implements a new testing strategy for Windows: 1. We duplicate the handle that will be tested and enable inheritance. This duplicate will serve as a reference handle. 2. In addition to checking whether the handle is valid, we also verify whether the handle is the same as the reference. This gives us complete certainty on whether the handle in question is inherited from the parent. A side effect is that this uses Windows 10+ APIs. But since this is just for the test, we don't have to be picky about it. Ideally we would want to do something like this for other POSIX-based system, but most of them lack a facility to do this, and as of writing there isn't any false positive for them, so we won't need the additional checks. MemFile.fHandle will also no longer be tested, as this handle defaults to being invalid. Co-authored-by: Timothee Cour <timothee.cour2@gmail.com>
* bug fixes with sfMainModule, hints, mainPackageNotes, mainPackageId, ↵Timothee Cour2020-06-048-25/+70
| | | | | | | hintSuccessX (#14555) * SuccessX `out` now works with --compileOnly and jsonscript; fix bugs in jsonscript * several bug fixes; eg: `nim doc lib/system/io` now is sane * dummy edit to force docs CI
* [cleanup] docgen: remove docOutdir now that outDir is always set (#14554)Timothee Cour2020-06-031-17/+7
|
* io: correct signature for some win32 apis (#14551)alaviss2020-06-031-5/+5
| | | See https://github.com/nim-lang/Nim/pull/14550#issuecomment-637937649
* * honor --errorMax even for tools (eg drnim, nim doc) (#14546)Timothee Cour2020-06-029-15/+22
| | | * fix a bug that prevented nim doc compiler/nim on windows
* fix https://github.com/timotheecour/Nim/issues/266 retry on failure to avoid ↵Timothee Cour2020-06-022-3/+36
| | | | common 503 github errors (#14547)
* Implement rendering of `[]=`, `{}`, `{}=` braces (#14539)cooldome2020-06-013-20/+71
| | | | | | | * render curly braces * fix typo * fix test Co-authored-by: cooldome <ariabushenko@bk.ru>