Fossil SCM

Make it so password prompts during commit are also honored.

andybradford 2013-11-05 02:08 UTC url-password-fixes
Commit 1854e090fda7dd695551ea67271ced63f21f4461
1 file changed +11 -6
+11 -6
--- src/url.c
+++ src/url.c
@@ -70,11 +70,10 @@
7070
**
7171
*/
7272
void url_parse(const char *zUrl, unsigned int urlFlags){
7373
int i, j, c;
7474
char *zFile = 0;
75
- int bPrompted = 0;
7675
int bSetUrl = 1;
7776
7877
if( zUrl==0 ){
7978
zUrl = db_get("last-sync-url", 0);
8079
if( zUrl==0 ) return;
@@ -226,20 +225,24 @@
226225
g.urlName = mprintf("%b", &cfile);
227226
g.urlCanonical = mprintf("file://%T", g.urlName);
228227
blob_reset(&cfile);
229228
}else if( g.urlUser!=0 && g.urlPasswd==0 && (urlFlags & URL_PROMPT_PW) ){
230229
url_prompt_for_password();
231
- bPrompted = 1;
232
- }else if( g.urlUser!=0 && ( urlFlags & URL_ASK_REMEMBER_PW ) &&
233
- isatty(fileno(stdin)) && save_password_prompt() ){
234
- g.urlFlags = urlFlags |= URL_REMEMBER_PW;
230
+ }else if( g.urlUser!=0 && ( urlFlags & URL_ASK_REMEMBER_PW ) ){
231
+ if( isatty(fileno(stdin)) ){
232
+ if( save_password_prompt() ){
233
+ g.urlFlags = urlFlags |= URL_REMEMBER_PW;
234
+ }else{
235
+ g.urlFlags = urlFlags &= ~URL_REMEMBER_PW;
236
+ }
237
+ }
235238
}
236239
if( urlFlags & URL_REMEMBER ){
237240
if( bSetUrl ){
238241
db_set("last-sync-url", g.urlCanonical, 0);
239242
}
240
- if( !bPrompted && g.urlPasswd && g.urlUser ){
243
+ if( g.urlPasswd && g.urlUser && ( g.urlFlags & URL_REMEMBER_PW ) ){
241244
db_set("last-sync-pw", obscure(g.urlPasswd), 0);
242245
}
243246
}
244247
}
245248
@@ -453,10 +456,12 @@
453456
if( save_password_prompt() ){
454457
g.urlFlags |= URL_REMEMBER_PW;
455458
if( g.urlFlags & URL_REMEMBER ){
456459
db_set("last-sync-pw", obscure(g.urlPasswd), 0);
457460
}
461
+ }else{
462
+ g.urlFlags &= ~URL_REMEMBER_PW;
458463
}
459464
}
460465
}else{
461466
fossil_fatal("missing or incorrect password for user \"%s\"",
462467
g.urlUser);
463468
--- src/url.c
+++ src/url.c
@@ -70,11 +70,10 @@
70 **
71 */
72 void url_parse(const char *zUrl, unsigned int urlFlags){
73 int i, j, c;
74 char *zFile = 0;
75 int bPrompted = 0;
76 int bSetUrl = 1;
77
78 if( zUrl==0 ){
79 zUrl = db_get("last-sync-url", 0);
80 if( zUrl==0 ) return;
@@ -226,20 +225,24 @@
226 g.urlName = mprintf("%b", &cfile);
227 g.urlCanonical = mprintf("file://%T", g.urlName);
228 blob_reset(&cfile);
229 }else if( g.urlUser!=0 && g.urlPasswd==0 && (urlFlags & URL_PROMPT_PW) ){
230 url_prompt_for_password();
231 bPrompted = 1;
232 }else if( g.urlUser!=0 && ( urlFlags & URL_ASK_REMEMBER_PW ) &&
233 isatty(fileno(stdin)) && save_password_prompt() ){
234 g.urlFlags = urlFlags |= URL_REMEMBER_PW;
 
 
 
 
235 }
236 if( urlFlags & URL_REMEMBER ){
237 if( bSetUrl ){
238 db_set("last-sync-url", g.urlCanonical, 0);
239 }
240 if( !bPrompted && g.urlPasswd && g.urlUser ){
241 db_set("last-sync-pw", obscure(g.urlPasswd), 0);
242 }
243 }
244 }
245
@@ -453,10 +456,12 @@
453 if( save_password_prompt() ){
454 g.urlFlags |= URL_REMEMBER_PW;
455 if( g.urlFlags & URL_REMEMBER ){
456 db_set("last-sync-pw", obscure(g.urlPasswd), 0);
457 }
 
 
458 }
459 }
460 }else{
461 fossil_fatal("missing or incorrect password for user \"%s\"",
462 g.urlUser);
463
--- src/url.c
+++ src/url.c
@@ -70,11 +70,10 @@
70 **
71 */
72 void url_parse(const char *zUrl, unsigned int urlFlags){
73 int i, j, c;
74 char *zFile = 0;
 
75 int bSetUrl = 1;
76
77 if( zUrl==0 ){
78 zUrl = db_get("last-sync-url", 0);
79 if( zUrl==0 ) return;
@@ -226,20 +225,24 @@
225 g.urlName = mprintf("%b", &cfile);
226 g.urlCanonical = mprintf("file://%T", g.urlName);
227 blob_reset(&cfile);
228 }else if( g.urlUser!=0 && g.urlPasswd==0 && (urlFlags & URL_PROMPT_PW) ){
229 url_prompt_for_password();
230 }else if( g.urlUser!=0 && ( urlFlags & URL_ASK_REMEMBER_PW ) ){
231 if( isatty(fileno(stdin)) ){
232 if( save_password_prompt() ){
233 g.urlFlags = urlFlags |= URL_REMEMBER_PW;
234 }else{
235 g.urlFlags = urlFlags &= ~URL_REMEMBER_PW;
236 }
237 }
238 }
239 if( urlFlags & URL_REMEMBER ){
240 if( bSetUrl ){
241 db_set("last-sync-url", g.urlCanonical, 0);
242 }
243 if( g.urlPasswd && g.urlUser && ( g.urlFlags & URL_REMEMBER_PW ) ){
244 db_set("last-sync-pw", obscure(g.urlPasswd), 0);
245 }
246 }
247 }
248
@@ -453,10 +456,12 @@
456 if( save_password_prompt() ){
457 g.urlFlags |= URL_REMEMBER_PW;
458 if( g.urlFlags & URL_REMEMBER ){
459 db_set("last-sync-pw", obscure(g.urlPasswd), 0);
460 }
461 }else{
462 g.urlFlags &= ~URL_REMEMBER_PW;
463 }
464 }
465 }else{
466 fossil_fatal("missing or incorrect password for user \"%s\"",
467 g.urlUser);
468

Keyboard Shortcuts

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