(ctx context.Context, in *testpb.SimpleRequest)
| 184 | } |
| 185 | |
| 186 | func (s *testServer) UnaryCall(ctx context.Context, in *testpb.SimpleRequest) (*testpb.SimpleResponse, error) { |
| 187 | md, ok := metadata.FromIncomingContext(ctx) |
| 188 | if ok { |
| 189 | if _, exists := md[":authority"]; !exists { |
| 190 | return nil, status.Errorf(codes.DataLoss, "expected an :authority metadata: %v", md) |
| 191 | } |
| 192 | if s.setAndSendHeader { |
| 193 | if err := grpc.SetHeader(ctx, md); err != nil { |
| 194 | return nil, status.Errorf(status.Code(err), "grpc.SetHeader(_, %v) = %v, want <nil>", md, err) |
| 195 | } |
| 196 | if err := grpc.SendHeader(ctx, testMetadata2); err != nil { |
| 197 | return nil, status.Errorf(status.Code(err), "grpc.SendHeader(_, %v) = %v, want <nil>", testMetadata2, err) |
| 198 | } |
| 199 | } else if s.setHeaderOnly { |
| 200 | if err := grpc.SetHeader(ctx, md); err != nil { |
| 201 | return nil, status.Errorf(status.Code(err), "grpc.SetHeader(_, %v) = %v, want <nil>", md, err) |
| 202 | } |
| 203 | if err := grpc.SetHeader(ctx, testMetadata2); err != nil { |
| 204 | return nil, status.Errorf(status.Code(err), "grpc.SetHeader(_, %v) = %v, want <nil>", testMetadata2, err) |
| 205 | } |
| 206 | } else { |
| 207 | if err := grpc.SendHeader(ctx, md); err != nil { |
| 208 | return nil, status.Errorf(status.Code(err), "grpc.SendHeader(_, %v) = %v, want <nil>", md, err) |
| 209 | } |
| 210 | } |
| 211 | if err := grpc.SetTrailer(ctx, testTrailerMetadata); err != nil { |
| 212 | return nil, status.Errorf(status.Code(err), "grpc.SetTrailer(_, %v) = %v, want <nil>", testTrailerMetadata, err) |
| 213 | } |
| 214 | if s.multipleSetTrailer { |
| 215 | if err := grpc.SetTrailer(ctx, testTrailerMetadata2); err != nil { |
| 216 | return nil, status.Errorf(status.Code(err), "grpc.SetTrailer(_, %v) = %v, want <nil>", testTrailerMetadata2, err) |
| 217 | } |
| 218 | } |
| 219 | } |
| 220 | pr, ok := peer.FromContext(ctx) |
| 221 | if !ok { |
| 222 | return nil, status.Error(codes.DataLoss, "failed to get peer from ctx") |
| 223 | } |
| 224 | if pr.Addr == net.Addr(nil) { |
| 225 | return nil, status.Error(codes.DataLoss, "failed to get peer address") |
| 226 | } |
| 227 | if s.security != "" { |
| 228 | // Check Auth info |
| 229 | var authType, serverName string |
| 230 | switch info := pr.AuthInfo.(type) { |
| 231 | case credentials.TLSInfo: |
| 232 | authType = info.AuthType() |
| 233 | serverName = info.State.ServerName |
| 234 | default: |
| 235 | return nil, status.Error(codes.Unauthenticated, "Unknown AuthInfo type") |
| 236 | } |
| 237 | if authType != s.security { |
| 238 | return nil, status.Errorf(codes.Unauthenticated, "Wrong auth type: got %q, want %q", authType, s.security) |
| 239 | } |
| 240 | if serverName != "x.test.example.com" { |
| 241 | return nil, status.Errorf(codes.Unauthenticated, "Unknown server name %q", serverName) |
| 242 | } |
| 243 | } |
nothing calls this directly
no test coverage detected