@@ -1246,7 +1246,8 @@ func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Str
1246
1246
service := sm [:pos ]
1247
1247
method := sm [pos + 1 :]
1248
1248
1249
- if srv , ok := s .m [service ]; ok {
1249
+ srv , knownService := s .m [service ]
1250
+ if knownService {
1250
1251
if md , ok := srv .md [method ]; ok {
1251
1252
s .processUnaryRPC (t , stream , srv , md , trInfo )
1252
1253
return
@@ -1261,11 +1262,16 @@ func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Str
1261
1262
s .processStreamingRPC (t , stream , nil , unknownDesc , trInfo )
1262
1263
return
1263
1264
}
1265
+ var errDesc string
1266
+ if ! knownService {
1267
+ errDesc = fmt .Sprintf ("unknown service %v" , service )
1268
+ } else {
1269
+ errDesc = fmt .Sprintf ("unknown method %v for service %v" , method , service )
1270
+ }
1264
1271
if trInfo != nil {
1265
- trInfo .tr .LazyLog ( & fmtStringer { "Unknown service %v " , [] interface {}{ service }}, true )
1272
+ trInfo .tr .LazyPrintf ( "%s " , errDesc )
1266
1273
trInfo .tr .SetError ()
1267
1274
}
1268
- errDesc := fmt .Sprintf ("unknown service %v" , service )
1269
1275
if err := t .WriteStatus (stream , status .New (codes .Unimplemented , errDesc )); err != nil {
1270
1276
if trInfo != nil {
1271
1277
trInfo .tr .LazyLog (& fmtStringer {"%v" , []interface {}{err }}, true )
0 commit comments