From b92896b0c0e0bf94fc0e916048b74beb33274a79 Mon Sep 17 00:00:00 2001 From: Roman Khimov Date: Wed, 27 Jul 2022 12:51:41 +0300 Subject: [PATCH] cli: fix FTBFS on Windows It has a stub for SIGHUP, but doesn't have anything for USR1 and USR2: Error: cli\server\server.go:520:31: undefined: syscall.SIGUSR1 Error: cli\server\server.go:521:31: undefined: syscall.SIGUSR2 Error: cli\server\server.go:565:17: undefined: syscall.SIGUSR1 Error: cli\server\server.go:608:17: undefined: syscall.SIGUSR2 --- cli/server/server.go | 13 ++++++------- cli/server/signals_unix.go | 12 ++++++++++++ cli/server/signals_windows.go | 13 +++++++++++++ 3 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 cli/server/signals_unix.go create mode 100644 cli/server/signals_windows.go diff --git a/cli/server/server.go b/cli/server/server.go index 505338b49..f40d1405d 100644 --- a/cli/server/server.go +++ b/cli/server/server.go @@ -8,7 +8,6 @@ import ( "os" "os/signal" "runtime" - "syscall" "time" "github.com/nspcc-dev/neo-go/cli/options" @@ -516,9 +515,9 @@ func startServer(ctx *cli.Context) error { } sigCh := make(chan os.Signal, 1) - signal.Notify(sigCh, syscall.SIGHUP) - signal.Notify(sigCh, syscall.SIGUSR1) - signal.Notify(sigCh, syscall.SIGUSR2) + signal.Notify(sigCh, sighup) + signal.Notify(sigCh, sigusr1) + signal.Notify(sigCh, sigusr2) fmt.Fprintln(ctx.App.Writer, Logo()) fmt.Fprintln(ctx.App.Writer, serv.UserAgent) @@ -548,7 +547,7 @@ Main: } configureAddresses(&cfgnew.ApplicationConfiguration) switch sig { - case syscall.SIGHUP: + case sighup: serv.DelService(&rpcServer) rpcServer.Shutdown() rpcServer = rpcsrv.New(chain, cfgnew.ApplicationConfiguration.RPC, serv, oracleSrv, log, errChan) @@ -562,7 +561,7 @@ Main: prometheus.ShutDown() prometheus = metrics.NewPrometheusService(cfgnew.ApplicationConfiguration.Prometheus, log) go prometheus.Start() - case syscall.SIGUSR1: + case sigusr1: if oracleSrv != nil { serv.DelService(oracleSrv) chain.SetOracle(nil) @@ -605,7 +604,7 @@ Main: if serv.IsInSync() { sr.Start() } - case syscall.SIGUSR2: + case sigusr2: if dbftSrv != nil { serv.DelExtensibleHPService(dbftSrv, consensus.Category) dbftSrv.Shutdown() diff --git a/cli/server/signals_unix.go b/cli/server/signals_unix.go new file mode 100644 index 000000000..1f63dfaad --- /dev/null +++ b/cli/server/signals_unix.go @@ -0,0 +1,12 @@ +//go:build !windows +// +build !windows + +package server + +import "syscall" + +const ( + sighup = syscall.SIGHUP + sigusr1 = syscall.SIGUSR1 + sigusr2 = syscall.SIGUSR2 +) diff --git a/cli/server/signals_windows.go b/cli/server/signals_windows.go new file mode 100644 index 000000000..4465c1e21 --- /dev/null +++ b/cli/server/signals_windows.go @@ -0,0 +1,13 @@ +//go:build windows +// +build windows + +package server + +import "syscall" + +const ( + // Doesn't really matter, Windows can't do it. + sighup = syscall.SIGHUP + sigusr1 = syscall.Signal(0xa) + sigusr2 = syscall.Signal(0xc) +)