@@ -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
16271627func (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