Skip to content

Commit 7953268

Browse files
committed
ipn/yegor: propogate err when Update fails
1 parent 6fe637f commit 7953268

1 file changed

Lines changed: 12 additions & 7 deletions

File tree

intra/ipn/rpn/yegor.go

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -885,7 +885,7 @@ func (a *WsClient) Update() (newstate []byte, err error) {
885885
if c == nil {
886886
return nil, errWsNoConfig
887887
}
888-
b, refreshed, err := makeWsWgFrom(a.http, c)
888+
b, refreshed, err := makeWsWgFrom(a.http, c, true /*err on no update*/)
889889
if err != nil || !refreshed {
890890
log.E("ws: update: refreshed? %t; err: %v", refreshed, err)
891891
return nil, core.OneErr(err, errWsRetryUpdate)
@@ -1625,11 +1625,11 @@ func (w *BaseClient) MakeWsWgFrom(entitlementOrWsConfigJson []byte) (*WsClient,
16251625
}
16261626

16271627
func (w *BaseClient) makeWsWgFrom(existingConf *WsWgConfig) (*WsClient, error) {
1628-
ws, _, err := makeWsWgFrom(&w.h2, existingConf)
1628+
ws, _, err := makeWsWgFrom(&w.h2, existingConf, false)
16291629
return ws, err
16301630
}
16311631

1632-
func makeWsWgFrom(h *http.Client, existingConf *WsWgConfig) (ws *WsClient, refreshedSess bool, err error) {
1632+
func makeWsWgFrom(h *http.Client, existingConf *WsWgConfig, errOnNoUpdate bool) (ws *WsClient, refreshedSess bool, err error) {
16331633
existingEnt := existingConf.Entitlement
16341634
if existingEnt == nil || len(existingEnt.SessionToken) <= 0 {
16351635
err = errWsNoEntitlement
@@ -1662,6 +1662,9 @@ func makeWsWgFrom(h *http.Client, existingConf *WsWgConfig) (ws *WsClient, refre
16621662
} else {
16631663
log.W("ws: make: get session err: %v; using existing; tok? %s", err, tokst)
16641664
newSess = existingConf.Session // use existing session
1665+
if errOnNoUpdate {
1666+
return nil, refreshedSess, err
1667+
}
16651668
}
16661669

16671670
exp, err := time.Parse(time.DateOnly, newSess.ExpiryDate)
@@ -1694,14 +1697,16 @@ func makeWsWgFrom(h *http.Client, existingConf *WsWgConfig) (ws *WsClient, refre
16941697

16951698
// create wg confs from new or existing server list
16961699
// always reconfigure (as /WgConfigs/connect must be done once every wg_ttl, which is 60m)
1697-
maybeNewCreds, maybeNewWgConfs, err := genWgConfs(h, existingCreds, newSess, maybeNewServers, existingConf.Entitlement)
1698-
loge(err)("ws: make: gen wg confs; tok? %s; new loc? %t len (%d/%d); err? %v",
1699-
tokst, hasnew, len(existingServers), len(maybeNewServers), err)
1700+
maybeNewCreds, maybeNewWgConfs, uerr := genWgConfs(h, existingCreds, newSess, maybeNewServers, existingConf.Entitlement)
1701+
loge(uerr)("ws: make: gen wg confs; tok? %s; downloadloc? %t / hasnewloc? %t len (%d/%d); err? %v",
1702+
tokst, downloadServerList, hasnew, len(existingServers), len(maybeNewServers), uerr)
17001703

1701-
if err == nil {
1704+
if uerr == nil {
17021705
existingConf.Servers = maybeNewServers
17031706
existingConf.Configs = maybeNewWgConfs
17041707
existingConf.Creds = maybeNewCreds
1708+
} else if errOnNoUpdate {
1709+
return nil, refreshedSess, uerr
17051710
}
17061711
} else {
17071712
log.W("ws: make: session expired at %s; tok? %s", fmtTime(exp), tokst)

0 commit comments

Comments
 (0)