Fossil SCM

Debugging changes in url.c: Ensure that each new UrlData object parse is fully reinitialized. Bring out printing of g.url into a separate routine so that it can be called during debugging.

drh 2024-02-05 23:59 ssh-path-prefix
Commit 97b3f955b2a6431e0f363b159190032ef4d8c2b6e68111f1b394e8b504b9a224
1 file changed +28 -23
+28 -23
--- src/url.c
+++ src/url.c
@@ -113,11 +113,11 @@
113113
UrlData *pUrlData
114114
){
115115
int i, j, c;
116116
char *zFile = 0;
117117
118
- pUrlData->pwConfig = 0;
118
+ memset(pUrlData, 0, sizeof(*pUrlData));
119119
if( urlFlags & URL_USE_CONFIG ){
120120
if( zUrl==0 || strcmp(zUrl,"default")==0 ){
121121
const char *zPwConfig = "last-sync-pw";
122122
if( urlFlags & URL_USE_PARENT ){
123123
zUrl = db_get("parent-project-url", 0);
@@ -162,12 +162,10 @@
162162
int iStart;
163163
char *zLogin;
164164
char *zExe;
165165
char cQuerySep = '?';
166166
167
- pUrlData->isFile = 0;
168
- pUrlData->useProxy = 0;
169167
if( zUrl[4]=='s' ){
170168
pUrlData->isHttps = 1;
171169
pUrlData->protocol = "https";
172170
pUrlData->dfltPort = 443;
173171
iStart = 8;
@@ -458,10 +456,36 @@
458456
** g.url.pwConfig is NULL.
459457
*/
460458
void url_parse(const char *zUrl, unsigned int urlFlags){
461459
url_parse_local(zUrl, urlFlags, &g.url);
462460
}
461
+
462
+/*
463
+** Print the content of g.url
464
+*/
465
+void urlparse_print(int showPw){
466
+ fossil_print("g.url.isFile = %d\n", g.url.isFile);
467
+ fossil_print("g.url.isHttps = %d\n", g.url.isHttps);
468
+ fossil_print("g.url.isSsh = %d\n", g.url.isSsh);
469
+ fossil_print("g.url.protocol = %s\n", g.url.protocol);
470
+ fossil_print("g.url.name = %s\n", g.url.name);
471
+ fossil_print("g.url.port = %d\n", g.url.port);
472
+ fossil_print("g.url.dfltPort = %d\n", g.url.dfltPort);
473
+ fossil_print("g.url.hostname = %s\n", g.url.hostname);
474
+ fossil_print("g.url.path = %s\n", g.url.path);
475
+ fossil_print("g.url.user = %s\n", g.url.user);
476
+ if( showPw || g.url.pwConfig==0 ){
477
+ fossil_print("g.url.passwd = %s\n", g.url.passwd);
478
+ }else{
479
+ fossil_print("g.url.passwd = ************\n");
480
+ }
481
+ fossil_print("g.url.pwConfig = %s\n", g.url.pwConfig);
482
+ fossil_print("g.url.canonical = %s\n", g.url.canonical);
483
+ fossil_print("g.url.fossil = %s\n", g.url.fossil);
484
+ fossil_print("g.url.flags = 0x%04x\n", g.url.flags);
485
+ fossil_print("url_full(g.url) = %z\n", url_full(&g.url));
486
+}
463487
464488
/*
465489
** COMMAND: test-urlparser
466490
**
467491
** Usage: %fossil test-urlparser URL ?options?
@@ -487,30 +511,11 @@
487511
if( g.argc!=3 && g.argc!=4 ){
488512
usage("URL");
489513
}
490514
url_parse(g.argv[2], fg);
491515
for(i=0; i<2; i++){
492
- fossil_print("g.url.isFile = %d\n", g.url.isFile);
493
- fossil_print("g.url.isHttps = %d\n", g.url.isHttps);
494
- fossil_print("g.url.isSsh = %d\n", g.url.isSsh);
495
- fossil_print("g.url.protocol = %s\n", g.url.protocol);
496
- fossil_print("g.url.name = %s\n", g.url.name);
497
- fossil_print("g.url.port = %d\n", g.url.port);
498
- fossil_print("g.url.dfltPort = %d\n", g.url.dfltPort);
499
- fossil_print("g.url.hostname = %s\n", g.url.hostname);
500
- fossil_print("g.url.path = %s\n", g.url.path);
501
- fossil_print("g.url.user = %s\n", g.url.user);
502
- if( showPw || g.url.pwConfig==0 ){
503
- fossil_print("g.url.passwd = %s\n", g.url.passwd);
504
- }else{
505
- fossil_print("g.url.passwd = ************\n");
506
- }
507
- fossil_print("g.url.pwConfig = %s\n", g.url.pwConfig);
508
- fossil_print("g.url.canonical = %s\n", g.url.canonical);
509
- fossil_print("g.url.fossil = %s\n", g.url.fossil);
510
- fossil_print("g.url.flags = 0x%04x\n", g.url.flags);
511
- fossil_print("url_full(g.url) = %z\n", url_full(&g.url));
516
+ urlparse_print(showPw);
512517
if( g.url.isFile || g.url.isSsh ) break;
513518
if( i==0 ){
514519
fossil_print("********\n");
515520
url_enable_proxy("Using proxy: ");
516521
}
517522
--- src/url.c
+++ src/url.c
@@ -113,11 +113,11 @@
113 UrlData *pUrlData
114 ){
115 int i, j, c;
116 char *zFile = 0;
117
118 pUrlData->pwConfig = 0;
119 if( urlFlags & URL_USE_CONFIG ){
120 if( zUrl==0 || strcmp(zUrl,"default")==0 ){
121 const char *zPwConfig = "last-sync-pw";
122 if( urlFlags & URL_USE_PARENT ){
123 zUrl = db_get("parent-project-url", 0);
@@ -162,12 +162,10 @@
162 int iStart;
163 char *zLogin;
164 char *zExe;
165 char cQuerySep = '?';
166
167 pUrlData->isFile = 0;
168 pUrlData->useProxy = 0;
169 if( zUrl[4]=='s' ){
170 pUrlData->isHttps = 1;
171 pUrlData->protocol = "https";
172 pUrlData->dfltPort = 443;
173 iStart = 8;
@@ -458,10 +456,36 @@
458 ** g.url.pwConfig is NULL.
459 */
460 void url_parse(const char *zUrl, unsigned int urlFlags){
461 url_parse_local(zUrl, urlFlags, &g.url);
462 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
463
464 /*
465 ** COMMAND: test-urlparser
466 **
467 ** Usage: %fossil test-urlparser URL ?options?
@@ -487,30 +511,11 @@
487 if( g.argc!=3 && g.argc!=4 ){
488 usage("URL");
489 }
490 url_parse(g.argv[2], fg);
491 for(i=0; i<2; i++){
492 fossil_print("g.url.isFile = %d\n", g.url.isFile);
493 fossil_print("g.url.isHttps = %d\n", g.url.isHttps);
494 fossil_print("g.url.isSsh = %d\n", g.url.isSsh);
495 fossil_print("g.url.protocol = %s\n", g.url.protocol);
496 fossil_print("g.url.name = %s\n", g.url.name);
497 fossil_print("g.url.port = %d\n", g.url.port);
498 fossil_print("g.url.dfltPort = %d\n", g.url.dfltPort);
499 fossil_print("g.url.hostname = %s\n", g.url.hostname);
500 fossil_print("g.url.path = %s\n", g.url.path);
501 fossil_print("g.url.user = %s\n", g.url.user);
502 if( showPw || g.url.pwConfig==0 ){
503 fossil_print("g.url.passwd = %s\n", g.url.passwd);
504 }else{
505 fossil_print("g.url.passwd = ************\n");
506 }
507 fossil_print("g.url.pwConfig = %s\n", g.url.pwConfig);
508 fossil_print("g.url.canonical = %s\n", g.url.canonical);
509 fossil_print("g.url.fossil = %s\n", g.url.fossil);
510 fossil_print("g.url.flags = 0x%04x\n", g.url.flags);
511 fossil_print("url_full(g.url) = %z\n", url_full(&g.url));
512 if( g.url.isFile || g.url.isSsh ) break;
513 if( i==0 ){
514 fossil_print("********\n");
515 url_enable_proxy("Using proxy: ");
516 }
517
--- src/url.c
+++ src/url.c
@@ -113,11 +113,11 @@
113 UrlData *pUrlData
114 ){
115 int i, j, c;
116 char *zFile = 0;
117
118 memset(pUrlData, 0, sizeof(*pUrlData));
119 if( urlFlags & URL_USE_CONFIG ){
120 if( zUrl==0 || strcmp(zUrl,"default")==0 ){
121 const char *zPwConfig = "last-sync-pw";
122 if( urlFlags & URL_USE_PARENT ){
123 zUrl = db_get("parent-project-url", 0);
@@ -162,12 +162,10 @@
162 int iStart;
163 char *zLogin;
164 char *zExe;
165 char cQuerySep = '?';
166
 
 
167 if( zUrl[4]=='s' ){
168 pUrlData->isHttps = 1;
169 pUrlData->protocol = "https";
170 pUrlData->dfltPort = 443;
171 iStart = 8;
@@ -458,10 +456,36 @@
456 ** g.url.pwConfig is NULL.
457 */
458 void url_parse(const char *zUrl, unsigned int urlFlags){
459 url_parse_local(zUrl, urlFlags, &g.url);
460 }
461
462 /*
463 ** Print the content of g.url
464 */
465 void urlparse_print(int showPw){
466 fossil_print("g.url.isFile = %d\n", g.url.isFile);
467 fossil_print("g.url.isHttps = %d\n", g.url.isHttps);
468 fossil_print("g.url.isSsh = %d\n", g.url.isSsh);
469 fossil_print("g.url.protocol = %s\n", g.url.protocol);
470 fossil_print("g.url.name = %s\n", g.url.name);
471 fossil_print("g.url.port = %d\n", g.url.port);
472 fossil_print("g.url.dfltPort = %d\n", g.url.dfltPort);
473 fossil_print("g.url.hostname = %s\n", g.url.hostname);
474 fossil_print("g.url.path = %s\n", g.url.path);
475 fossil_print("g.url.user = %s\n", g.url.user);
476 if( showPw || g.url.pwConfig==0 ){
477 fossil_print("g.url.passwd = %s\n", g.url.passwd);
478 }else{
479 fossil_print("g.url.passwd = ************\n");
480 }
481 fossil_print("g.url.pwConfig = %s\n", g.url.pwConfig);
482 fossil_print("g.url.canonical = %s\n", g.url.canonical);
483 fossil_print("g.url.fossil = %s\n", g.url.fossil);
484 fossil_print("g.url.flags = 0x%04x\n", g.url.flags);
485 fossil_print("url_full(g.url) = %z\n", url_full(&g.url));
486 }
487
488 /*
489 ** COMMAND: test-urlparser
490 **
491 ** Usage: %fossil test-urlparser URL ?options?
@@ -487,30 +511,11 @@
511 if( g.argc!=3 && g.argc!=4 ){
512 usage("URL");
513 }
514 url_parse(g.argv[2], fg);
515 for(i=0; i<2; i++){
516 urlparse_print(showPw);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
517 if( g.url.isFile || g.url.isSsh ) break;
518 if( i==0 ){
519 fossil_print("********\n");
520 url_enable_proxy("Using proxy: ");
521 }
522

Keyboard Shortcuts

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