github.com/pwn-term/docker@v0.0.0-20210616085119-6e977cce2565/moby/api/server/router/grpc/grpc.go (about) 1 package grpc // import "github.com/docker/docker/api/server/router/grpc" 2 3 import ( 4 "github.com/docker/docker/api/server/router" 5 "golang.org/x/net/http2" 6 "google.golang.org/grpc" 7 ) 8 9 type grpcRouter struct { 10 routes []router.Route 11 grpcServer *grpc.Server 12 h2Server *http2.Server 13 } 14 15 // NewRouter initializes a new grpc http router 16 func NewRouter(backends ...Backend) router.Router { 17 r := &grpcRouter{ 18 h2Server: &http2.Server{}, 19 grpcServer: grpc.NewServer(), 20 } 21 for _, b := range backends { 22 b.RegisterGRPC(r.grpcServer) 23 } 24 r.initRoutes() 25 return r 26 } 27 28 // Routes returns the available routers to the session controller 29 func (r *grpcRouter) Routes() []router.Route { 30 return r.routes 31 } 32 33 func (r *grpcRouter) initRoutes() { 34 r.routes = []router.Route{ 35 router.NewPostRoute("/grpc", r.serveGRPC), 36 } 37 }