Commit Graph

267 Commits

Author SHA1 Message Date
Milos Gajdos
ec2fbde979
Limit the number of outbound connections to MaxConnections
This commit also fixes control channel shenanigans:
- recover error in control channel accept
2019-10-08 14:48:04 +01:00
Asim Aslam
94adeebed4 Use dns resolver on peer nodes 2019-10-08 09:25:23 +01:00
Asim Aslam
ad823d5177 Add dns net.LookupHost resolver! 2019-10-08 09:04:13 +01:00
Milos Gajdos
9d9683b6f9
Recover net channel Accept errors. Init tunnel nodes before Connect 2019-10-07 19:09:04 +01:00
Asim Aslam
3c6b6553fb Use peerAddress as the thing to listen on 2019-10-03 18:35:54 +01:00
Asim Aslam
2244eb8597 Advertise your peer address as advertised address 2019-10-03 17:37:29 +01:00
Asim Aslam
2370fb1209 Set gateway to node address rather than id 2019-10-02 15:52:31 +01:00
Asim Aslam
308424488b Hash the network address 2019-10-02 15:22:44 +01:00
Asim Aslam
b90871c241 Add Network.Services handler 2019-09-30 07:51:13 +01:00
Milos Gajdos
77f3e7ef48
Simplified table code. Fixed event dedup. 2019-09-26 11:56:30 +01:00
Asim Aslam
dfcedbab1e In case of non 200 response return error 2019-09-25 16:53:06 +01:00
Asim Aslam
ae40553bad only solicit the first time seeing a peer 2019-09-25 14:30:35 +01:00
Asim Aslam
f23c6d91ba Do not embed proxy/router/tunnel 2019-09-25 12:56:52 +01:00
Asim Aslam
d8dc713e2d Fix the http resolver to use micro.mu url 2019-09-23 17:50:53 +01:00
Asim Aslam
4260913b45 Set rpc methods as Network.Graph/Nodes/Routes 2019-09-23 15:41:05 +01:00
Asim Aslam
f13887f604 Only hash address if its a local route 2019-09-20 09:40:55 +01:00
Asim Aslam
66769e671f
Merge pull request #772 from micro/peers
Replace Nodes with Peers
2019-09-19 16:53:17 +01:00
Asim Aslam
7e05d2c440 Replace Nodes with Peers 2019-09-19 16:32:15 +01:00
Milos Gajdos
a38482ffcb
Remove data race; Unlock once done pruning/deleting 2019-09-19 11:53:13 +01:00
Asim Aslam
6222bc2a1e only set tunnel address if advertise is blank 2019-09-18 19:04:22 +01:00
Asim Aslam
05e62a2b95 allow setting advertise address 2019-09-18 18:56:02 +01:00
Milos Gajdos
38d6ffdf9a
Hash the service address before advertising it to the network. 2019-09-17 18:34:06 +01:00
Asim Aslam
e586763301
Merge pull request #761 from milosgajdos83/delete-peer-gw
Delete dead peer [gateway] routes
2019-09-17 16:54:35 +01:00
Milos Gajdos
3201b4cb36
Gateway is now set to node Id, hence we prune peer.id Gateway 2019-09-17 16:31:33 +01:00
Milos Gajdos
21dc7bcccf
Fix gateway addressing
- Set Gateway as node.ID when advertising
- Set server.Address as node.ID to listen on
- Set server.Advertise as node.Address
2019-09-17 16:11:02 +01:00
Asim Aslam
9147d378bc Set node address to tunnel address 2019-09-17 15:40:00 +01:00
Milos Gajdos
a72a2f717d
Prune stale nodes in the whole topology. 2019-09-16 19:22:55 +01:00
Milos Gajdos
2599ee8591
Prune routes routable via dead node. 2019-09-15 12:17:12 +01:00
Milos Gajdos
ccb6778f7f
Skip processing Advert which carries no events 2019-09-13 20:46:14 +01:00
Asim Aslam
b23ee58865
Update default.go 2019-09-13 11:55:53 -07:00
Milos Gajdos
323a72be34
Small refactoring; Split horizon loop break. 2019-09-13 18:46:24 +01:00
Milos Gajdos
d72e91fb38
Unlock on return from network.Connect 2019-09-13 03:31:58 +01:00
Milos Gajdos
b91c3147e7
Node API allows us to drop all network locks
Network locks are now needed only when accessing client map. node map
access is serialied with the node mutex.
2019-09-13 03:03:56 +01:00
Milos Gajdos
77c6c9781b
getProtoTopology has been replaced by PeersToProto
This helps us remove redundant code across node and handler
2019-09-13 03:03:56 +01:00
Milos Gajdos
fa4ff8921e
Removed redundant lock. Simplified proto topology 2019-09-13 03:03:56 +01:00
Milos Gajdos
d6be91e8af
Changed RPC methods. Changed Network interface.
* Nodes/Topology removed from public methods from Network interface
* Peers() returns max depth 3 topology
* handler.Topology rpc endpoint removed
* handler.Peers rpc endpoint accept "depth" param to return max depth peers
2019-09-13 03:03:56 +01:00
Milos Gajdos
588484c3bf
Fixed some races. Added more tests. 2019-09-13 03:03:56 +01:00
Milos Gajdos
d58eb51976
Code change to make Solicit router.proto message 2019-09-13 03:03:55 +01:00
Milos Gajdos
35cf2a5739
Make topology test more generic 2019-09-13 03:03:55 +01:00
Milos Gajdos
2dfbe93d65
Added more node tests. Small refactoring of Netowkr and handler. 2019-09-13 03:03:55 +01:00
Milos Gajdos
16fcf1fbda
Nodes, Peers and Topology methods for node
Topology accepts an argument to define the depth of the topology
requested from the network. proto definitions have been modified
accordingly, too.
2019-09-13 03:03:55 +01:00
Milos Gajdos
cbce5490d7
Lock the Nodes method properly when collecting them. 2019-09-13 03:03:55 +01:00
Milos Gajdos
4c709f7ac1
Write Lock() advert update: we are writing into peers map here 2019-09-13 03:03:55 +01:00
Milos Gajdos
baf4c05663
Send solicit message to ControlChannel 2019-09-13 03:03:55 +01:00
Milos Gajdos
195c6a8c90
Neighbour is now peer. Neighbourhood is Peers. Small refactor. 2019-09-13 03:03:54 +01:00
Milos Gajdos
f91d0408ab
Moved node implementation into dedicated source file 2019-09-13 03:03:54 +01:00
Milos Gajdos
eec780aaa7
Update neighbours when neighbour message is received 2019-09-13 03:03:54 +01:00
Milos Gajdos
f0a1031e97
Adding new peers up to given depth. Outline of node gaph Update 2019-09-13 03:03:54 +01:00
Asim Aslam
b5eea02f7a Move link to tunnel/ 2019-09-10 08:12:28 -07:00
Asim Aslam
e8aaca27d3 unlock before sending the message to avoid deadlock 2019-09-06 16:57:17 +01:00