Nim/lib/pure
Ruslan Mustakov ecf278c467 Implement dial, support IPv6 in httpclient (#5763)
* Implement dial, support IPv6 in httpclient

Added ``dial`` procedure to networking modules: ``net``, ``asyncdispatch``,
``asyncnet``. It merges socket creation, address resolution, and connection
into single step. When using ``dial``, you don't have to worry about
IPv4 vs IPv6 problem.

Fixed addrInfo loop in connect to behave properly.
Previously it would stop on first non-immediate failure, instead of
continuing and trying the remaining addresses.

Fixed newAsyncNativeSocket to raise proper error if socket creation
fails.

Fixes: #3811

* Check domain during connect() only on non-Windows

This is how it was in the previous implementation of connect().

* Call 'osLastError' before 'close' in net.dial

* Record osLastError before freeAddrInfo in net.dial

* Add missing docs for 'dial' proc

* Optimize dial to create one FD per domain, add tests

And make async IPv6 servers work on Windows.

* Add IPv6 test to uri module

* Fix getAddrString error handling
2017-05-02 09:25:50 +02:00
..
collections Minor: spelling correction in tables.nim (#5727) 2017-04-19 00:35:44 +02:00
concurrency support for the Genode OS framework (#5560) 2017-03-31 23:13:06 +02:00
includes Implement dial, support IPv6 in httpclient (#5763) 2017-05-02 09:25:50 +02:00
ioselects Fixes to support Dragonfly BSD. (#5552) 2017-03-17 08:22:11 +01:00
unidecode lib: Trim .nim files trailing whitespace 2015-09-04 23:03:56 +02:00
algorithm.nim fixes #5625 2017-03-29 09:05:45 +02:00
asyncdispatch.nim Implement dial, support IPv6 in httpclient (#5763) 2017-05-02 09:25:50 +02:00
asyncdispatch.nim.cfg Rename *.nimrod.cfg to *.nim.cfg 2015-02-03 09:04:24 +01:00
asyncfile.nim Posix from detect (#5697) 2017-04-12 23:10:54 +02:00
asyncftpclient.nim Merge branch 'asyncftp-add-removeDir' of https://github.com/pyloor/Nim into pyloor-asyncftp-add-removeDir 2016-09-25 13:11:02 +02:00
asynchttpserver.nim fixes #3847 (#5609) 2017-03-27 09:39:46 +02:00
asyncmacro.nim Fixes the order in which FutureVar and return completions are made. 2017-03-27 21:11:48 +02:00
asyncnet.nim Implement dial, support IPv6 in httpclient (#5763) 2017-05-02 09:25:50 +02:00
base64.nim Small base64.nim refactor (#5755) 2017-04-25 20:47:26 +02:00
basic2d.nim docgen fixes for basic2d 2016-09-26 19:26:39 +02:00
basic3d.nim docgen fixes for basic3d 2016-09-26 19:26:39 +02:00
bitops.nim add bitops module for optimized bit manipulation. (#5201) 2017-03-14 21:32:54 +01:00
browsers.nim Fix a few more warnings 2015-02-17 02:22:30 +01:00
cgi.nim udpated the compiler and tester to use getOrDefault 2015-10-13 14:10:33 +02:00
colors.nim nimrod -> nim 2016-02-05 19:11:43 +01:00
complex.nim lib: Trim .nim files trailing whitespace 2015-09-04 23:03:56 +02:00
cookies.nim Merge pull request #5720 from FedericoCeratto/patch-27 2017-04-17 14:33:15 +02:00
coro.nim Fix waiting on coroutines (#5463) 2017-03-02 14:53:50 +01:00
coro.nimcfg fix test failure in coro.nim 2015-10-01 12:05:45 -07:00
db_common.nim Fixes docgen for lib/pure/db_common.nim. 2016-01-05 15:56:13 +00:00
distros.nim distros.nim: brew usually doesn't require 'sudo' 2017-02-16 22:53:32 +01:00
dynlib.nim Fixed dynlink with OpenSSL >1.1.0. Added loadLibPattern. 2016-11-30 17:16:54 +02:00
encodings.nim Fix iconv import on freebsd and netbsd (#5490) 2017-03-07 09:56:16 +01:00
endians.nim optimize byte-swapping in endians.nim 2017-01-05 15:13:57 +01:00
events.nim makes tests green 2016-01-15 14:44:54 +01:00
fenv.nim Fix fenv.fpRadix 2015-03-24 03:36:34 +01:00
future.nim Added a dump macro for debugging 2016-09-22 12:07:36 +02:00
gentabs.nim Added missing modules to lib.txt and warnings to some module's docs. 2016-01-18 15:33:39 +00:00
hashes.nim remove en-dash from the language 2017-04-02 23:41:29 +02:00
htmlgen.nim get rid of immediate macros in htmlgen module 2017-01-06 22:54:25 +01:00
htmlparser.nim htmlparser: different error corrections 2016-11-07 18:58:39 +01:00
httpclient.nim Implement dial, support IPv6 in httpclient (#5763) 2017-05-02 09:25:50 +02:00
httpcore.nim fixes #3847 (#5609) 2017-03-27 09:39:46 +02:00
httpserver.nim Added missing modules to lib.txt and warnings to some module's docs. 2016-01-18 15:33:39 +00:00
ioselectors.nim Fixes to support Dragonfly BSD. (#5552) 2017-03-17 08:22:11 +01:00
json.nim Small grammar fixes in json.nim (#5758) 2017-04-26 20:29:53 +02:00
lexbase.nim Lexbase compatible with JS 2016-01-06 16:38:27 +02:00
logging.nim Fix console logger issue; fixes #5546 (#5547) 2017-03-16 20:25:53 +01:00
marshal.nim Add marshal format warning 2016-11-19 18:52:28 +00:00
matchers.nim Deprecated matchers module. Fixes #2446. 2016-04-04 20:22:22 +01:00
math.nim bcc misses the same functions like vcc 2016-12-28 17:34:14 +01:00
md5.nim docs now build again 2015-10-12 20:58:46 +02:00
memfiles.nim Fixes incorrect fd==0 test on Unix; Conserves handles by default. (#5512) 2017-03-12 20:45:10 +01:00
mersenne.nim Fixed Mersenne Twister (#5227) 2017-01-16 13:35:43 +01:00
mimetypes.nim udpated the compiler and tester to use getOrDefault 2015-10-13 14:10:33 +02:00
nativesockets.nim Implement dial, support IPv6 in httpclient (#5763) 2017-05-02 09:25:50 +02:00
net.nim Implement dial, support IPv6 in httpclient (#5763) 2017-05-02 09:25:50 +02:00
nimprof.nim Enable embedded profiler to display filenames. 2016-08-02 19:19:31 +07:00
nimprof.nim.cfg Rename *.nimrod.cfg to *.nim.cfg 2015-02-03 09:04:24 +01:00
nimtracker.nim make memory tracker work without onThreadCreation 2017-03-14 15:45:35 +01:00
numeric.nim Added missing modules to lib.txt and warnings to some module's docs. 2016-01-18 15:33:39 +00:00
oids.nim fix redundant time import with different signature (#5715) 2017-04-16 22:50:10 +02:00
options.nim Fix options module to use new import name 2015-11-23 16:30:18 +01:00
os.nim Posix from detect (#5697) 2017-04-12 23:10:54 +02:00
ospaths.nim Fix typo (#5501) 2017-03-10 16:18:56 +01:00
osproc.nim WIFSIGNALED means process has exited too (with a bang!) (#5678) 2017-04-27 21:39:32 +02:00
oswalkdir.nim Add copyright header 2016-07-21 08:53:10 +01:00
parsecfg.nim parsecfg: handle streams and strings when saving or loading configuration (#5554) 2017-04-06 08:10:08 +02:00
parsecsv.nim Improvements to parsecsv to include a minimalist DictReader #4285 2016-06-12 07:28:07 +01:00
parseopt.nim docs now build again 2015-10-12 20:58:46 +02:00
parseopt2.nim Prevent Exported C procedure collisions 2015-11-11 15:18:13 -05:00
parsesql.nim lib: Trim .nim files trailing whitespace 2015-09-04 23:03:56 +02:00
parseutils.nim Added BiggestUInt (#5378) 2017-02-13 11:20:07 +01:00
parsexml.nim htmlparser: support parsing of class=foobar without quotes 2016-11-05 15:27:47 +01:00
pegs.nim Fix modules that import both strutils and unicode 2016-07-01 07:37:49 -06:00
poly.nim Spellcheck 2016-02-29 11:25:51 +00:00
punycode.nim Add copyright header 2016-07-21 08:52:39 +01:00
random.nim fixes #5430 2017-02-26 00:32:07 +01:00
rationals.nim made test green for 32bit system 2016-09-30 22:14:29 +02:00
romans.nim Added missing modules to lib.txt and warnings to some module's docs. 2016-01-18 15:33:39 +00:00
ropes.nim Make ropes usable in VM context 2016-03-10 19:13:40 +06:00
scgi.nim udpated the compiler and tester to use getOrDefault 2015-10-13 14:10:33 +02:00
securehash.nim use a full MD5 hash with no collision detection for proc names 2016-11-08 08:37:15 +01:00
segfaults.nim fixes #5599 (#5610) 2017-03-26 09:30:59 +02:00
selectors.nim docgen fixes for selectors.nim 2016-09-26 19:26:39 +02:00
smtp.nim SMTP sync/async deduplication 2017-03-07 12:10:18 -06:00
smtp.nim.cfg Rename *.nimrod.cfg to *.nim.cfg 2015-02-03 09:04:24 +01:00
stats.nim made test green for 32bit system 2016-09-30 22:14:29 +02:00
streams.nim disable StringStream for JS (needs copyMem) 2016-06-08 22:00:13 +08:00
strmisc.nim moved expandTabs to strmisc 2016-06-15 17:15:27 +02:00
strscans.nim documentation for strscans.scanp; fixes #5154 2017-02-26 23:25:50 +01:00
strtabs.nim added default param to strtabs.getOrDefault (#5280) 2017-01-26 10:34:02 +01:00
strutils.nim strutils.nim: make removeSuffix robust on empty strings 2017-03-18 10:42:11 +01:00
subexes.nim documentation build cleaned up 2016-05-31 03:04:45 +02:00
terminal.nim tiny docstring fix; fixes #5483 (#5484) 2017-03-05 10:44:25 +01:00
times.nim Linux abi take 3 (#5692) 2017-04-12 22:57:10 +02:00
typetraits.nim use lower-case proc names 2017-03-24 17:03:55 +02:00
unicode.nim system/unicode: check for buffer overflows; refs #5284 2017-02-08 15:22:36 +01:00
unittest.nim Reduce the scope of stackTrace var (#5583) 2017-03-22 01:06:05 +01:00
uri.nim Implement dial, support IPv6 in httpclient (#5763) 2017-05-02 09:25:50 +02:00
volatile.nim Add volatile load/store (#5263) 2017-01-25 20:02:19 +01:00
xmldom.nim Define getAttributes(NS) on PNode instead of PElement. 2016-12-28 18:26:25 +01:00
xmldomparser.nim lib: Trim .nim files trailing whitespace 2015-09-04 23:03:56 +02:00
xmlparser.nim fixes #1518 2016-10-20 23:44:55 +02:00
xmltree.nim Clean up (as suggested by @Araq) 2016-12-01 09:14:14 +07:00