From 60c363f9842b9b699434f8ccfb8fc890674fb938 Mon Sep 17 00:00:00 2001 From: iamqizhao Date: Thu, 24 Sep 2015 18:39:38 -0700 Subject: [PATCH 1/3] bug fix: do not access RemoteAddr on nil net.Conn --- server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.go b/server.go index d0a0e9a8..23c502e7 100644 --- a/server.go +++ b/server.go @@ -232,7 +232,7 @@ func (s *Server) Serve(lis net.Listener) error { c, authInfo, err = creds.ServerHandshake(c) if err != nil { s.mu.Lock() - s.errorf("ServerHandshake(%q) failed: %v", c.RemoteAddr(), err) + s.errorf("ServerHandshake failed: %v", err) s.mu.Unlock() grpclog.Println("grpc: Server.Serve failed to complete security handshake.") continue From efb129eb20ad0ea1b36191c5751ac8a2bc60352b Mon Sep 17 00:00:00 2001 From: iamqizhao Date: Thu, 24 Sep 2015 18:41:56 -0700 Subject: [PATCH 2/3] bug fix: do not access RemoteAddr on nil net.Conn --- server.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server.go b/server.go index 23c502e7..cdd5f03d 100644 --- a/server.go +++ b/server.go @@ -229,14 +229,16 @@ func (s *Server) Serve(lis net.Listener) error { } var authInfo credentials.AuthInfo if creds, ok := s.opts.creds.(credentials.TransportAuthenticator); ok { - c, authInfo, err = creds.ServerHandshake(c) + var conn net.Conn + conn, authInfo, err = creds.ServerHandshake(c) if err != nil { s.mu.Lock() - s.errorf("ServerHandshake failed: %v", err) + s.errorf("ServerHandshake failed: %v", c.RemoteAddr(), err) s.mu.Unlock() grpclog.Println("grpc: Server.Serve failed to complete security handshake.") continue } + c = conn } s.mu.Lock() if s.conns == nil { From d39eb0802ff84437f8507dddef245d234dc02678 Mon Sep 17 00:00:00 2001 From: iamqizhao Date: Thu, 24 Sep 2015 18:44:03 -0700 Subject: [PATCH 3/3] bug fix: do not access RemoteAddr on nil net.Conn --- server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.go b/server.go index cdd5f03d..274f7329 100644 --- a/server.go +++ b/server.go @@ -233,7 +233,7 @@ func (s *Server) Serve(lis net.Listener) error { conn, authInfo, err = creds.ServerHandshake(c) if err != nil { s.mu.Lock() - s.errorf("ServerHandshake failed: %v", c.RemoteAddr(), err) + s.errorf("ServerHandshake(%q) failed: %v", c.RemoteAddr(), err) s.mu.Unlock() grpclog.Println("grpc: Server.Serve failed to complete security handshake.") continue