nim-libp2p/libp2p
Dmitriy Ryajov 0959877b29
Connection limits (#384)
* master merge

* wip

* avoid deadlocks

* tcp limits

* expose client field in chronosstream

* limit incoming connections

* update with new listen api

* fix release

* don't override peerinfo in connection

* rework transport with accept

* use semaphore to track resource ussage

* rework with new transport accept api

* move events to conn manager (#373)

* use semaphore to track resource ussage

* merge master

* expose api to acquire conn slots

* don't fail expensive metrics

* allow tracking and updating connections

* set global connection limits to 80

* add per peer connection limits

* make sure conn is closed if tracking failed

* more descriptive naming for handle

* rework with new transport accept api

* add `getStream` hide `selectConn`

* add TransportClosedError

* make nil explicit

* don't make unnecessary copies of message

* logging

* error handling

* cleanup semaphore

* track connections properly

* throw `TooManyConnections` when tracking outgoing

* use proper exception and handle conventions

* check onCloseHandle for nil

* revert internalConnect changes

* adding upgraded flag

* await stream before closing

* simplify tracking

* wip

* logging

* split connection limits into incoming and outgoing

* further streamline connection limits split counts

* don't use closeWithEOF

* move peer and conn event triggers from switch

* wip

* wip

* wip

* merge master

* handle nil connections properly

* add clarifying comment

* don't raise exc on nil

* no finally

* add proper min/max connections logic

* rebase master

* merge master

* master merge

* remove request timeout

should be addressed in separate PR

* merge master

* share semaphore when in/out limits arent enforced

* merge master

* use import

* pass semaphore to trackConn

* don't close last conn

* use storeConn

* merge master

* use storeConn
2021-01-20 22:00:24 -06:00
..
crypto Rm bearssl + Deactivate Travis completely (#477) 2020-12-10 14:19:27 +01:00
daemon Rework transport to use chronos accept (#420) 2020-11-18 20:06:42 -06:00
muxers streamline socket read/write hot path (#473) 2020-12-09 08:56:40 -06:00
protobuf Add `libp2p_dump` and `libp2p_dump_dir` compiler time options. (#359) 2020-09-15 11:16:43 +02:00
protocols remove blank spaces 2021-01-18 15:32:42 -06:00
stream Connection limits (#384) 2021-01-20 22:00:24 -06:00
transports Concurrent upgrades (#489) 2021-01-04 12:59:05 -06:00
upgrademngrs Connection limits (#384) 2021-01-20 22:00:24 -06:00
utils Semaphore cancellations (#503) 2021-01-14 10:11:12 +01:00
cid.nim first pass, use results for Cid module (#480) 2020-12-15 14:19:18 +01:00
connmanager.nim Connection limits (#384) 2021-01-20 22:00:24 -06:00
debugutils.nim fix debugutils (#423) 2020-11-04 19:56:28 -06:00
errors.nim warn -> debug log levels in errors.nim 2020-08-20 16:53:28 +09:00
multiaddress.nim use stew/leb128 (#481) 2020-12-15 12:15:22 -06:00
multibase.nim add side effect annotations (#197) 2020-06-01 09:25:16 +02:00
multicodec.nim Crypto utilities resultification (#150) 2020-05-18 07:25:55 +02:00
multihash.nim add side effect annotations (#197) 2020-06-01 09:25:16 +02:00
multistream.nim adding libp2p tag to logScope (#465) 2020-12-01 11:34:27 -06:00
peerid.nim clean up peerid (#470) 2020-12-03 13:53:16 -06:00
peerinfo.nim simplify and unify logging (#353) 2020-09-06 10:31:47 +02:00
standard_setup.nim Connection limits (#384) 2021-01-20 22:00:24 -06:00
switch.nim Connection limits (#384) 2021-01-20 22:00:24 -06:00
transcoder.nim add side effect annotations (#197) 2020-06-01 09:25:16 +02:00
utility.nim add metrics into chronosstream to identify peers agents (#458) 2021-01-08 14:21:24 +09:00
varint.nim use stew/leb128 (#481) 2020-12-15 12:15:22 -06:00
vbuffer.nim use stew/leb128 (#481) 2020-12-15 12:15:22 -06:00
wire.nim Rework transport to use chronos accept (#420) 2020-11-18 20:06:42 -06:00