Commit graph

93 commits

Author SHA1 Message Date
Federico Ceratto
d8ff25f032 Provide access to getsockname()/getpeername()
Port of #3323 with added tests
2019-02-17 17:04:57 +00:00
Dominik Picheta
76c214a2e9
Merge pull request #9915 from zevv/asyncnet-unix
Added basic AF_UNIX support to asyncnet.
2018-12-12 23:06:08 +00:00
Ico Doornekamp
71e9fff364 Added basic AF_UNIX support to asyncnet.
Unfortunately this required some code duplication because the
doConnect() from asynccommon.nim only works with addrInfo which does not
make sense for AF_UNIX.

makeUnixAddr() was moved to nativesocket.nim and exported
2018-12-09 20:53:05 +01:00
Yuriy Glukhov
410fd1deae Fixes 9716 [backport] (#9790)
* reuse temporary variable
* fixes #9716 [backport]
* Declare local vars in safer place
2018-11-24 10:50:48 +01:00
Andreas Rumpf
223e92b83a stdlib: documenation updates, the exception names have been changed 2018-10-25 07:42:45 +02:00
Andreas Rumpf
dae5450947 WIP: disallow 'nil' for strings and seqs 2018-08-13 11:41:33 +02:00
Araq
b07d1f1dc3 make async tests green for Linux 2018-08-08 16:18:30 +02:00
Araq
bbb0fd4eb7 remove deprecated stuff from the stdlib; introduce better deprecation warnings 2018-05-05 21:45:07 +02:00
Andreas Rumpf
f0eb3505fa make asyncnet work again 2018-04-30 02:00:17 +02:00
Dominik Picheta
1a2351f95f Fixes #4995. (#7157) 2018-02-13 11:08:37 +01:00
Dominik Picheta
86fb8bf723 Revert 3db460f504 as requested by @Araq. 2018-01-28 17:13:08 +00:00
Dominik Picheta
47d05b3f2e Merge branch 'devel' into async-improvements 2018-01-17 16:28:00 +00:00
Dominik Picheta
1661062ebf Raise assertion error when attempting to use closed socket. 2018-01-15 17:48:32 +00:00
Dominik Picheta
66d7091b79 setBlocking(false) is called on AsyncFD in newAsyncSocket proc. 2017-11-24 16:27:43 +00:00
Arne Döring
000b8afd26 Remove expr/stmt (#5857) 2017-07-25 09:28:23 +02:00
Euan Torano
3f3853945d Adding test for recvline
Signed-off-by: Euan Torano <euantorano@gmail.com>
2017-07-09 20:50:47 +01:00
Euan T
a5681d03e3 Wait for reads to finish before reading the result
As requested by @dom96, this fixes an issue seen here: https://github.com/nim-lang/redis/pull/4#issuecomment-312713921
2017-07-03 20:13:25 +01:00
Ruslan Mustakov
e0059287bb Add 'hostname' param to wrapConnectedSocket 2017-05-04 16:27:08 +07:00
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
Andreas Rumpf
159643824b fixes #3847 (#5609) 2017-03-27 09:39:46 +02:00
Dominik Picheta
0535b6b6bf Implement SSL SNI hostname setting for asyncnet. 2017-02-08 00:04:40 +01:00
Andreas Rumpf
76eb20d2d3 deprecated nativesockets.dealloc, use freeAddrInfo instead; fixed stdlib deprecations 2017-01-30 08:50:57 +01:00
Dominik Picheta
864946afb8 Add async IO overview to asyncnet module docs. 2017-01-06 12:43:37 +00:00
Federico Ceratto
a8c439afb5 Add OptReuseAddr to example and handle closing 2017-01-02 17:02:20 +00:00
Dominik Picheta
df44c71770 Fixes #4587. 2016-09-25 19:26:28 +02:00
Dominik Picheta
8a6343b5b6 Fixes #3847. 2016-09-25 13:02:10 +02:00
cheatfate
1350d5312b Removed tests with asyncio.
Fix ssl connection drop in asyncnet
Add tasyncssl test
2016-09-07 12:19:06 +03:00
Dominik Picheta
87eb3a105d Some small fixes to changes introduced by #4683. 2016-09-06 20:35:02 +02:00
Anatoly Galiulin
60dbfb2ec9 Revert function names scheme due to the @dom96 comment 2016-09-06 09:31:13 +07:00
Anatoly Galiulin
436a5a01ab Fix typo 2016-09-06 09:31:13 +07:00
Anatoly Galiulin
e4c46e6fba Add async IO operations with buffers on files and sockets 2016-09-06 09:31:13 +07:00
Dominik Picheta
f73dd02787 Fix broken asyncnet module. 2016-06-03 14:21:37 +01:00
Dominik Picheta
8050f43588 Fixed some warnings in httpclient, net, and openssl. 2016-04-04 21:28:21 +01:00
Dominik Picheta
03be03c6e4 Improved asyncnet docs (SSL procs now shown). Deprecated handshake. 2016-04-04 21:00:43 +01:00
Adam Strzelecki
be991ed413 Rename rawsockets module to nativesockets
This change was done to avoid confusion with TCP/IP raw sockets. Native sockets
module represents handling native system low level socket API in general and is
not just limited anyhow to TCP/IP raw sockets.

A stub lib/deprecated/pure/rawsockets.nim module has been added as
compatibility layer for old code using rawsockets, so this change will not
break existing code.
2015-10-03 19:45:41 +02:00
Dominik Picheta
492f5eb704 Fixes asyncnet.recvLine. Fixes #3346. 2015-09-19 14:01:45 +01:00
Dominik Picheta
28e3ad945a Reintroduce FutureVar[T] from commit 72b4912c84. 2015-09-11 13:03:59 +01:00
Bruce Doan
55ef708e73 Free SSL handler to avoid memory leaks 2015-07-31 01:24:35 +07:00
Dominik Picheta
615defb1a9 Fixes socket problems on Windows and normalises some names.
Ref #2976. Ref #2003. See news.txt for details.
2015-06-29 20:11:21 +01:00
Andrew Yourtchenko
c42b08988c Make newAsyncSocket AF_INET6 the default domain. 2015-06-23 23:03:35 +02:00
Andrew Yourtchenko
93e2d9f979 Make asyncnet.bindAddr IPv4+IPv6 compatible. 2015-06-23 23:02:10 +02:00
Dominik Picheta
68f583ddb7 Adjustments to #2610. 2015-06-22 21:40:38 +01:00
Dominik Picheta
8853dfb353 Merge branch 'starttls' of https://github.com/wiml/Nim into wiml-starttls
Conflicts:
	lib/pure/net.nim
2015-06-22 21:34:21 +01:00
Dominik Picheta
c5708ef1ee Merge branch 'exportnewsocket' of https://github.com/boopcat/Nim into boopcat-exportnewsocket
Conflicts:
	lib/pure/asyncnet.nim
2015-06-05 15:06:02 +01:00
pdw
192ba3bbc0 lib/pure/a-c - Dropped 'T' from types 2015-06-04 13:17:11 +02:00
boopcat
af07db2829 Export newSocket(fd) from net.nim and standardize args in net/asyncnet
Exporting newSocket(fd) mimics what asyncnet does and lets you pass in your
 own socket FD.
newSocket*(fd) and newAsyncSocket*(fd) now both take "buffered" instead of
 "isBuff" and defaults to true to match the other constructors on both.
2015-05-30 11:01:15 +00:00
Wim Lewis
df1cdced1d Make the post-connection wrapSocket() call available in both the synchronous and asynchrinous net modules. 2015-04-26 22:10:35 -07:00
def
1b7cf0e3f3 Add warning about recvLineInto being bound to change 2015-04-26 17:06:41 +02:00
def
84315c6a9c Revert "Introduce FutureVar[T] to make recvLineInto safer."
This reverts commit 72b4912c84.
2015-04-26 17:01:04 +02:00
Dominik Picheta
f4c1c252a7 Fix asyncdispatch on Windows. 2015-04-24 18:12:13 +01:00