fix: while connected to MySQL if internet was lost no qso would be logged anymore
This commit is contained in:
@@ -3,6 +3,7 @@ package extsvc
|
||||
import (
|
||||
"context"
|
||||
"encoding/xml"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
@@ -11,6 +12,7 @@ import (
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"syscall"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -212,6 +214,15 @@ func UploadLoTW(ctx context.Context, cfg ServiceConfig, tempDir, adifRecord stri
|
||||
if runErr != nil {
|
||||
if ee, ok := runErr.(*exec.ExitError); ok {
|
||||
code = ee.ExitCode()
|
||||
} else if errors.Is(runErr, syscall.Errno(740)) || strings.Contains(strings.ToLower(runErr.Error()), "requires elevation") {
|
||||
// ERROR_ELEVATION_REQUIRED (740): tqsl.exe is set to require admin
|
||||
// rights (its "Run as administrator" compatibility flag, or an
|
||||
// AppCompat RUNASADMIN entry), but OpsLog isn't elevated so Windows
|
||||
// refuses to launch it. Actionable message instead of the raw error.
|
||||
return UploadResult{}, fmt.Errorf(
|
||||
"lotw: Windows won't launch tqsl.exe because it's marked \"Run as administrator\". " +
|
||||
"Fix: right-click %q → Properties → Compatibility → UNTICK \"Run this program as an administrator\" (Apply). " +
|
||||
"Or run OpsLog itself as administrator.", tqsl)
|
||||
} else {
|
||||
return UploadResult{}, fmt.Errorf("lotw: run tqsl: %w", runErr)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user