Fossil SCM

Simplification by omitting g.url.user and g.url.password backup copy since they are only swapped during short time and are restored right away. Also rename url.canonical backup copy to "proxyUrlCanonical" following name convention of already existing "proxyUrlPath" field.

mgagnon 2022-05-03 04:02 fix_remote_url_overwrite_with_proxy
Commit 78a51953926677127eca07f45268499272062f96d30093ab55e8eb61db4aef03
2 files changed +1 -1 +8 -18
+1 -1
--- src/sync.c
+++ src/sync.c
@@ -26,11 +26,11 @@
2626
*/
2727
static void sync_explain(unsigned syncFlags){
2828
if( g.url.isAlias ){
2929
const char *url;
3030
if( g.url.useProxy ){
31
- url = g.url.canonicalCopy;
31
+ url = g.url.proxyUrlCanonical;
3232
}else{
3333
url = g.url.canonical;
3434
}
3535
if( (syncFlags & (SYNC_PUSH|SYNC_PULL))==(SYNC_PUSH|SYNC_PULL) ){
3636
fossil_print("Sync with %s\n", url);
3737
--- src/sync.c
+++ src/sync.c
@@ -26,11 +26,11 @@
26 */
27 static void sync_explain(unsigned syncFlags){
28 if( g.url.isAlias ){
29 const char *url;
30 if( g.url.useProxy ){
31 url = g.url.canonicalCopy;
32 }else{
33 url = g.url.canonical;
34 }
35 if( (syncFlags & (SYNC_PUSH|SYNC_PULL))==(SYNC_PUSH|SYNC_PULL) ){
36 fossil_print("Sync with %s\n", url);
37
--- src/sync.c
+++ src/sync.c
@@ -26,11 +26,11 @@
26 */
27 static void sync_explain(unsigned syncFlags){
28 if( g.url.isAlias ){
29 const char *url;
30 if( g.url.useProxy ){
31 url = g.url.proxyUrlCanonical;
32 }else{
33 url = g.url.canonical;
34 }
35 if( (syncFlags & (SYNC_PUSH|SYNC_PULL))==(SYNC_PUSH|SYNC_PULL) ){
36 fossil_print("Sync with %s\n", url);
37
+8 -18
--- src/url.c
+++ src/url.c
@@ -59,18 +59,16 @@
5959
int dfltPort; /* The default port for the given protocol */
6060
char *path; /* Pathname for http: */
6161
char *user; /* User id for http: */
6262
char *passwd; /* Password for http: */
6363
char *canonical; /* Canonical representation of the URL */
64
- char *userCopy; /* Copy of user when proxy is enable */
65
- char *passwdCopy; /* copy of password when proxy is enable */
66
- char *canonicalCopy; /* Copy of canonical when proxy is enable */
6764
char *proxyAuth; /* Proxy-Authorizer: string */
6865
char *fossil; /* The fossil query parameter on ssh: */
6966
unsigned flags; /* Boolean flags controlling URL processing */
7067
int useProxy; /* Used to remember that a proxy is in use */
71
- char *proxyUrlPath;
68
+ char *proxyUrlPath; /* Remember path when proxy is use */
69
+ char *proxyUrlCanonical; /* Remember canonical path when proxy is use */
7270
int proxyOrigPort; /* Tunneled port number for https through proxy */
7371
};
7472
#endif /* INTERFACE */
7573
7674
@@ -551,15 +549,10 @@
551549
char *zOriginalUser = g.url.user;
552550
char *zOriginalPasswd = g.url.passwd;
553551
char *zOriginalUrlPath = g.url.path;
554552
int iOriginalPort = g.url.port;
555553
unsigned uOriginalFlags = g.url.flags;
556
- if( g.url.useProxy == 0 ){
557
- g.url.canonicalCopy = g.url.canonical;
558
- g.url.userCopy = g.url.user;
559
- g.url.passwdCopy = g.url.passwd;
560
- }
561554
g.url.user = 0;
562555
g.url.passwd = "";
563556
url_parse(zProxy, 0);
564557
if( zMsg ) fossil_print("%s%s\n", zMsg, g.url.canonical);
565558
g.url.path = zOriginalUrl;
@@ -572,10 +565,11 @@
572565
}
573566
g.url.user = zOriginalUser;
574567
g.url.passwd = zOriginalPasswd;
575568
g.url.isHttps = fOriginalIsHttps;
576569
g.url.useProxy = 1;
570
+ g.url.proxyUrlCanonical = zOriginalUrl;;
577571
g.url.proxyUrlPath = zOriginalUrlPath;
578572
g.url.proxyOrigPort = iOriginalPort;
579573
g.url.flags = uOriginalFlags;
580574
}
581575
}
@@ -730,30 +724,26 @@
730724
/*
731725
** Remember the URL and password if requested.
732726
*/
733727
void url_remember(void){
734728
if( g.url.flags & URL_REMEMBER ){
735
- const char *url, *user, *passwd;
729
+ const char *url;
736730
if( g.url.useProxy ){
737
- user = g.url.userCopy;
738
- passwd = g.url.passwdCopy;
739
- url = g.url.canonicalCopy;
731
+ url = g.url.proxyUrlCanonical;
740732
}else{
741
- user = g.url.user;
742
- passwd = g.url.passwd;
743733
url = g.url.canonical;
744734
}
745735
if( g.url.flags & URL_USE_PARENT ){
746736
db_set("parent-project-url", url, 0);
747737
}else{
748738
db_set("last-sync-url", url, 0);
749739
}
750
- if( user!=0 && passwd!=0 && ( g.url.flags & URL_REMEMBER_PW ) ){
740
+ if( g.url.user!=0 && g.url.passwd!=0 && ( g.url.flags & URL_REMEMBER_PW ) ){
751741
if( g.url.flags & URL_USE_PARENT ){
752
- db_set("parent-project-pw", obscure(passwd), 0);
742
+ db_set("parent-project-pw", obscure(g.url.passwd), 0);
753743
}else{
754
- db_set("last-sync-pw", obscure(passwd), 0);
744
+ db_set("last-sync-pw", obscure(g.url.passwd), 0);
755745
}
756746
}
757747
}
758748
}
759749
760750
--- src/url.c
+++ src/url.c
@@ -59,18 +59,16 @@
59 int dfltPort; /* The default port for the given protocol */
60 char *path; /* Pathname for http: */
61 char *user; /* User id for http: */
62 char *passwd; /* Password for http: */
63 char *canonical; /* Canonical representation of the URL */
64 char *userCopy; /* Copy of user when proxy is enable */
65 char *passwdCopy; /* copy of password when proxy is enable */
66 char *canonicalCopy; /* Copy of canonical when proxy is enable */
67 char *proxyAuth; /* Proxy-Authorizer: string */
68 char *fossil; /* The fossil query parameter on ssh: */
69 unsigned flags; /* Boolean flags controlling URL processing */
70 int useProxy; /* Used to remember that a proxy is in use */
71 char *proxyUrlPath;
 
72 int proxyOrigPort; /* Tunneled port number for https through proxy */
73 };
74 #endif /* INTERFACE */
75
76
@@ -551,15 +549,10 @@
551 char *zOriginalUser = g.url.user;
552 char *zOriginalPasswd = g.url.passwd;
553 char *zOriginalUrlPath = g.url.path;
554 int iOriginalPort = g.url.port;
555 unsigned uOriginalFlags = g.url.flags;
556 if( g.url.useProxy == 0 ){
557 g.url.canonicalCopy = g.url.canonical;
558 g.url.userCopy = g.url.user;
559 g.url.passwdCopy = g.url.passwd;
560 }
561 g.url.user = 0;
562 g.url.passwd = "";
563 url_parse(zProxy, 0);
564 if( zMsg ) fossil_print("%s%s\n", zMsg, g.url.canonical);
565 g.url.path = zOriginalUrl;
@@ -572,10 +565,11 @@
572 }
573 g.url.user = zOriginalUser;
574 g.url.passwd = zOriginalPasswd;
575 g.url.isHttps = fOriginalIsHttps;
576 g.url.useProxy = 1;
 
577 g.url.proxyUrlPath = zOriginalUrlPath;
578 g.url.proxyOrigPort = iOriginalPort;
579 g.url.flags = uOriginalFlags;
580 }
581 }
@@ -730,30 +724,26 @@
730 /*
731 ** Remember the URL and password if requested.
732 */
733 void url_remember(void){
734 if( g.url.flags & URL_REMEMBER ){
735 const char *url, *user, *passwd;
736 if( g.url.useProxy ){
737 user = g.url.userCopy;
738 passwd = g.url.passwdCopy;
739 url = g.url.canonicalCopy;
740 }else{
741 user = g.url.user;
742 passwd = g.url.passwd;
743 url = g.url.canonical;
744 }
745 if( g.url.flags & URL_USE_PARENT ){
746 db_set("parent-project-url", url, 0);
747 }else{
748 db_set("last-sync-url", url, 0);
749 }
750 if( user!=0 && passwd!=0 && ( g.url.flags & URL_REMEMBER_PW ) ){
751 if( g.url.flags & URL_USE_PARENT ){
752 db_set("parent-project-pw", obscure(passwd), 0);
753 }else{
754 db_set("last-sync-pw", obscure(passwd), 0);
755 }
756 }
757 }
758 }
759
760
--- src/url.c
+++ src/url.c
@@ -59,18 +59,16 @@
59 int dfltPort; /* The default port for the given protocol */
60 char *path; /* Pathname for http: */
61 char *user; /* User id for http: */
62 char *passwd; /* Password for http: */
63 char *canonical; /* Canonical representation of the URL */
 
 
 
64 char *proxyAuth; /* Proxy-Authorizer: string */
65 char *fossil; /* The fossil query parameter on ssh: */
66 unsigned flags; /* Boolean flags controlling URL processing */
67 int useProxy; /* Used to remember that a proxy is in use */
68 char *proxyUrlPath; /* Remember path when proxy is use */
69 char *proxyUrlCanonical; /* Remember canonical path when proxy is use */
70 int proxyOrigPort; /* Tunneled port number for https through proxy */
71 };
72 #endif /* INTERFACE */
73
74
@@ -551,15 +549,10 @@
549 char *zOriginalUser = g.url.user;
550 char *zOriginalPasswd = g.url.passwd;
551 char *zOriginalUrlPath = g.url.path;
552 int iOriginalPort = g.url.port;
553 unsigned uOriginalFlags = g.url.flags;
 
 
 
 
 
554 g.url.user = 0;
555 g.url.passwd = "";
556 url_parse(zProxy, 0);
557 if( zMsg ) fossil_print("%s%s\n", zMsg, g.url.canonical);
558 g.url.path = zOriginalUrl;
@@ -572,10 +565,11 @@
565 }
566 g.url.user = zOriginalUser;
567 g.url.passwd = zOriginalPasswd;
568 g.url.isHttps = fOriginalIsHttps;
569 g.url.useProxy = 1;
570 g.url.proxyUrlCanonical = zOriginalUrl;;
571 g.url.proxyUrlPath = zOriginalUrlPath;
572 g.url.proxyOrigPort = iOriginalPort;
573 g.url.flags = uOriginalFlags;
574 }
575 }
@@ -730,30 +724,26 @@
724 /*
725 ** Remember the URL and password if requested.
726 */
727 void url_remember(void){
728 if( g.url.flags & URL_REMEMBER ){
729 const char *url;
730 if( g.url.useProxy ){
731 url = g.url.proxyUrlCanonical;
 
 
732 }else{
 
 
733 url = g.url.canonical;
734 }
735 if( g.url.flags & URL_USE_PARENT ){
736 db_set("parent-project-url", url, 0);
737 }else{
738 db_set("last-sync-url", url, 0);
739 }
740 if( g.url.user!=0 && g.url.passwd!=0 && ( g.url.flags & URL_REMEMBER_PW ) ){
741 if( g.url.flags & URL_USE_PARENT ){
742 db_set("parent-project-pw", obscure(g.url.passwd), 0);
743 }else{
744 db_set("last-sync-pw", obscure(g.url.passwd), 0);
745 }
746 }
747 }
748 }
749
750

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button