From ffcddc908e3861b59c3f24b85cf8bb1dd5b4e6c3 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Tue, 11 Oct 2022 22:54:40 +0200 Subject: [PATCH] cmd/dockerd: replace deprecated windows.IsAnInteractiveSession() The `IsAnInteractiveSession` was deprecated, and `IsWindowsService` is marked as the recommended replacement. For details, see https://github.com/golang/sys/commit/280f808b4a5303f80a30dd9dc62f9a042d992ad0 > CL 244958 includes isWindowsService function that determines if a > process is running as a service. The code of the function is based on > public .Net implementation. > > IsAnInteractiveSession function implements similar functionality, but > is based on an old Stackoverflow post., which is not as authoritative > as code written by Microsoft for their official product. > > This change copies CL 244958 isWindowsService function into svc package > and makes it public. The intention is that future users will prefer > IsWindowsService to IsAnInteractiveSession. Signed-off-by: Sebastiaan van Stijn --- cmd/dockerd/service_windows.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cmd/dockerd/service_windows.go b/cmd/dockerd/service_windows.go index 866f81c749..05b9b414f1 100644 --- a/cmd/dockerd/service_windows.go +++ b/cmd/dockerd/service_windows.go @@ -264,7 +264,8 @@ func initService(daemonCli *DaemonCli) (bool, bool, error) { return false, false, nil } - interactive, err := svc.IsAnInteractiveSession() + // Check if we're running as a Windows service or interactively. + isService, err := svc.IsWindowsService() if err != nil { return false, false, err } @@ -276,7 +277,7 @@ func initService(daemonCli *DaemonCli) (bool, bool, error) { } var log *eventlog.Log - if !interactive { + if isService { log, err = eventlog.Open(*flServiceName) if err != nil { return false, false, err @@ -288,10 +289,10 @@ func initService(daemonCli *DaemonCli) (bool, bool, error) { service = h go func() { - if interactive { - err = debug.Run(*flServiceName, h) - } else { + if isService { err = svc.Run(*flServiceName, h) + } else { + err = debug.Run(*flServiceName, h) } h.fromsvc <- err