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