Commit Graph

879 Commits

Author SHA1 Message Date
Jeromy 90fa929051 make NewStream run FindPeer if no addresses found 2015-02-18 19:11:37 +00:00
Juan Batiz-Benet 01be69d391 routed host stash 2015-02-18 18:56:56 +00:00
Brian Tiger Chow 62d4f17057 misc: suppress logs to Debug (from Info) 2015-02-14 14:13:53 -08:00
Jeromy 9c83bd0959 fix for #757 2015-02-13 07:47:51 +00:00
Juan Batiz-Benet d2544da530 p2p/net/conn: respect context on dialing
We were half-way with this. there's no way for net.Dialers
to respect contexts, so we have to let the dial finish in
the background.
2015-02-11 09:12:15 -08:00
Juan Batiz-Benet 46b21cf5be ctx.Done fixes
thanks @whyrusleeping for finding these.
2015-02-09 23:18:23 -08:00
Juan Batiz-Benet 8a81975ce8 ratelimiter: fixing rate limiter use
Use of the ratelimiter should be conscious of the ratelimiter's
potential closing. any loops that add work to ratelimiter
should (a) only do so if the rate limiter is not closed,
or (b) prevent limiter while work is added
(i.e. use limiter.Go(addWorkHere))
2015-02-06 10:59:03 -08:00
Juan Batiz-Benet 381e99a375 p2p/protocol/identity: smarter tracking observed addrs
- time them out (already was doing that with addrbook)
- keep count to counter symmetric nats
2015-02-05 10:15:16 -08:00
Juan Batiz-Benet e13ad02f04 test/mocknet: this test fails on CI sometimes 2015-02-03 08:02:25 -08:00
Juan Batiz-Benet 72b70417a7 cmds/swarm connect had broken 2015-02-03 05:51:31 -08:00
Juan Batiz-Benet 3afbc9d8d9 logs: removed all log.Errors unhelpful to users
Let's save log.Error for things the user can take action on.
Moved all our diagnostics to log.Debug. We can ideally reduce them
even further.
2015-02-03 01:06:07 -08:00
Juan Batiz-Benet e3e91a4d24 p2p/crypto/secio: dont bother user with mac errs. 2015-02-02 21:05:33 -08:00
Juan Batiz-Benet 46877f3f44 p2p/protocol/id: log version mismatch disconnects 2015-02-02 21:05:33 -08:00
Juan Batiz-Benet 884699e1e7 p2p/protocol/id: break on version mismatch.
TODOs:
- need to consolidate all the versioning stuff into one package
- need to do the version check as a handshake, before further
  communication happens. we used to do this.
2015-02-02 21:05:32 -08:00
Juan Batiz-Benet 8b419c5de4 p2p/net/swarm: permute addrs in rate limited dials
so that we dont get stuck dialing bad addrs first always.
2015-02-02 21:04:14 -08:00
Juan Batiz-Benet 51709847e6 p2p/net/swarm: rate limit dials. max of 10 addrs at a time.
This will mitigate the fd explosion, but slow down dials majorly
as any peer with more addresses than the rate limit will have
to wait a whole dial timeout (~15s)
2015-02-02 21:04:14 -08:00
Juan Batiz-Benet 0f4e8fb460 AddrManager: use addr manager with smarter TTLs
This addr manager should seriously help with the addrsplosion
problem.
2015-02-02 21:04:14 -08:00
Juan Batiz-Benet 5c3146fd84 p2p/peer/addr: manager with expirations 2015-02-02 21:04:13 -08:00
Juan Batiz-Benet eb99330909 log(secio): session loggable for event 2015-02-01 22:08:48 -08:00
Juan Batiz-Benet 6451bf2067 p2p/net/conn: log conn lifetime event 2015-02-01 22:08:48 -08:00
Brian Tiger Chow 9d4243027a doc(p2p/mux) rm stale comment 2015-02-01 21:54:20 -08:00
Brian Tiger Chow 71877e0142 fix(mux) hold lock when reading default handler field 2015-02-01 21:49:39 -08:00
Juan Batiz-Benet 6b1de9b801 p2p/conn: expose io.Closer interface 2015-02-01 06:35:48 -08:00
Juan Batiz-Benet 6e598fdfbf p2p/host: nat manager
this commit moves management of the nat to its own object.
perhaps this can be general enough to work with any host
(not just BasicHost), but for now keeping here.

the nat manager:
- discovers and sets up the nat asynchronously.
- adds any port mappings necessary if/after nat has been found.
- listens to the network Listen() changes, adding/closing mappings
2015-01-30 20:37:53 -08:00
Juan Batiz-Benet e16d7d2c37 p2p/nat: make nat mappings closable by client
After this commit, client can close individual mappings (without
closing the whole NAT)
2015-01-30 20:37:53 -08:00
Juan Batiz-Benet 93655b428c p2p/net: notify on listens
Network now signals when it successfully listens on some address
or when an address shuts down. This will be used to establish and
close nat port mappings. It could also be used to notify peers
of address changes.
2015-01-30 20:37:52 -08:00
Brian Tiger Chow 320d060948 log(secio) rm handshake console log (still has event log) 2015-01-30 06:57:41 -08:00
Brian Tiger Chow 3d43649d83 Merge pull request #699 from jbenet/net-set-listener
p2p/net: network interface Listen func
2015-01-30 06:52:14 -08:00
Juan Batiz-Benet bfe998f3e1 p2p/net: network interface Listen func
network interface now allows setting Listeners after the fact.
This is useful to create the network and start listening as
separate steps. And to keep the network up to date on new
addresses the node might have to listen to.
2015-01-30 06:51:29 -08:00
Juan Batiz-Benet f97f60a39c p2p/net: network interface Listen func
network interface now allows setting Listeners after the fact.
This is useful to create the network and start listening as
separate steps. And to keep the network up to date on new
addresses the node might have to listen to.
2015-01-30 04:13:02 -08:00
Jeromy 704625bceb fix nil pointer panic on version strings in ID message 2015-01-29 23:07:32 +00:00
Juan Batiz-Benet 39e858b0e9 swarm: TestSimultOpenMany has problems in CI.
dialing 4000 connections somehow keeps choking both travis and
jenkins. dialing this down to 500
2015-01-29 01:25:54 -08:00
Juan Batiz-Benet bb57cf7795 p2p/net/swarm: fix TestDialBackoff
- attempts set to 1 now.
- timeouts must account for that.
2015-01-28 15:49:54 -08:00
Juan Batiz-Benet 9316957122 Merge pull request #676 from jbenet/dial-events
p2p/net: dial log -> events
2015-01-28 02:25:56 -08:00
Juan Batiz-Benet 837fca7bd4 p2p/net: cleaned up dial events
+ fixed race
2015-01-28 02:15:32 -08:00
Juan Batiz-Benet 96cad1347f p2p/net: better dial log.Event 2015-01-28 00:13:42 -08:00
Brian Tiger Chow 9510082ee2 remove message 2015-01-27 16:24:36 -08:00
Juan Batiz-Benet d53edf1763 p2p/net: dial log -> events
This commit turns all dial logs into log.Events.

Everything's great except for one problem:
The LoggableMap I'm using does not print out things
correctly. I gave it peer.IDs, and Multiaddrs
and both got logged as nothing `{}` (didn't even call
their String() methods!) So, for now, this function
encodes it when called... This is wrong and should be
fixed before being merged in. Otherwise we  will be
constantly encoding peer.IDs and Multiaddrs without
needing to.

@briantigerchow how do you suggest doing this?
I don't know my way around your Loggable.
2015-01-27 01:35:37 -08:00
Juan Batiz-Benet 9316acfaf7 p2p/peer/peerstore: mu position + comment 2015-01-26 22:47:44 -08:00
Juan Batiz-Benet 50c72a6765 p2p/peer/addr: addrbook RLock fix 2015-01-26 22:01:26 -08:00
Juan Batiz-Benet 8ae932da44 p2p/peer: addresses expire after an hour 2015-01-26 19:23:42 -08:00
Juan Batiz-Benet 77a9168a18 p2p/id: SET listen addrs, clearing old ones. 2015-01-26 19:23:42 -08:00
Juan Batiz-Benet c7c0445ba1 p2p/peer: addressbook can now clear addrs 2015-01-26 19:23:42 -08:00
Juan Batiz-Benet e598cf2b77 dropped down log.Errors 2015-01-26 19:13:44 -08:00
Juan Batiz-Benet ae0386cfba user friendliness in logs + output 2015-01-26 17:01:00 -08:00
Juan Batiz-Benet 44fe2f0709 p2p/host: doc options 2015-01-26 15:02:32 -08:00
Juan Batiz-Benet d7a5d2ecd2 p2p: own addresses gotten from host 2015-01-26 14:00:00 -08:00
Juan Batiz-Benet 8a2f08f32e p2p/net/conn: reuse timeout is real error
should be returning false.
2015-01-26 14:00:00 -08:00
Juan Batiz-Benet 3b5d1164c8 p2p/nat: managed by host now.
Exposing the NAT to the core is unnecessary. The Host can take
care of it. If a need emerges, we can address it then.
2015-01-26 14:00:00 -08:00
Juan Batiz-Benet afaddf4c8b p2p/nat: re-factors nat object
- allow retrieving addresses
- allow notifications on mapping changes
- allow lifecycle mgmt (future commit will manage it)
2015-01-26 13:45:02 -08:00