From 53b2583db4285943f74585fe6a244569a0c863a0 Mon Sep 17 00:00:00 2001 From: Alexander Bezzubov Date: Wed, 21 Nov 2018 19:17:07 +0100 Subject: [PATCH] refactoring: grpc options logic shared \w Drivers though SDK Signed-off-by: Alexander Bezzubov --- cmd/bblfshd/main.go | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/cmd/bblfshd/main.go b/cmd/bblfshd/main.go index b96898b..d1489fc 100644 --- a/cmd/bblfshd/main.go +++ b/cmd/bblfshd/main.go @@ -14,8 +14,8 @@ import ( "github.com/bblfsh/bblfshd/runtime" "github.com/sirupsen/logrus" - "google.golang.org/grpc" "gopkg.in/bblfsh/sdk.v1/sdk/server" + cmdutil "gopkg.in/bblfsh/sdk.v2/cmd" "gopkg.in/bblfsh/sdk.v2/driver/manifest/discovery" ) @@ -50,7 +50,7 @@ func init() { address = cmd.String("address", "0.0.0.0:9432", "address to listen.") storage = cmd.String("storage", "/var/lib/bblfshd", "path where all the runtime information is stored.") transport = cmd.String("transport", "docker", "default transport to fetch driver images: docker or docker-daemon)") - maxMessageSize = cmd.Int("grpc-max-message-size", 100, "max. message size to send/receive to/from clients (in MB)") + maxMessageSize = cmdutil.MaxSendRecvMsgSizeMB(cmd) ctl.network = cmd.String("ctl-network", "unix", "control server network type: tcp, tcp4, tcp6, unix or unixpacket.") ctl.address = cmd.String("ctl-address", "/var/run/bblfshctl.sock", "control server address to listen.") @@ -94,7 +94,12 @@ func main() { logrus.Infof("bblfshd version: %s (build: %s)", version, build) r := buildRuntime() - d := daemon.NewDaemon(version, r, buildGRPCOptions()...) + grpcOpts, err := cmdutil.GRPCSizeOptions(*maxMessageSize) + if err != nil { + logrus.Warnln(err) + } + + d := daemon.NewDaemon(version, r, grpcOpts...) if args := cmd.Args(); len(args) == 2 && args[0] == "install" && args[1] == "recommended" { err := installRecommended(d) if err != nil { @@ -186,23 +191,6 @@ func buildRuntime() *runtime.Runtime { return r } -func buildGRPCOptions() []grpc.ServerOption { - size := *maxMessageSize - if size >= 2048 { - // Setting the hard limit of message size to less than 2GB since - // it may overflow an int value, and it should be big enough - logrus.Errorf("max-message-size too big (limit is 2047MB): %d", size) - os.Exit(1) - } - - size = size * 1024 * 1024 - - return []grpc.ServerOption{ - grpc.MaxRecvMsgSize(size), - grpc.MaxSendMsgSize(size), - } -} - func handleGracefullyShutdown(d *daemon.Daemon) { var gracefulStop = make(chan os.Signal) signal.Notify(gracefulStop, syscall.SIGTERM)