commit | cba3b76aecb09f3d9432d7bbcaaf6090a5dd2143 | [log] [tgz] |
---|---|---|
author | Suharsh Sivakumar <suharshs@google.com> | Tue Feb 09 22:20:33 2016 -0800 |
committer | Suharsh Sivakumar <suharshs@google.com> | Tue Feb 09 22:20:33 2016 -0800 |
tree | 113f93ee783933c6995cea0ae8cee64a563b1bc1 | |
parent | 497eeddf011c254f524f8d507a08d9d549927b30 [diff] |
ref: Introduce options.ConnectionTimeout and remove options.RetryTimeout. There were a few subleties during implementation: (1) We needed to introduce flow.Manager.DialCached to ensure that ConnectionTimeout == 0 means "only use a cached conn". (2) To implement flow.Manager.DialCached, we need to introduce conncache.FindWithRoutingID to ensure that we only return connection to end servers when a rid is present, instead of a connection to an intermediate proxy which is what would happen if we proceeded with the network lookup. (3) When retrying connection establishment, ConnectionTimeout == 0 must also imply options.NoRetry, otherwise we will unnecessarily retry a connection establishment that is not in the cache. This is not true for verror.RetryBackoff errors (errors returned from applications) since they may be requesting a retry for arbritrary reasons. MultiPart: 2/3 Change-Id: I0ced8cbae9db94cabdcb30322f5e6fe6e40437e4
This repository contains a reference implementation of the Vanadium APIs.
Unlike the APIs in https://github.com/vanadium/go.v23, which promises to provide backward compatibility this repository makes no such promises.