Fossil SCM

Prompt to remember password when password is embedded in URL. Also improve password failure prompting during clone/sync operations.

andybradford 2013-11-01 05:14 UTC trunk
Commit 1ccbb651c5d6c1e93bfc9ab60f60445881796072
2 files changed +4 +2 -1
+4
--- src/url.c
+++ src/url.c
@@ -114,10 +114,11 @@
114114
/* Parse up the user-id and password */
115115
for(j=iStart; j<i && zUrl[j]!=':'; j++){}
116116
g.urlUser = mprintf("%.*s", j-iStart, &zUrl[iStart]);
117117
dehttpize(g.urlUser);
118118
if( j<i ){
119
+ urlFlags |= URL_ASK_REMEMBER_PW;
119120
g.urlPasswd = mprintf("%.*s", i-j-1, &zUrl[j+1]);
120121
dehttpize(g.urlPasswd);
121122
}
122123
if( g.urlIsSsh && g.urlPasswd ){
123124
zLogin = mprintf("%t:*@", g.urlUser);
@@ -224,10 +225,13 @@
224225
g.urlCanonical = mprintf("file://%T", g.urlName);
225226
blob_reset(&cfile);
226227
}else if( g.urlUser!=0 && g.urlPasswd==0 && (urlFlags & URL_PROMPT_PW) ){
227228
url_prompt_for_password();
228229
bPrompted = 1;
230
+ }else if( g.urlUser!=0 && (urlFlags & URL_ASK_REMEMBER_PW ) &&
231
+ save_password_prompt() ){
232
+ g.urlFlags = urlFlags |= URL_REMEMBER_PW;
229233
}
230234
if( urlFlags & URL_REMEMBER ){
231235
if( bSetUrl ){
232236
db_set("last-sync-url", g.urlCanonical, 0);
233237
}
234238
--- src/url.c
+++ src/url.c
@@ -114,10 +114,11 @@
114 /* Parse up the user-id and password */
115 for(j=iStart; j<i && zUrl[j]!=':'; j++){}
116 g.urlUser = mprintf("%.*s", j-iStart, &zUrl[iStart]);
117 dehttpize(g.urlUser);
118 if( j<i ){
 
119 g.urlPasswd = mprintf("%.*s", i-j-1, &zUrl[j+1]);
120 dehttpize(g.urlPasswd);
121 }
122 if( g.urlIsSsh && g.urlPasswd ){
123 zLogin = mprintf("%t:*@", g.urlUser);
@@ -224,10 +225,13 @@
224 g.urlCanonical = mprintf("file://%T", g.urlName);
225 blob_reset(&cfile);
226 }else if( g.urlUser!=0 && g.urlPasswd==0 && (urlFlags & URL_PROMPT_PW) ){
227 url_prompt_for_password();
228 bPrompted = 1;
 
 
 
229 }
230 if( urlFlags & URL_REMEMBER ){
231 if( bSetUrl ){
232 db_set("last-sync-url", g.urlCanonical, 0);
233 }
234
--- src/url.c
+++ src/url.c
@@ -114,10 +114,11 @@
114 /* Parse up the user-id and password */
115 for(j=iStart; j<i && zUrl[j]!=':'; j++){}
116 g.urlUser = mprintf("%.*s", j-iStart, &zUrl[iStart]);
117 dehttpize(g.urlUser);
118 if( j<i ){
119 urlFlags |= URL_ASK_REMEMBER_PW;
120 g.urlPasswd = mprintf("%.*s", i-j-1, &zUrl[j+1]);
121 dehttpize(g.urlPasswd);
122 }
123 if( g.urlIsSsh && g.urlPasswd ){
124 zLogin = mprintf("%t:*@", g.urlUser);
@@ -224,10 +225,13 @@
225 g.urlCanonical = mprintf("file://%T", g.urlName);
226 blob_reset(&cfile);
227 }else if( g.urlUser!=0 && g.urlPasswd==0 && (urlFlags & URL_PROMPT_PW) ){
228 url_prompt_for_password();
229 bPrompted = 1;
230 }else if( g.urlUser!=0 && (urlFlags & URL_ASK_REMEMBER_PW ) &&
231 save_password_prompt() ){
232 g.urlFlags = urlFlags |= URL_REMEMBER_PW;
233 }
234 if( urlFlags & URL_REMEMBER ){
235 if( bSetUrl ){
236 db_set("last-sync-url", g.urlCanonical, 0);
237 }
238
+2 -1
--- src/xfer.c
+++ src/xfer.c
@@ -1780,11 +1780,12 @@
17801780
if( fossil_strcmp(zMsg, "login failed")==0 ){
17811781
if( nCycle<2 ){
17821782
g.urlPasswd = 0;
17831783
go = 1;
17841784
if( g.cgiOutput==0 ){
1785
- g.urlFlags |= URL_PROMPT_PW;
1785
+ g.urlFlags |= URL_PROMPT_PW | URL_ASK_REMEMBER_PW;
1786
+ g.urlFlags |= URL_REMEMBER;
17861787
url_prompt_for_password();
17871788
}
17881789
}
17891790
}else{
17901791
blob_appendf(&xfer.err, "server says: %s\n", zMsg);
17911792
--- src/xfer.c
+++ src/xfer.c
@@ -1780,11 +1780,12 @@
1780 if( fossil_strcmp(zMsg, "login failed")==0 ){
1781 if( nCycle<2 ){
1782 g.urlPasswd = 0;
1783 go = 1;
1784 if( g.cgiOutput==0 ){
1785 g.urlFlags |= URL_PROMPT_PW;
 
1786 url_prompt_for_password();
1787 }
1788 }
1789 }else{
1790 blob_appendf(&xfer.err, "server says: %s\n", zMsg);
1791
--- src/xfer.c
+++ src/xfer.c
@@ -1780,11 +1780,12 @@
1780 if( fossil_strcmp(zMsg, "login failed")==0 ){
1781 if( nCycle<2 ){
1782 g.urlPasswd = 0;
1783 go = 1;
1784 if( g.cgiOutput==0 ){
1785 g.urlFlags |= URL_PROMPT_PW | URL_ASK_REMEMBER_PW;
1786 g.urlFlags |= URL_REMEMBER;
1787 url_prompt_for_password();
1788 }
1789 }
1790 }else{
1791 blob_appendf(&xfer.err, "server says: %s\n", zMsg);
1792

Keyboard Shortcuts

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