in callouts/go/extproc/internal/server/callout_server.go [157:202]
func (s *GRPCCalloutService) Process(stream extproc.ExternalProcessor_ProcessServer) error {
for {
req, err := stream.Recv()
if err != nil {
return err
}
var response *extproc.ProcessingResponse
switch {
case req.GetRequestHeaders() != nil:
if s.Handlers.RequestHeadersHandler != nil {
response, err = s.Handlers.RequestHeadersHandler(req.GetRequestHeaders())
}
case req.GetResponseHeaders() != nil:
if s.Handlers.ResponseHeadersHandler != nil {
response, err = s.Handlers.ResponseHeadersHandler(req.GetResponseHeaders())
}
case req.GetRequestBody() != nil:
if s.Handlers.RequestBodyHandler != nil {
response, err = s.Handlers.RequestBodyHandler(req.GetRequestBody())
}
case req.GetResponseBody() != nil:
if s.Handlers.ResponseBodyHandler != nil {
response, err = s.Handlers.ResponseBodyHandler(req.GetResponseBody())
}
case req.GetRequestTrailers() != nil:
if s.Handlers.RequestTrailersHandler != nil {
response, err = s.Handlers.RequestTrailersHandler(req.GetRequestTrailers())
}
case req.GetResponseTrailers() != nil:
if s.Handlers.ResponseTrailersHandler != nil {
response, err = s.Handlers.ResponseTrailersHandler(req.GetResponseTrailers())
}
}
if err != nil {
return err
}
if response != nil {
if err := stream.Send(response); err != nil {
return err
}
}
}
}