btcd/connmgr
Javed Khan 8caa921ac3 server: Fix connections to onion nodes.
A DNS lookup was being attempted on onion addresses causing
connections to fail. This has been fixed by introducing type
onionAddr (which implements a net.Addr interface) and passing
it to btcdDial.

Also, the following onion related fixes have been made:

* getaddednodeinfo - updated to handle onion addrs.
* TorLookupIP - fixed err being shadowed.
* newServer - rename tcpAddr to netAddr
* addrStringToNetAddr - skip if host is already an IP addr.
* addrStringToNetAddr - err if tor is disabled
* getaddednodeinfo - check if host is already an IP addr.
2017-01-18 21:40:41 +05:30
..
connmanager_test.go connmgr: switch to using net.Addr interface throughout for addresses 2016-11-10 11:22:36 -08:00
connmanager.go connmgr: switch to using net.Addr interface throughout for addresses 2016-11-10 11:22:36 -08:00
doc.go connmgr: Refactor connection management into pkg 2016-10-22 01:11:57 -05:00
dynamicbanscore_test.go connmgr: Refactor connection management into pkg 2016-10-22 01:11:57 -05:00
dynamicbanscore.go connmgr: unexport the DynamicBanScore mutex. 2016-11-01 14:53:15 -05:00
log.go connmgr: Refactor connection management into pkg 2016-10-22 01:11:57 -05:00
README.md connmgr: Refactor connection management into pkg 2016-10-22 01:11:57 -05:00
seed.go wire: Treat NetAddress more like immutable 2016-12-06 20:48:02 +01:00
tor.go server: Fix connections to onion nodes. 2017-01-18 21:40:41 +05:30

connmgr

[Build Status] (https://travis-ci.org/btcsuite/btcd) ![ISC License] (http://img.shields.io/badge/license-ISC-blue.svg) [GoDoc] (http://godoc.org/github.com/btcsuite/btcd/connmgr)

Package connmgr implements a generic Bitcoin network connection manager.

Overview

Connection Manager handles all the general connection concerns such as maintaining a set number of outbound connections, sourcing peers, banning, limiting max connections, tor lookup, etc.

The package provides a generic connection manager which is able to accept connection requests from a source or a set of given addresses, dial them and notify the caller on connections. The main intended use is to initialize a pool of active connections and maintain them to remain connected to the P2P network.

In addition the connection manager provides the following utilities:

  • Notifications on connections or disconnections
  • Handle failures and retry new addresses from the source
  • Connect only to specified addresses
  • Permanent connections with increasing backoff retry timers
  • Disconnect or Remove an established connection

Installation and Updating

$ go get -u github.com/btcsuite/btcd/connmgr

License

Package connmgr is licensed under the copyfree ISC License.