Fossil SCM
Make it so password prompts during commit are also honored.
Commit
1854e090fda7dd695551ea67271ced63f21f4461
Parent
23e51b9d9b6f126…
1 file changed
+11
-6
+11
-6
| --- src/url.c | ||
| +++ src/url.c | ||
| @@ -70,11 +70,10 @@ | ||
| 70 | 70 | ** |
| 71 | 71 | */ |
| 72 | 72 | void url_parse(const char *zUrl, unsigned int urlFlags){ |
| 73 | 73 | int i, j, c; |
| 74 | 74 | char *zFile = 0; |
| 75 | - int bPrompted = 0; | |
| 76 | 75 | int bSetUrl = 1; |
| 77 | 76 | |
| 78 | 77 | if( zUrl==0 ){ |
| 79 | 78 | zUrl = db_get("last-sync-url", 0); |
| 80 | 79 | if( zUrl==0 ) return; |
| @@ -226,20 +225,24 @@ | ||
| 226 | 225 | g.urlName = mprintf("%b", &cfile); |
| 227 | 226 | g.urlCanonical = mprintf("file://%T", g.urlName); |
| 228 | 227 | blob_reset(&cfile); |
| 229 | 228 | }else if( g.urlUser!=0 && g.urlPasswd==0 && (urlFlags & URL_PROMPT_PW) ){ |
| 230 | 229 | 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 | + } | |
| 235 | 238 | } |
| 236 | 239 | if( urlFlags & URL_REMEMBER ){ |
| 237 | 240 | if( bSetUrl ){ |
| 238 | 241 | db_set("last-sync-url", g.urlCanonical, 0); |
| 239 | 242 | } |
| 240 | - if( !bPrompted && g.urlPasswd && g.urlUser ){ | |
| 243 | + if( g.urlPasswd && g.urlUser && ( g.urlFlags & URL_REMEMBER_PW ) ){ | |
| 241 | 244 | db_set("last-sync-pw", obscure(g.urlPasswd), 0); |
| 242 | 245 | } |
| 243 | 246 | } |
| 244 | 247 | } |
| 245 | 248 | |
| @@ -453,10 +456,12 @@ | ||
| 453 | 456 | if( save_password_prompt() ){ |
| 454 | 457 | g.urlFlags |= URL_REMEMBER_PW; |
| 455 | 458 | if( g.urlFlags & URL_REMEMBER ){ |
| 456 | 459 | db_set("last-sync-pw", obscure(g.urlPasswd), 0); |
| 457 | 460 | } |
| 461 | + }else{ | |
| 462 | + g.urlFlags &= ~URL_REMEMBER_PW; | |
| 458 | 463 | } |
| 459 | 464 | } |
| 460 | 465 | }else{ |
| 461 | 466 | fossil_fatal("missing or incorrect password for user \"%s\"", |
| 462 | 467 | g.urlUser); |
| 463 | 468 |
| --- 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 |