Merge pull request #713 from menghanl/split_authenticator_and_credentials

[API revision] Separate TransportAuthenticator and PerRPCCredentials
This commit is contained in:
Qi Zhao
2016-06-09 14:57:55 -07:00
committed by GitHub
9 changed files with 77 additions and 75 deletions

View File

@ -96,7 +96,7 @@ type Server struct {
}
type options struct {
creds credentials.Credentials
creds credentials.TransportCredentials
codec Codec
cp Compressor
dc Decompressor
@ -139,7 +139,7 @@ func MaxConcurrentStreams(n uint32) ServerOption {
}
// Creds returns a ServerOption that sets credentials for server connections.
func Creds(c credentials.Credentials) ServerOption {
func Creds(c credentials.TransportCredentials) ServerOption {
return func(o *options) {
o.creds = c
}
@ -250,11 +250,10 @@ var (
)
func (s *Server) useTransportAuthenticator(rawConn net.Conn) (net.Conn, credentials.AuthInfo, error) {
creds, ok := s.opts.creds.(credentials.TransportAuthenticator)
if !ok {
if s.opts.creds == nil {
return rawConn, nil, nil
}
return creds.ServerHandshake(rawConn)
return s.opts.creds.ServerHandshake(rawConn)
}
// Serve accepts incoming connections on the listener lis, creating a new