Commit Graph
7356 Commits
Author SHA1 Message Date
Matthias Radestock 3e1d96995a cosmetic 2014-12-29 12:01:29 +00:00
Matthias Radestock 7cfb79cfc1 close connection when failing to decrypt packets
Since we may never recover from that if nonces got out of sync.

Closes #274.
2014-12-28 19:52:56 +00:00
Matthias Radestock f792bf7ef8 don't log packet on decryption error
since that is expensive and clutters the logs
2014-12-28 19:09:41 +00:00
Matthias Radestock 4242a60768 use documented 'docker inspect --format=...' instead of '--format ...' 2014-12-28 00:11:03 +00:00
Matthias Radestock f3faf83321 refuse to attach containers running in the host network namespace
Since bad things happen otherwise, i.e. we end up creating veth pairs
with an ethwe on the host

Closes #270.
2014-12-27 15:14:29 +00:00
Matthias Radestock 73bbb95f7f refactor: move LocalPeer code into separate file 2014-12-25 14:05:41 +00:00
Matthias Radestock f304543ddf refactor: move definition of Peer and related types 2014-12-25 14:02:53 +00:00
Matthias Radestock 7a026f5a14 cosmetic: move a method 2014-12-25 13:57:49 +00:00
Matthias Radestock 5e6bb8ee67 cosmetic: more logical field order 2014-12-25 13:57:31 +00:00
Matthias Radestock 75ed7d52b9 refactor: give Peers knowledge of Ourself.Peer and MacCache
so their use (when applying updates and performing gc) is opaque
2014-12-25 13:49:58 +00:00
Matthias Radestock af59b38134 refactor: Peers no longer has dependency on Router
or ConnectionMaker
2014-12-25 13:33:45 +00:00
Matthias Radestock 6f990d217d refactor: fewer references to Router 2014-12-25 13:12:42 +00:00
Matthias Radestock 3ba5a5024e refactor: Peer no longer needs Router
Hooray!
2014-12-25 13:05:22 +00:00
Matthias Radestock 465915d7d4 refactor: split out LocalPeer
This has been a source of confusion for a long time.
2014-12-25 12:57:45 +00:00
Matthias Radestock 059360416a gofmt 2014-12-25 11:27:42 +00:00
rade c367914984 Merge pull request #299 from viirya/fix_doc_link
Minor fix of document link
2014-12-25 08:49:20 +00:00
Liang-Chi Hsieh d557f2ff31 Fix document link. 2014-12-25 16:25:19 +08:00
Matthias Radestock da8e9fd0eb refactor: further reduce dependency on router 2014-12-24 20:43:35 +00:00
Matthias Radestock 2d4baa8dba refactor: reduce dependency on peer.Router
now the only code depending on it is Peer itself
2014-12-24 20:12:48 +00:00
Matthias Radestock 945a5cf7fe refactor: reduce dependencies of ConnectionMaker
it doesn't need to know about Router, just Ourself and Peers
2014-12-24 19:53:11 +00:00
Matthias Radestock 71cd83bf20 refactor: move ConnectionMaker and related types 2014-12-24 19:46:12 +00:00
Matthias Radestock 03b338a252 remove cruft 2014-12-24 19:42:49 +00:00
Matthias Radestock b3be24248e refactor: narrow dependencies of Routes
it doesn't need to know about the Router, just Ourself and Peers.
2014-12-24 19:40:18 +00:00
Matthias Radestock 2b2f47c031 refactor: rename PeerCache to Peers
It was never much of a cache, and that aspect of it is certainly not
its defining characteristic.
2014-12-24 19:23:43 +00:00
Matthias Radestock e8f836ad85 refactor: rename 'Topology' to 'Routes'
Since that is what it is. By contrast, when the docs talk about
topology they actually refer to the peer connectivity graph.
2014-12-24 19:12:01 +00:00
Matthias Radestock fc1ec6ada2 refactor: go straight to PeerCache for fetching topology
There is no need to go via Topology. Fetching does not access or
modify the Topology state, and none of the functions on Topology
update the PeerCache. So there is no point serialising the fetching
with RebuildRoutes (or anything else).

This does mean the connections' receiveTCP goroutines will take a
direct lock on PeerCache, but a) it is only a read lock, and b) they
already take a write lock in another code path.

There may be some extra load on the PeerCache as a result of this
change, due to the topology fetching of multiple connections no longer
being funneled through the single Topology goroutine. Consequently,
write locks on the PeerCache may take a little longer to
acquire. Until we encounter this as a genuine problem though it's
better to stick with the simpler code.
2014-12-24 18:34:59 +00:00
Matthias Radestock aa5fc62184 remove cruft 2014-12-24 16:06:31 +00:00
Bryan Boreham 47f4933c92 Merge pull request #295 from rade/eliminate_heartbeater
LGTM.  Fixes #294
2014-12-24 13:41:03 +00:00
Matthias Radestock 1c5d720db4 simplify some more 2014-12-24 13:38:17 +00:00
Matthias Radestock fecbf220cc simplify 2014-12-24 13:35:51 +00:00
Matthias Radestock 9cd652ef0b refactor: introduce small helper 2014-12-24 13:29:13 +00:00
Michael Bridgen f842b22eb8 Do better with checking the changelog
Before, this could fail without a message if there was a changelog but
no matching line.

Also change the changelog format
      == Release v0.0.1
to
      == Release 0.0.1
2014-12-24 12:44:19 +00:00
Michael Bridgen 8b783af832 Quote all echoings and be consistent about the message prefix 2014-12-24 12:04:53 +00:00
Michael Bridgen 0a14eb58b2 Don't hardwire executable names; use logical names instead
We could use `os.Args[0]` instead of hardwired names, but that ends up
being e.g. `/home/weave/weaver`. So, use logical names instead.
2014-12-24 11:52:50 +00:00
Michael Bridgen b0b7649c8e Switch to proper github and dockerhub repo 2014-12-24 11:04:52 +00:00
Michael Bridgen b014d98c78 Put versions in the script and weavedns too, and report them
sudo weave version
2014-12-24 11:04:52 +00:00
Michael Bridgen 0348767d73 prepare -> build to better avoid mistakes 2014-12-24 11:04:52 +00:00
Michael Bridgen ef82e81c3f Push tagged images to docker 2014-12-24 11:04:52 +00:00
Michael Bridgen 801ca43fbf Better (working) way of checking for a release 2014-12-24 11:04:52 +00:00
Michael Bridgen ab4aa21cca Up to the point of making a git release
(under my own account for the minute)
2014-12-24 11:04:52 +00:00
Michael Bridgen ccf7e9993a Add version reporting to weaver 2014-12-24 11:04:51 +00:00
Michael Bridgen bfc9df4d25 Skeleton of a release script 2014-12-24 11:04:51 +00:00
Matthias Radestock 99c1163862 fmt 2014-12-24 10:54:38 +00:00
Matthias Radestock 108e468ada Merge branch 'master' into eliminate_heartbeater
Conflicts:
	router/connection.go
2014-12-24 10:48:39 +00:00
Matthias Radestock 5ccc753367 kill stale connections
The weave protocol already effectively performs heartbeating -
FetchAll is performed at regular intervals. Hence we can detect stale
connections by the lack of receiving any data for approximately that
interval (we use x2).

We use the same interval to set a time limit on the handshake too, and
any subsequent interactions prior to the connection being fully
established.

Fixes #272.
2014-12-24 10:33:37 +00:00
Matthias Radestock 3c50909a49 nodelay is the default, according to the docs 2014-12-24 09:09:00 +00:00
Matthias Radestock e850127ed4 git rid of heartbeater goroutine
...by moving the logic into the connection actor goroutine.

The heartbeater goroutine was doing a lot more than just heartbeating;
namely it also had tickers for triggering a ProtocolFetchAll and
initiating a fragmentation test. Furhermore, ensureHeartbeats also
spawned the forwarders.

So this was quite a mix of functionality, and, furthermore, most of it
related quite closely to the connection actor. So moving the
functionality into that simplifies the code.

In the process we also fix #294.
2014-12-23 22:01:03 +00:00
Matthias Radestock ad67dc5d07 don't swallow error
Since sometimes the error is different from what we expect.
2014-12-23 19:50:08 +00:00
Matthias Radestock 34db7044e4 cosmetic 2014-12-23 17:49:16 +00:00
rade e5699fcfcb Merge pull request #292 from errordeveloper/fix_282
Simplify docker version sed expression

Fixes #282.
2014-12-23 17:00:10 +00:00