fix bug with missing logs file

This commit is contained in:
aliamerj
2025-10-10 17:14:08 +03:00
parent 60c5782905
commit 7a95bf5652
6 changed files with 18 additions and 23 deletions
+2 -3
View File
@@ -197,11 +197,10 @@ func runInForegroundMode(ctx context.Context, cmd *cobra.Command, activeProf *pr
r := peer.NewRecorder(config.ManagementURL.String()) r := peer.NewRecorder(config.ManagementURL.String())
r.GetFullStatus() r.GetFullStatus()
//todo: do we need to pass logFile here ? connectClient := internal.NewConnectClient(ctx, config, r)
connectClient := internal.NewConnectClient(ctx, config, r, "")
SetupDebugHandler(ctx, config, r, connectClient, "") SetupDebugHandler(ctx, config, r, connectClient, "")
return connectClient.Run(nil) return connectClient.Run(nil, util.FindFirstLogPath(logFiles))
} }
func runInDaemonMode(ctx context.Context, cmd *cobra.Command, pm *profilemanager.ProfileManager, activeProf *profilemanager.Profile, profileSwitched bool) error { func runInDaemonMode(ctx context.Context, cmd *cobra.Command, pm *profilemanager.ProfileManager, activeProf *profilemanager.Profile, profileSwitched bool) error {
+2 -3
View File
@@ -170,15 +170,14 @@ func (c *Client) Start(startCtx context.Context) error {
recorder := peer.NewRecorder(c.config.ManagementURL.String()) recorder := peer.NewRecorder(c.config.ManagementURL.String())
//todo: do we need to pass logFile here ? client := internal.NewConnectClient(ctx, c.config, recorder)
client := internal.NewConnectClient(ctx, c.config, recorder, "")
// either startup error (permanent backoff err) or nil err (successful engine up) // either startup error (permanent backoff err) or nil err (successful engine up)
// TODO: make after-startup backoff err available // TODO: make after-startup backoff err available
run := make(chan struct{}) run := make(chan struct{})
clientErr := make(chan error, 1) clientErr := make(chan error, 1)
go func() { go func() {
if err := client.Run(run); err != nil { if err := client.Run(run, ""); err != nil {
clientErr <- err clientErr <- err
} }
}() }()
+6 -9
View File
@@ -46,27 +46,24 @@ type ConnectClient struct {
engineMutex sync.Mutex engineMutex sync.Mutex
persistSyncResponse bool persistSyncResponse bool
LogFile string
} }
func NewConnectClient( func NewConnectClient(
ctx context.Context, ctx context.Context,
config *profilemanager.Config, config *profilemanager.Config,
statusRecorder *peer.Status, statusRecorder *peer.Status,
logFile string,
) *ConnectClient { ) *ConnectClient {
return &ConnectClient{ return &ConnectClient{
ctx: ctx, ctx: ctx,
config: config, config: config,
LogFile: logFile,
statusRecorder: statusRecorder, statusRecorder: statusRecorder,
engineMutex: sync.Mutex{}, engineMutex: sync.Mutex{},
} }
} }
// Run with main logic. // Run with main logic.
func (c *ConnectClient) Run(runningChan chan struct{}) error { func (c *ConnectClient) Run(runningChan chan struct{}, logFile string) error {
return c.run(MobileDependency{}, runningChan) return c.run(MobileDependency{}, runningChan, logFile)
} }
// RunOnAndroid with main logic on mobile system // RunOnAndroid with main logic on mobile system
@@ -85,7 +82,7 @@ func (c *ConnectClient) RunOnAndroid(
HostDNSAddresses: dnsAddresses, HostDNSAddresses: dnsAddresses,
DnsReadyListener: dnsReadyListener, DnsReadyListener: dnsReadyListener,
} }
return c.run(mobileDependency, nil) return c.run(mobileDependency, nil, "")
} }
func (c *ConnectClient) RunOniOS( func (c *ConnectClient) RunOniOS(
@@ -103,10 +100,10 @@ func (c *ConnectClient) RunOniOS(
DnsManager: dnsManager, DnsManager: dnsManager,
StateFilePath: stateFilePath, StateFilePath: stateFilePath,
} }
return c.run(mobileDependency, nil) return c.run(mobileDependency, nil, "")
} }
func (c *ConnectClient) run(mobileDependency MobileDependency, runningChan chan struct{}) error { func (c *ConnectClient) run(mobileDependency MobileDependency, runningChan chan struct{}, logFile string) error {
defer func() { defer func() {
if r := recover(); r != nil { if r := recover(); r != nil {
rec := c.statusRecorder rec := c.statusRecorder
@@ -249,7 +246,7 @@ func (c *ConnectClient) run(mobileDependency MobileDependency, runningChan chan
relayURLs, token := parseRelayInfo(loginResp) relayURLs, token := parseRelayInfo(loginResp)
peerConfig := loginResp.GetPeerConfig() peerConfig := loginResp.GetPeerConfig()
engineConfig, err := createEngineConfig(myPrivateKey, c.config, peerConfig, c.LogFile) engineConfig, err := createEngineConfig(myPrivateKey, c.config, peerConfig, logFile)
if err != nil { if err != nil {
log.Error(err) log.Error(err)
return wrapErr(err) return wrapErr(err)
+5 -5
View File
@@ -259,11 +259,11 @@ func (g *BundleGenerator) Generate() (resp string, err error) {
err = fmt.Errorf("close zip file: %w", closeErr) err = fmt.Errorf("close zip file: %w", closeErr)
} }
if err != nil { // if err != nil {
if removeErr := os.Remove(bundlePath.Name()); removeErr != nil { // if removeErr :=h.Name()); os.Remove(bundlePatremoveErr != nil {
log.Errorf("Failed to remove zip file: %v", removeErr) // log.Errorf("Failed to remove zip file: %v", removeErr)
} // }
} // }
}() }()
g.archive = zip.NewWriter(bundlePath) g.archive = zip.NewWriter(bundlePath)
+1 -1
View File
@@ -128,7 +128,7 @@ func (c *Client) Run(fd int32, interfaceName string) error {
cfg.WgIface = interfaceName cfg.WgIface = interfaceName
//todo: do we need to pass logFile here ? //todo: do we need to pass logFile here ?
c.connectClient = internal.NewConnectClient(ctx, cfg, c.recorder, "") c.connectClient = internal.NewConnectClient(ctx, cfg, c.recorder)
return c.connectClient.RunOniOS(fd, c.networkChangeListener, c.dnsManager, c.stateFile) return c.connectClient.RunOniOS(fd, c.networkChangeListener, c.dnsManager, c.stateFile)
} }
+2 -2
View File
@@ -1250,9 +1250,9 @@ func (s *Server) GetFeatures(ctx context.Context, msg *proto.GetFeaturesRequest)
func (s *Server) connect(ctx context.Context, config *profilemanager.Config, statusRecorder *peer.Status, runningChan chan struct{}) error { func (s *Server) connect(ctx context.Context, config *profilemanager.Config, statusRecorder *peer.Status, runningChan chan struct{}) error {
log.Tracef("running client connection") log.Tracef("running client connection")
s.connectClient = internal.NewConnectClient(ctx, config, statusRecorder, s.logFile) s.connectClient = internal.NewConnectClient(ctx, config, statusRecorder)
s.connectClient.SetSyncResponsePersistence(s.persistSyncResponse) s.connectClient.SetSyncResponsePersistence(s.persistSyncResponse)
if err := s.connectClient.Run(runningChan); err != nil { if err := s.connectClient.Run(runningChan, s.logFile); err != nil {
return err return err
} }
return nil return nil