@@ -1423,34 +1423,41 @@ func genWgConfs(h *http.Client, existingCreds *WsWgCreds, sess *WsSession, serve
14231423
14241424 tokst := "sess-" + tokenState (bearer )
14251425
1426+ runkey := 0
14261427 keyed := 0
14271428keyagain:
14281429 useExistingCreds := existingCreds != nil && keyed == 0
1430+ runkey += 1
14291431
14301432 var priv x.WgKey
14311433 if ! useExistingCreds {
14321434 var err error
14331435 priv , err = x .NewWgPrivateKey ()
14341436 if err != nil {
1435- return nil , nil , log .EE ("ws: wgconfs: gen key err: %v" , err )
1437+ return nil , nil , log .EE ("ws: wgconfs: gen key #%d err: %v" , runkey , err )
14361438 }
14371439 } else {
14381440 var err error
14391441 // use the existing key, which is already registered
14401442 priv , err = x .NewWgPrivateKeyOf (existingCreds .PrivateKey )
14411443 if err != nil {
1442- return nil , nil , log .EE ("ws: wgconfs: existing key err: %v" , err )
1444+ return nil , nil , log .EE ("ws: wgconfs: existing key #%d err: %v" , runkey , err )
14431445 }
14441446 }
14451447 pub := priv .Mult ()
14461448 pubkeybase64 := pub .Base64 ()
14471449
1448- log .I ("ws: wgconfs: gen creds: pubkey: %s, existing key? %t" , trunc8 (pubkeybase64 ), useExistingCreds )
1450+ log .I ("ws: wgconfs: gen creds: pubkey: %s, existing key #%d ? %t" , trunc8 (pubkeybase64 ), runkey , useExistingCreds )
14491451
14501452 force := "0" // reset to 0, if force init is not needed
14511453
1454+ runinit := 0
14521455initagain:
14531456 keyNeedsInit := ! useExistingCreds || force == "1"
1457+ runinit += 1
1458+
1459+ details := fmt .Sprintf ("pub: %s, keyed#%d? %t; usingExisting#%d? %t; forceinit? %t" ,
1460+ trunc8 (pubkeybase64 ), runkey , keyNeedsInit , runinit , useExistingCreds , force == "1" )
14541461
14551462 var creds * WsWgCreds
14561463 if keyNeedsInit {
@@ -1465,20 +1472,20 @@ initagain:
14651472 u := baseurl (test , cid , ent .Did ).JoinPath (wswginitpath )
14661473 initreq , err := http .NewRequest ("POST" , u .String (), strings .NewReader (initdata .Encode ()))
14671474 if err != nil {
1468- return nil , nil , log .EE ("ws: wgconfs: req err: %v" , err )
1475+ return nil , nil , log .EE ("ws: wgconfs: %s req err: %v" , details , err )
14691476 }
14701477 initreq .Header .Set ("Content-Type" , "application/x-www-form-urlencoded" )
14711478 authHeader (initreq , bearer )
14721479 didHeader (initreq , ent .DidToken )
14731480
14741481 if settings .Debug {
1475- log .V ("ws: wgconfs: init req: %s; tok %s; force %s" , u .String (), tokst , force )
1482+ log .V ("ws: wgconfs: %s init req: %s; tok %s; force %s" , details , u .String (), tokst , force )
14761483 }
14771484
14781485 initres , err := h .Do (initreq )
14791486
14801487 if err != nil || initres == nil {
1481- return nil , nil , log .EE ("ws: wgconfs: res err (nil? %t / tok? %s): %v" , initres == nil , tokst , err )
1488+ return nil , nil , log .EE ("ws: wgconfs: %s res err (nil? %t / tok? %s): %v" , details , initres == nil , tokst , err )
14821489 }
14831490 updateDidTokenIfNeeded (ent , initres )
14841491
@@ -1487,12 +1494,12 @@ initagain:
14871494 core .Close (initres .Body )
14881495 if wserr != nil && wserr .Code == ekeylimit {
14891496 if force != "1" {
1490- log .I ("ws: wgconfs: redo init with force for %s; err: %v" , trunc8 ( pubkeybase64 ) , err )
1497+ log .I ("ws: wgconfs: redo init with force %s; err: %v" , details , err )
14911498 force = "1"
14921499 goto initagain
14931500 }
14941501 }
1495- log .E ("ws: wgconfs: init %s, force? %t, err: %v" , trunc8 ( pubkeybase64 ), force == "1" , err )
1502+ log .E ("ws: wgconfs: init %s; err: %v" , details , err )
14961503 return nil , nil , err
14971504 }
14981505
@@ -1507,7 +1514,7 @@ initagain:
15071514 d := wgCreds .Data
15081515 creds = & d .Config
15091516 if d .Success != 1 {
1510- return nil , nil , log .EE ("ws: wgconfs: success != 1; debug: %v" , d .Debug )
1517+ return nil , nil , log .EE ("ws: wgconfs: %s success != 1; debug: %v" , details , d .Debug )
15111518 }
15121519 if len (d .Config .PrivateKey ) <= 0 { // private key is generated locally (by the client)
15131520 d .Config .PrivateKey = priv .Base64 ()
@@ -1522,10 +1529,10 @@ initagain:
15221529 }
15231530
15241531 if creds == nil || len (creds .PublicKey ) <= 0 || len (creds .PrivateKey ) <= 0 {
1525- return nil , nil , log .EE ("ws: wgconfs: missing pub/priv creds for %s, useExisting? %t " , trunc8 ( pubkeybase64 ), useExistingCreds )
1532+ return nil , nil , log .EE ("ws: wgconfs: missing pub/priv creds %s " , details )
15261533 }
15271534
1528- log .I ("ws: wgconfs: got creds for %s, usingExisting? %t" , trunc8 ( pubkeybase64 ), useExistingCreds )
1535+ log .I ("ws: wgconfs: got creds;" + details )
15291536
15301537 someEndpoint := fixedValidWsEndpoint (test )
15311538 // github.com/Windscribe/Android-App/blob/746d505dc69/base/src/main/java/com/windscribe/vpn/backend/utils/WindVpnController.kt#L159
@@ -1546,19 +1553,19 @@ initagain:
15461553 u := baseurl (test , cid , ent .Did ).JoinPath (wswgconnectpath )
15471554 creq , err := http .NewRequest ("POST" , u .String (), strings .NewReader (cdata .Encode ()))
15481555 if err != nil {
1549- return nil , nil , log .EE ("ws: wgconfs: connect req err: %v" , err )
1556+ return nil , nil , log .EE ("ws: wgconfs: %s connect req err: %v" , details , err )
15501557 }
15511558 creq .Header .Set ("Content-Type" , "application/x-www-form-urlencoded" )
15521559 authHeader (creq , sess .SessionToken )
15531560 didHeader (creq , ent .DidToken )
15541561
15551562 if settings .Debug {
1556- log .V ("ws: wgconfs: connect req: %s tok %s" , u .String (), tokst )
1563+ log .V ("ws: wgconfs: %s connect req: %s tok %s" , details , u .String (), tokst )
15571564 }
15581565
15591566 cres , err := h .Do (creq )
15601567 if err != nil || cres == nil {
1561- return nil , nil , log .EE ("ws: wgconfs: connect res err (nil? %t / tok? %s): %v" , cres == nil , tokst , err )
1568+ return nil , nil , log .EE ("ws: wgconfs: %s connect res err (nil? %t / tok? %s): %v" , details , cres == nil , tokst , err )
15621569 }
15631570 updateDidTokenIfNeeded (ent , cres )
15641571 if cres .StatusCode != http .StatusOK {
@@ -1577,26 +1584,26 @@ initagain:
15771584 _ , err = wsRes (cres , & wgConnect , "wgconfs" )
15781585 defer core .Close (cres .Body )
15791586 if err != nil {
1580- return nil , nil , log .EE ("ws: wgconfs: connect res err: %v" , err )
1587+ return nil , nil , log .EE ("ws: wgconfs: %s connect res err: %v" , details , err )
15811588 }
15821589
15831590 if wgConnect .Data .Success != 1 {
1584- return nil , nil , log .EE ("ws: wgconfs: connect success != 1; debug: %v" , wgConnect .Data .Debug )
1591+ return nil , nil , log .EE ("ws: wgconfs: %s connect success != 1; debug: %v" , details , wgConnect .Data .Debug )
15851592 }
15861593
15871594 if len (wgConnect .Data .Config .Address ) <= 0 || len (wgConnect .Data .Config .DNS ) <= 0 {
1588- return nil , nil , log .EE ("ws: wgconfs: connect missing config; debug: %v" , wgConnect .Data .Debug )
1595+ return nil , nil , log .EE ("ws: wgconfs: %s connect missing config; debug: %v" , details , wgConnect .Data .Debug )
15891596 }
15901597
15911598 // TODO: if wgconnect.Data.Config.Address has not changed and useExistingCreds is true,
15921599 // then we do not have to generate regional configs again (unless location hash has changed).
15931600 regconfs , err := convertToRegionalWgConfs (creds , & wgConnect .Data , servers , test )
15941601
15951602 if err != nil || len (regconfs ) <= 0 {
1596- return nil , nil , log .EE ("ws: wgconfs: (test? %t) no regions found for %s; %v" , test , trunc8 ( pubkeybase64 ) , err )
1603+ return nil , nil , log .EE ("ws: wgconfs: (test? %t) no regions found %s; %v" , test , details , err )
15971604 }
15981605
1599- log .I ("ws: wgconfs: (test? %t / tok? %s) found %d regions for %s" , test , tokst , len (regconfs ), trunc8 ( pubkeybase64 ) )
1606+ log .I ("ws: wgconfs: (test? %t / tok? %s) found %d regions %s" , test , tokst , len (regconfs ), details )
16001607 return creds , regconfs , nil
16011608}
16021609
0 commit comments