|
@@ -2,6 +2,7 @@ package grpc // import "github.com/docker/docker/api/server/router/grpc"
|
|
|
|
|
|
import (
|
|
|
"github.com/docker/docker/api/server/router"
|
|
|
+ "github.com/moby/buildkit/util/grpcerrors"
|
|
|
"golang.org/x/net/http2"
|
|
|
"google.golang.org/grpc"
|
|
|
)
|
|
@@ -15,8 +16,11 @@ type grpcRouter struct {
|
|
|
// NewRouter initializes a new grpc http router
|
|
|
func NewRouter(backends ...Backend) router.Router {
|
|
|
r := &grpcRouter{
|
|
|
- h2Server: &http2.Server{},
|
|
|
- grpcServer: grpc.NewServer(),
|
|
|
+ h2Server: &http2.Server{},
|
|
|
+ grpcServer: grpc.NewServer(
|
|
|
+ grpc.UnaryInterceptor(grpcerrors.UnaryServerInterceptor),
|
|
|
+ grpc.StreamInterceptor(grpcerrors.StreamServerInterceptor),
|
|
|
+ ),
|
|
|
}
|
|
|
for _, b := range backends {
|
|
|
b.RegisterGRPC(r.grpcServer)
|
|
@@ -26,12 +30,12 @@ func NewRouter(backends ...Backend) router.Router {
|
|
|
}
|
|
|
|
|
|
// Routes returns the available routers to the session controller
|
|
|
-func (r *grpcRouter) Routes() []router.Route {
|
|
|
- return r.routes
|
|
|
+func (gr *grpcRouter) Routes() []router.Route {
|
|
|
+ return gr.routes
|
|
|
}
|
|
|
|
|
|
-func (r *grpcRouter) initRoutes() {
|
|
|
- r.routes = []router.Route{
|
|
|
- router.NewPostRoute("/grpc", r.serveGRPC),
|
|
|
+func (gr *grpcRouter) initRoutes() {
|
|
|
+ gr.routes = []router.Route{
|
|
|
+ router.NewPostRoute("/grpc", gr.serveGRPC),
|
|
|
}
|
|
|
}
|