Menghan Li
d7d831d95e
Do not create RoundRobin if balancer is not specified
2016-08-01 15:55:08 -07:00
Menghan Li
7c6eabc607
Make Dial() return original error
2016-08-01 15:55:08 -07:00
Menghan Li
1d0bea7943
Add addrConn tearDownError
2016-08-01 15:55:08 -07:00
Menghan Li
e9e6ae6215
Make Dial() withblock error on bad certificates
2016-08-01 15:55:08 -07:00
Tamir Duberstein
5c7ed938f9
credentials: plumb cancellation into ClientHandshake
...
This is a minor breaking change to `TransportCredentials`, however
it should not be a problem in practice as not many users are using
custom implementations. In particular, users of `NewTLS` will not
be affected.
This change also replaces the earlier `Timeout` and `Cancel` fields
with a `context.Context`, which is plumbed all the way down from
`grpc.Dial`, laying the ground work for a user-provided context.
Also, support for Go 1.7 is added.
2016-08-01 16:29:56 -04:00
iamqizhao
21c5a43e47
fix a race condition causing http2Client.controller leaking
2016-08-01 11:51:20 -07:00
Menghan Li
cbae5b1f01
Replace cc.newAddrConn with cc.resetAddrConn
...
When goaway is received by client, a new ac should replace the old ac.
Without this change, ac is removed first and a new one is added later,
ac.tearDown() and cc.newAddrConn are two functions called consecutively,
So there's a small chance that getTransport is called in between and
misses the new ac. After this change, the value in map conns is replaced
directly, and this issue should be resolved.
2016-07-29 16:03:53 -07:00
iamqizhao
a09c6888cc
fix another data race along with goaway
2016-07-28 19:47:38 -07:00
Menghan Li
f255f72742
Merge pull request #784 from iamqizhao/race-fix
...
Fix a couple of races when goaway lives with connection shutdown.
2016-07-28 15:40:27 -07:00
Tamir Duberstein
096e703537
WithDialer doesn't support cancellation
...
This maintains cancellation for the default dialer, but external users
will have to opt in via a future API.
2016-07-28 17:00:23 -04:00
iamqizhao
b128e7465a
merge the conflict
2016-07-28 13:17:23 -07:00
iamqizhao
cd4ca4d808
Tune transport Monitor, modify the test and add more comments
2016-07-28 11:07:42 -07:00
iamqizhao
1faf2ca61b
fix the race on t.state
2016-07-27 19:46:34 -07:00
iamqizhao
63fcabeec5
some polish
2016-07-27 17:41:43 -07:00
iamqizhao
110450d45e
fix races introduce by goaway
2016-07-27 17:27:10 -07:00
Tamir Duberstein
61f3f61ef0
cancel outgoing net.Dial when ClientConn is closed
2016-07-27 17:34:40 -04:00
Tamir Duberstein
2342e38669
test,transport: simplify
2016-07-27 17:20:55 -04:00
iamqizhao
f1e4d3b180
allow multiple GoAways and retrying on illegal streams
2016-07-25 16:35:32 -07:00
iamqizhao
046e606dc5
clean up
2016-07-21 18:12:01 -07:00
iamqizhao
9ad4c58355
Make it work for streaming
2016-07-21 16:19:34 -07:00
iamqizhao
873cc272c2
support goaway
2016-07-20 18:48:49 -07:00
iamqizhao
d2e79470cc
client goaway support
2016-07-19 16:29:13 -07:00
iamqizhao
f492622da4
rebase
2016-07-06 14:16:27 -07:00
Tamir Duberstein
ebd9633b55
remove duplicate balancer field
2016-07-05 14:52:25 -04:00
iamqizhao
be59d023f2
refactor error handling a bit
2016-06-29 15:21:44 -07:00
iamqizhao
213a20c4fe
bug fix, typo fix and slight error refactoring
2016-06-28 16:08:19 -07:00
iamqizhao
01ef81a4d9
minor fix including removal of debugging logs, error code fix, etc.
2016-06-27 15:30:20 -07:00
iamqizhao
3e71fb360d
Support fail-fast mode and make it the default
2016-06-27 14:36:59 -07:00
Qi Zhao
3efe7aef96
Merge pull request #713 from menghanl/split_authenticator_and_credentials
...
[API revision] Separate TransportAuthenticator and PerRPCCredentials
2016-06-09 14:57:55 -07:00
Menghan Li
d9c8fb446d
Change errCredentialsMisuse to errCredentialsConflict and errTransportCredentialsMissing
2016-06-08 13:53:41 -07:00
Menghan Li
59486d9c17
Rename TransportAuthenticator to TransportCredentials
2016-06-08 11:19:25 -07:00
Anthony Romano
eada4fb145
clientconn: buffer waitC on Dial goroutine
...
Leaks a goroutine on dial timeout if unbuffered.
2016-06-07 15:47:54 -07:00
Menghan Li
3ffbd8e030
Rename Credentials to PerRPCCredentials
2016-06-06 17:28:10 -07:00
Menghan Li
f0feaea314
Should be only one TransportAuthenticator
2016-06-06 16:35:41 -07:00
Menghan Li
6404c49192
Make TransportAuthenticator not embed Credentials
2016-06-06 16:24:46 -07:00
iamqizhao
3a6b72b858
add errNoAddr
2016-06-06 12:16:33 -07:00
iamqizhao
24a701cae7
revise the comments of WithTimeout
2016-06-06 12:13:00 -07:00
iamqizhao
404e9b67de
dial time out
2016-06-06 12:08:11 -07:00
Dmitri Shuralyov
e8316072cd
Fix remaining instances of gRPC spelling.
...
According to http://www.grpc.io/faq/ , the project is called gRPC. It's
already referred by that name in most places, except a few instances
where it's still "GRPC". Fix those to have consistency.
2016-06-02 18:00:07 -07:00
iamqizhao
2700f043b9
some small fixes
2016-06-01 14:09:21 -07:00
iamqizhao
fca009f66f
Fix some small comments
2016-05-26 15:11:33 -07:00
iamqizhao
817b48219c
Fix a typo bug and handle stale addrConns
2016-05-26 14:20:31 -07:00
iamqizhao
db887c9bcd
rename controller
2016-05-25 18:17:23 -07:00
iamqizhao
9dc3da0633
make downErr for Balancer down closure
2016-05-25 11:28:45 -07:00
iamqizhao
0b1df3bca2
add BalancerGetOption
2016-05-24 17:19:44 -07:00
iamqizhao
5b484e4099
add Notify API; move the name resolving into Balancer
2016-05-23 19:25:01 -07:00
iamqizhao
5d62215b41
some minor fixes
2016-05-18 16:26:12 -07:00
iamqizhao
162d8d2d33
Tune Invoke behavior for the new Balancer.
2016-05-18 11:18:10 -07:00
iamqizhao
e9e748b978
small fix and more comments
2016-05-17 17:18:54 -07:00
iamqizhao
65969fb499
lock optimization
2016-05-16 19:19:35 -07:00
iamqizhao
73ff8375a6
Remove debugging logs and add license.
2016-05-16 15:47:46 -07:00
iamqizhao
aa532d5baf
Fix some issues and remove garbbage files
2016-05-16 15:31:00 -07:00
iamqizhao
31ef3ef957
some touchups
2016-05-13 15:08:09 -07:00
iamqizhao
f4b89fe44f
some fixes
2016-05-13 13:27:35 -07:00
iamqizhao
e3351672ba
complete some unfinished error
2016-05-13 13:26:36 -07:00
iamqizhao
32eec1acef
add comments
2016-05-12 18:52:24 -07:00
iamqizhao
f93b6bbfb5
Merge branch 'master' of https://github.com/grpc/grpc-go
2016-05-12 17:43:51 -07:00
iamqizhao
a1b60d7b43
Add the tests for balancer and resolver
2016-05-12 17:01:58 -07:00
Anthony Romano
46f2afd293
Interrupt retry Sleep() on client connection shutdown
...
Otherwise transportMonitor hangs around long enough after Close() that it
looks like a goroutine leak.
2016-05-12 13:14:22 -07:00
iamqizhao
19ded23951
graceful close and test
2016-05-10 19:29:44 -07:00
iamqizhao
9c2d8546bf
load balancer
2016-05-06 15:47:09 -07:00
iamqizhao
9cec19a4d4
make setDefault(...) non-member function
2016-04-18 13:15:27 -07:00
Stephen J Day
8ef1dcabab
backoff: make DefaultBackoffConfig a concrete value
...
To enforce immutability of the `DefaultBackoffConfig`, we've made it a
concrete value. While fields can still be set directly on the value,
taking a copy will not incidentally pull a reference to the variable.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-04-18 11:33:39 -07:00
Stephen J Day
9ff38e9093
backoff: set default values on BackoffConfig
...
Because most of the fields on `BackoffConfig` are unexported, correctly
using the config requires copying from the default. This sets the
defaults appropriately and falls back to a default if MaxDelay is
negative or zero.
Tests are added to ensure that the backoff is set correctly in common
use cases.
Signedroff-by: Stephen J Day <stephen.day@docker.com>
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-04-15 16:12:47 -07:00
Qi Zhao
d07d0562ff
Merge pull request #601 from stevvooe/backoff-strategy
...
backoff: allow configuration of backoff strategy
2016-04-11 10:32:33 -07:00
Stephen J Day
47b74a63a8
backoff: allow configuration of backoff strategy
...
The backoff function and parameters have been pulled up into an
interface `backoffStrategy`. The default parameters are now part of a
package variable `DefaultBackoffConfig`. The strategy is then plumbed
through `dialOptions`. As a result of this PR, the
maximum backoff delay can now be set using the `WithBackoffConfig` dial
option.
While the addition of strategy may seem premature, this allows one to
simply export `BackoffStrategy` and `WithBackoff` to allow arbirarily
configurable backoff strategies.
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2016-04-07 20:17:57 -07:00
Tamir Duberstein
2a118f74a2
minor cleanup: simplify looping
2016-03-31 22:05:49 -04:00
Victor Vieux
047af78181
fix a few typos
2016-03-16 16:40:16 -07:00
iamqizhao
0be94ab3f5
fix a race between transport creation and wait returning
2016-02-22 16:26:15 -08:00
iamqizhao
af8888dc8d
remove Compressor/DecompressorGenerator
2016-01-29 14:38:20 -08:00
iamqizhao
61d7c39d4c
comments and gofmt
2016-01-25 11:18:41 -08:00
iamqizhao
da3bb0c9f7
Support compression
2016-01-22 18:21:41 -08:00
iamqizhao
c1330e18aa
some missing comments
2016-01-07 14:18:20 -08:00
iamqizhao
f0ee5628a9
add more comments
2015-12-14 14:43:21 -08:00
iamqizhao
758cf3083a
add comments to NotifyReset
2015-12-14 14:40:21 -08:00
iamqizhao
330d8f958c
i) revise picker API and channel state API; ii) add unicastNamingPicker which supports custom name resolving.
2015-12-14 14:32:43 -08:00
Daniel Kwasnick
0fd544f256
Fix cc.Close() state race
...
Fix a race condition in which a Conn's state is set to TransientFailure after Close() has been invoked – Close() should irrevocably set state to Shutdown.
2015-11-10 14:02:38 -08:00
iamqizhao
c0d1abc00e
fix a comment
2015-10-08 14:22:00 -07:00
iamqizhao
390cd42894
revise Picker API
2015-10-08 11:05:59 -07:00
iamqizhao
ec8414396c
bug fix: stop busy wait on new transport
2015-10-08 09:09:06 -07:00
iamqizhao
9a7e50e3d9
remove unnecessary go statement
2015-10-02 16:04:55 -07:00
iamqizhao
c01ea6e359
revise Picker API
2015-09-29 10:24:03 -07:00
iamqizhao
2899844430
fix a typo
2015-09-25 13:38:17 -07:00
iamqizhao
23fea5c44a
comments
2015-09-25 13:32:35 -07:00
iamqizhao
ec99a32572
redesign the API
2015-09-25 13:21:25 -07:00
iamqizhao
ffbdf88f0f
add more comments
2015-09-24 10:36:56 -07:00
iamqizhao
9afcd0c697
preliminary refactoring for custom naming and load balancing
2015-09-23 19:09:37 -07:00
Sameer Ajmani
980b4c6d05
grpc: restore changes after sync
...
Change-Id: I97f0c77f95086301202d0fe4ca477ae6e22dd0b5
2015-09-23 15:18:41 -04:00
iamqizhao
e6b603d375
a bit clean up
2015-09-22 19:01:33 -07:00
iamqizhao
ecf8201c7c
remove a dead member var
2015-09-22 16:12:42 -07:00
iamqizhao
dd992b3748
remove transportSeq
2015-09-21 18:17:49 -07:00
iamqizhao
804293ac57
Fix a reconnecting bug
2015-09-15 11:20:16 -07:00
Jeff Hodges
b1c6afbc7f
s/stated/started/ in Shutdown doc
2015-09-06 21:26:27 -07:00
iamqizhao
9ba820ef6a
add tests
2015-08-28 13:50:04 -07:00
iamqizhao
87c361b5a5
check transport security when using oauth2-based credentials
2015-08-28 13:19:36 -07:00
iamqizhao
3b3b9b52cc
polish
2015-08-27 22:03:38 -07:00
iamqizhao
456daaf3f1
extend ErrNoTransportSecurity message
2015-08-27 22:00:49 -07:00
iamqizhao
996538ab4b
Insecure ClientConn made explicit
2015-08-27 17:21:52 -07:00
iamqizhao
7fbf442f72
gofmt -w
2015-08-03 13:24:14 -07:00
iamqizhao
cf1376e56b
revert some unnecessary changes
2015-08-03 13:18:25 -07:00
iamqizhao
8fc68cd569
small fix
2015-08-03 13:11:00 -07:00
iamqizhao
89ca9edced
small fix
2015-08-03 11:45:42 -07:00
iamqizhao
08b3e19185
add a shortcut logic
2015-08-03 11:29:27 -07:00
iamqizhao
494b40089f
polish the func comment
2015-08-03 11:19:25 -07:00
iamqizhao
14702f8b6a
channel state API
2015-07-31 19:00:43 -07:00
iamqizhao
244bc75d79
Switch ALPN/NPN to advertise only h2
2015-07-31 14:16:02 -07:00
iamqizhao
923b849cb0
add a missing ClientConn state transition
2015-07-31 10:59:32 -07:00
iamqizhao
f680d0b77d
fix a typo
2015-07-30 15:36:59 -07:00
iamqizhao
76ef365255
Add ClientConn state
2015-07-30 15:30:26 -07:00
iamqizhao
bce3d5e24b
small fix
2015-07-28 11:24:31 -07:00
iamqizhao
e35bf02914
revise reconnect backoff strategy
2015-07-28 11:12:07 -07:00
iamqizhao
611d960757
support user-agent and allow users attach their own application user agent string
2015-07-24 11:19:08 -07:00
iamqizhao
57b3fb41f6
add some more comments
2015-06-04 15:52:06 -07:00
iamqizhao
e2677ad0f3
fix some comments
2015-06-04 15:47:02 -07:00
iamqizhao
ec20a7b857
make dialing nonblocking by default. Add a DialOption to force blocking operation.
2015-06-04 15:45:06 -07:00
iamqizhao
8c6e829589
cleanup
2015-05-12 18:02:38 -07:00
iamqizhao
3617cd5ab3
revert handshaker changes
2015-05-12 17:59:20 -07:00
Peter Edge
7c025e8694
move log package references to grpclog
2015-05-09 11:43:59 +02:00
Peter Edge
101c1e1935
change log package references to grpc/log
2015-05-09 01:16:40 +02:00
iamqizhao
814627b32e
add comments
2015-05-01 18:17:36 -07:00
iamqizhao
9d59a879e1
Add handshaker option to ClientConn
2015-05-01 18:10:40 -07:00
iamqizhao
5f7c0caeb4
modify the comment
2015-04-21 16:48:41 -07:00
iamqizhao
2cf2d0871b
remove WithNetwork and add WithDialer to have more flexibility on dialing
2015-04-21 16:19:29 -07:00
iamqizhao
3259049490
fix some typos and run gofmt
2015-04-17 13:50:18 -07:00
iamqizhao
c7b9fa27dc
addressed some comments
2015-04-01 14:22:53 -07:00
iamqizhao
9a5de0e954
make Codec configurable when creating grpc.ClientConn and grpc.Server
2015-04-01 14:02:26 -07:00
iamqizhao
e10de7abd1
fix some bugs
2015-03-13 00:16:18 -07:00
iamqizhao
5c27dd6a7a
fix a bug
2015-03-05 09:45:50 -08:00
iamqizhao
aae62e6051
remove unused import
2015-03-05 01:52:17 -08:00
iamqizhao
91a7361187
address some comments
2015-03-04 15:14:52 -08:00
iamqizhao
7bf60c1cd4
addressed some comments
2015-03-04 14:37:12 -08:00
iamqizhao
09fbfbf553
addressed some comments
2015-03-04 13:29:15 -08:00
iamqizhao
8d7b4ade87
addressed some comments
2015-03-04 13:23:39 -08:00
iamqizhao
28ad38be17
close ready when ClientConn closes
2015-03-04 13:00:47 -08:00
iamqizhao
c73e40b804
address some review comments
2015-03-04 11:15:10 -08:00
iamqizhao
351e2d0297
add more tests for dial timeout and fix some bugs
2015-03-03 19:06:44 -08:00
iamqizhao
a5ca6e56d2
Support timeout for grpc.Dial
2015-03-03 17:08:39 -08:00
iamqizhao
2b993cd479
rename the convenience function to set TLS creds
2015-02-25 22:57:07 -08:00
iamqizhao
c42573b827
improve error logging
2015-02-25 16:33:12 -08:00
iamqizhao
f63a4eec38
rename an error
2015-02-23 11:51:15 -08:00
iamqizhao
8a32815cd1
err := styple nits
2015-02-22 18:00:33 -08:00
Qi Zhao
2d61160597
rename an error string and desc.
2015-02-22 17:21:06 -08:00
Matt T. Proud
a720ae6f48
Make error conveyance more idiomatic.
...
This commit applies two bulk changes to the grpc error reporting
mechanisms:
(1.) Error strings for errors that originate within grpc are prefixed
with the package name for better clarity for where they originate
since they could percolate up in the users call chains to the
originator.
(2.) Errors that are, in fact, singletons have been converted from
fmt.Errorf to errors.New and assigned as package-level variables.
This bodes particularly well for enabling API customers to elect to
handle these errors upon receipt via equality comparison. This had
been previous impossible with the original API.
Supplementarily, ``gofmt -w -s=true`` has been run on the repository to
cleanup residual defects, and it has detected and repaired a few.
TEST=Manual go test ./...
2015-02-19 13:17:17 +01:00
iamqizhao
634392a1c6
Remove the 2nd RecvProto in the generated code for client streaming
2015-02-18 22:18:01 -08:00
iamqizhao
6148d0a55d
Migrated to the latest google.org/x/oauth2 package and added support for JWT.
2015-02-18 12:02:43 -08:00
David Symonds
416f68f4b3
Update import paths to use the new official location of the Go gRPC package.
2015-02-09 11:46:20 +11:00
David Symonds
9e789c396b
Rename top level package from "rpc" to "grpc".
...
Also move the nascent package doc to doc.go.
2015-02-09 11:45:33 +11:00
David Symonds
e71095e0ec
Move source files up one level.
...
The top-level directory in this repository is going to be
the main "grpc" package.
2015-02-09 11:33:38 +11:00