Fossil SCM

attempt to fix issue where the remote-url saved is overwritten by the proxy url. (issue introduced by checkin [c129f29566439e5c])

mgagnon 2022-04-28 14:25 trunk
Commit 83ffea65cafad7f9558416cad6e91901372780295823bca4750158ea9959f54b
2 files changed +9 -3 +28 -10
+9 -3
--- src/sync.c
+++ src/sync.c
@@ -24,16 +24,22 @@
2424
/*
2525
** Explain what type of sync operation is about to occur
2626
*/
2727
static void sync_explain(unsigned syncFlags){
2828
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
+ }
2935
if( (syncFlags & (SYNC_PUSH|SYNC_PULL))==(SYNC_PUSH|SYNC_PULL) ){
30
- fossil_print("Sync with %s\n", g.url.canonical);
36
+ fossil_print("Sync with %s\n", url);
3137
}else if( syncFlags & SYNC_PUSH ){
32
- fossil_print("Push to %s\n", g.url.canonical);
38
+ fossil_print("Push to %s\n", url);
3339
}else if( syncFlags & SYNC_PULL ){
34
- fossil_print("Pull from %s\n", g.url.canonical);
40
+ fossil_print("Pull from %s\n", url);
3541
}
3642
}
3743
}
3844
3945
4046
--- src/sync.c
+++ src/sync.c
@@ -24,16 +24,22 @@
24 /*
25 ** Explain what type of sync operation is about to occur
26 */
27 static void sync_explain(unsigned syncFlags){
28 if( g.url.isAlias ){
 
 
 
 
 
 
29 if( (syncFlags & (SYNC_PUSH|SYNC_PULL))==(SYNC_PUSH|SYNC_PULL) ){
30 fossil_print("Sync with %s\n", g.url.canonical);
31 }else if( syncFlags & SYNC_PUSH ){
32 fossil_print("Push to %s\n", g.url.canonical);
33 }else if( syncFlags & SYNC_PULL ){
34 fossil_print("Pull from %s\n", g.url.canonical);
35 }
36 }
37 }
38
39
40
--- src/sync.c
+++ src/sync.c
@@ -24,16 +24,22 @@
24 /*
25 ** Explain what type of sync operation is about to occur
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 }else if( syncFlags & SYNC_PUSH ){
38 fossil_print("Push to %s\n", url);
39 }else if( syncFlags & SYNC_PULL ){
40 fossil_print("Pull from %s\n", url);
41 }
42 }
43 }
44
45
46
+28 -10
--- src/url.c
+++ src/url.c
@@ -59,10 +59,13 @@
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 */
6467
char *proxyAuth; /* Proxy-Authorizer: string */
6568
char *fossil; /* The fossil query parameter on ssh: */
6669
unsigned flags; /* Boolean flags controlling URL processing */
6770
int useProxy; /* Used to remember that a proxy is in use */
6871
char *proxyUrlPath;
@@ -548,10 +551,15 @@
548551
char *zOriginalUser = g.url.user;
549552
char *zOriginalPasswd = g.url.passwd;
550553
char *zOriginalUrlPath = g.url.path;
551554
int iOriginalPort = g.url.port;
552555
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
+ }
553561
g.url.user = 0;
554562
g.url.passwd = "";
555563
url_parse(zProxy, 0);
556564
if( zMsg ) fossil_print("%s%s\n", zMsg, g.url.canonical);
557565
g.url.path = zOriginalUrl;
@@ -722,20 +730,30 @@
722730
/*
723731
** Remember the URL and password if requested.
724732
*/
725733
void url_remember(void){
726734
if( g.url.flags & URL_REMEMBER ){
727
- if( g.url.flags & URL_USE_PARENT ){
728
- db_set("parent-project-url", g.url.canonical, 0);
729
- }else{
730
- db_set("last-sync-url", g.url.canonical, 0);
731
- }
732
- if( g.url.user!=0 && g.url.passwd!=0 && ( g.url.flags & URL_REMEMBER_PW ) ){
733
- if( g.url.flags & URL_USE_PARENT ){
734
- db_set("parent-project-pw", obscure(g.url.passwd), 0);
735
- }else{
736
- db_set("last-sync-pw", obscure(g.url.passwd), 0);
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);
737755
}
738756
}
739757
}
740758
}
741759
742760
--- src/url.c
+++ src/url.c
@@ -59,10 +59,13 @@
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;
@@ -548,10 +551,15 @@
548 char *zOriginalUser = g.url.user;
549 char *zOriginalPasswd = g.url.passwd;
550 char *zOriginalUrlPath = g.url.path;
551 int iOriginalPort = g.url.port;
552 unsigned uOriginalFlags = g.url.flags;
 
 
 
 
 
553 g.url.user = 0;
554 g.url.passwd = "";
555 url_parse(zProxy, 0);
556 if( zMsg ) fossil_print("%s%s\n", zMsg, g.url.canonical);
557 g.url.path = zOriginalUrl;
@@ -722,20 +730,30 @@
722 /*
723 ** Remember the URL and password if requested.
724 */
725 void url_remember(void){
726 if( g.url.flags & URL_REMEMBER ){
727 if( g.url.flags & URL_USE_PARENT ){
728 db_set("parent-project-url", g.url.canonical, 0);
729 }else{
730 db_set("last-sync-url", g.url.canonical, 0);
731 }
732 if( g.url.user!=0 && g.url.passwd!=0 && ( g.url.flags & URL_REMEMBER_PW ) ){
733 if( g.url.flags & URL_USE_PARENT ){
734 db_set("parent-project-pw", obscure(g.url.passwd), 0);
735 }else{
736 db_set("last-sync-pw", obscure(g.url.passwd), 0);
 
 
 
 
 
 
 
 
 
 
737 }
738 }
739 }
740 }
741
742
--- src/url.c
+++ src/url.c
@@ -59,10 +59,13 @@
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;
@@ -548,10 +551,15 @@
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;
@@ -722,20 +730,30 @@
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

Keyboard Shortcuts

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