zrepl/rpc
Christian Schwarz fa4d2098a8 rpc: re-architect connection teardown
Tear down occurs on each protocol level, stack-wise.

Open RWC
Open ML (with NewMessageLayer)
Open RPC (with NewServer/ NewClient)
Close RPC (with Close() from Client())
Close ML
* in Server: after error / receive of Close request
* in Client: after getting ACK for Close request from Server
Close RWC

To achieve this, a DataType for RPC control messages was added, which
has a separate set of endpoints. Not exactly pretty, but works for now.

The necessity of the RST frame remains to be determined. However, it is
nice to have a way to signal the other side something went terribly
wrong in the middle of an operation. Example: A frameBridingWriter fails
to read the next chunk of a file it is supposed to send, it can just
send an RST frame to signal this operation failed... Wouldn't trailers
make sense then?
2017-09-11 10:54:56 +02:00
..
client.go rpc: re-architect connection teardown 2017-09-11 10:54:56 +02:00
frame_layer.go rpc: re-architect connection teardown 2017-09-11 10:54:56 +02:00
local.go reimplement io.ReadWriteCloser based RPC mechanism 2017-09-01 19:24:53 +02:00
server.go rpc: re-architect connection teardown 2017-09-11 10:54:56 +02:00
shared.go reimplement io.ReadWriteCloser based RPC mechanism 2017-09-01 19:24:53 +02:00