From ddea656d9409706a28c49493ad1b42210e69651d Mon Sep 17 00:00:00 2001 From: Vladislav Yarmak Date: Sun, 14 Sep 2025 22:56:19 +0300 Subject: [PATCH] proper logging of selected endpoint --- dialer/upstream.go | 4 ++++ main.go | 13 +++++++++++-- seclient/messages.go | 4 ++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/dialer/upstream.go b/dialer/upstream.go index 7ec045c..aba7226 100644 --- a/dialer/upstream.go +++ b/dialer/upstream.go @@ -221,6 +221,10 @@ func (d *ProxyDialer) Dial(network, address string) (net.Conn, error) { return d.DialContext(context.Background(), network, address) } +func (d *ProxyDialer) Address() (string, error) { + return d.address() +} + func readResponse(r io.Reader, req *http.Request) (*http.Response, error) { endOfResponse := []byte("\r\n\r\n") buf := &bytes.Buffer{} diff --git a/main.go b/main.go index 2c4fbb0..a895b9e 100644 --- a/main.go +++ b/main.go @@ -343,7 +343,6 @@ func run() int { err = try("discover", func() error { ctx, cl := context.WithTimeout(context.Background(), args.timeout) defer cl() - // TODO: learn about requested_geo value format res, err := seclient.Discover(ctx, fmt.Sprintf("\"%s\",,", args.country)) if err != nil { return err @@ -355,6 +354,8 @@ func run() int { ips = res return nil } + + mainLogger.Info("Discovered endpoints: %v. Starting server selection routine %q.", res, args.serverSelection.value) var ss dialer.SelectionFunc switch args.serverSelection.value { case dialer.ServerSelectionFirst: @@ -376,7 +377,15 @@ func run() int { ctx, cl = context.WithTimeout(context.Background(), args.serverSelectionTimeout) defer cl() handlerDialer, err = ss(ctx, dialers) - return err + if err != nil { + return err + } + if addresser, ok := handlerDialer.(interface{ Address() (string, error) }); ok { + if epAddr, err := addresser.Address(); err == nil { + mainLogger.Info("Selected endpoint address: %s", epAddr) + } + } + return nil }) if err != nil { return 12 diff --git a/seclient/messages.go b/seclient/messages.go index 36fa3a1..b4d9f9f 100644 --- a/seclient/messages.go +++ b/seclient/messages.go @@ -97,6 +97,10 @@ func (e *SEIPEntry) NetAddr() string { } } +func (e SEIPEntry) String() string { + return e.NetAddr() +} + type SEDiscoverResponse struct { Data struct { IPs []SEIPEntry `json:"ips"`