Fossil SCM

Add some debugging 'message' cards to help trace how the remote is handling the login.

stephan 2025-07-22 22:53 xfer-login-card
Commit 21be2978af0b359daba607c05cc46dcefad3035538001fd337a8e3f579574e70
2 files changed -1 +9 -2
-1
--- src/http.c
+++ src/http.c
@@ -465,11 +465,10 @@
465465
466466
if( transport_open(&g.url) ){
467467
fossil_warning("%s", transport_errmsg(&g.url));
468468
return 1;
469469
}
470
-
471470
/* Construct the login card and prepare the complete payload */
472471
blob_zero(&login);
473472
if( blob_size(pSend)==0 ){
474473
blob_zero(&payload);
475474
}else{
476475
--- src/http.c
+++ src/http.c
@@ -465,11 +465,10 @@
465
466 if( transport_open(&g.url) ){
467 fossil_warning("%s", transport_errmsg(&g.url));
468 return 1;
469 }
470
471 /* Construct the login card and prepare the complete payload */
472 blob_zero(&login);
473 if( blob_size(pSend)==0 ){
474 blob_zero(&payload);
475 }else{
476
--- src/http.c
+++ src/http.c
@@ -465,11 +465,10 @@
465
466 if( transport_open(&g.url) ){
467 fossil_warning("%s", transport_errmsg(&g.url));
468 return 1;
469 }
 
470 /* Construct the login card and prepare the complete payload */
471 blob_zero(&login);
472 if( blob_size(pSend)==0 ){
473 blob_zero(&payload);
474 }else{
475
+9 -2
--- src/xfer.c
+++ src/xfer.c
@@ -879,10 +879,13 @@
879879
zCap = db_column_text(&q, 1);
880880
login_set_capabilities(zCap, 0);
881881
g.userUid = db_column_int(&q, 2);
882882
g.zLogin = mprintf("%b", pLogin);
883883
g.zNonce = mprintf("%b", pNonce);
884
+ if( g.perm.Debug ){
885
+ @ message g.zLogin=%F(g.zLogin)\szCap=%F(zCap)
886
+ }
884887
}
885888
}
886889
db_finalize(&q);
887890
return rc;
888891
}
@@ -1326,10 +1329,11 @@
13261329
count(xfer.aToken));
13271330
fossil_free( g.syncInfo.zLoginCard );
13281331
g.syncInfo.zLoginCard = 0;
13291332
if( xfer.nToken==4
13301333
&& blob_eq(&xfer.aToken[0], "login") ){
1334
+ @ message got\slogin\scard\sheader
13311335
goto handle_login_card;
13321336
}
13331337
}
13341338
while( blob_line(xfer.pIn, &xfer.line) ){
13351339
if( blob_buffer(&xfer.line)[0]=='#' ) continue;
@@ -1574,10 +1578,14 @@
15741578
*/
15751579
if( blob_eq(&xfer.aToken[0], "login")
15761580
&& xfer.nToken==4
15771581
){
15781582
handle_login_card:
1583
+ //fprintf(stderr, "%s:%d trying to log in: %s\n", __FILE__, __LINE__, blob_str(&xfer.line));
1584
+ if( 1 || g.perm.Debug ){
1585
+ @message inbound\slogin\scard:\s%F(blob_str(&xfer.line))
1586
+ }
15791587
nLogin++;
15801588
if( disableLogin ){
15811589
g.perm.Read = g.perm.Write = g.perm.Private = g.perm.Admin = 1;
15821590
}else if( nLogin > 1 ){
15831591
cgi_reset_content();
@@ -2368,11 +2376,10 @@
23682376
blob_appendf(&send, "pragma ci-lock %s %s\n", zCkinLock, zClientId);
23692377
zCkinLock = 0;
23702378
}else if( zClientId ){
23712379
blob_appendf(&send, "pragma ci-unlock %s\n", zClientId);
23722380
}
2373
-
23742381
/* Append randomness to the end of the uplink message. This makes all
23752382
** messages unique so that that the login-card nonce will always
23762383
** be unique.
23772384
*/
23782385
zRandomness = db_text(0, "SELECT hex(randomblob(20))");
@@ -2925,11 +2932,11 @@
29252932
&recv
29262933
);
29272934
nErr++;
29282935
break;
29292936
}
2930
- blob_appendf(&xfer.err, "unknown command: [%b]\n", &xfer.aToken[0]);
2937
+ blob_appendf(&xfer.err, "unknown command: [%b]\n", &xfer.line);
29312938
}
29322939
29332940
if( blob_size(&xfer.err) ){
29342941
fossil_force_newline();
29352942
fossil_warning("%b", &xfer.err);
29362943
--- src/xfer.c
+++ src/xfer.c
@@ -879,10 +879,13 @@
879 zCap = db_column_text(&q, 1);
880 login_set_capabilities(zCap, 0);
881 g.userUid = db_column_int(&q, 2);
882 g.zLogin = mprintf("%b", pLogin);
883 g.zNonce = mprintf("%b", pNonce);
 
 
 
884 }
885 }
886 db_finalize(&q);
887 return rc;
888 }
@@ -1326,10 +1329,11 @@
1326 count(xfer.aToken));
1327 fossil_free( g.syncInfo.zLoginCard );
1328 g.syncInfo.zLoginCard = 0;
1329 if( xfer.nToken==4
1330 && blob_eq(&xfer.aToken[0], "login") ){
 
1331 goto handle_login_card;
1332 }
1333 }
1334 while( blob_line(xfer.pIn, &xfer.line) ){
1335 if( blob_buffer(&xfer.line)[0]=='#' ) continue;
@@ -1574,10 +1578,14 @@
1574 */
1575 if( blob_eq(&xfer.aToken[0], "login")
1576 && xfer.nToken==4
1577 ){
1578 handle_login_card:
 
 
 
 
1579 nLogin++;
1580 if( disableLogin ){
1581 g.perm.Read = g.perm.Write = g.perm.Private = g.perm.Admin = 1;
1582 }else if( nLogin > 1 ){
1583 cgi_reset_content();
@@ -2368,11 +2376,10 @@
2368 blob_appendf(&send, "pragma ci-lock %s %s\n", zCkinLock, zClientId);
2369 zCkinLock = 0;
2370 }else if( zClientId ){
2371 blob_appendf(&send, "pragma ci-unlock %s\n", zClientId);
2372 }
2373
2374 /* Append randomness to the end of the uplink message. This makes all
2375 ** messages unique so that that the login-card nonce will always
2376 ** be unique.
2377 */
2378 zRandomness = db_text(0, "SELECT hex(randomblob(20))");
@@ -2925,11 +2932,11 @@
2925 &recv
2926 );
2927 nErr++;
2928 break;
2929 }
2930 blob_appendf(&xfer.err, "unknown command: [%b]\n", &xfer.aToken[0]);
2931 }
2932
2933 if( blob_size(&xfer.err) ){
2934 fossil_force_newline();
2935 fossil_warning("%b", &xfer.err);
2936
--- src/xfer.c
+++ src/xfer.c
@@ -879,10 +879,13 @@
879 zCap = db_column_text(&q, 1);
880 login_set_capabilities(zCap, 0);
881 g.userUid = db_column_int(&q, 2);
882 g.zLogin = mprintf("%b", pLogin);
883 g.zNonce = mprintf("%b", pNonce);
884 if( g.perm.Debug ){
885 @ message g.zLogin=%F(g.zLogin)\szCap=%F(zCap)
886 }
887 }
888 }
889 db_finalize(&q);
890 return rc;
891 }
@@ -1326,10 +1329,11 @@
1329 count(xfer.aToken));
1330 fossil_free( g.syncInfo.zLoginCard );
1331 g.syncInfo.zLoginCard = 0;
1332 if( xfer.nToken==4
1333 && blob_eq(&xfer.aToken[0], "login") ){
1334 @ message got\slogin\scard\sheader
1335 goto handle_login_card;
1336 }
1337 }
1338 while( blob_line(xfer.pIn, &xfer.line) ){
1339 if( blob_buffer(&xfer.line)[0]=='#' ) continue;
@@ -1574,10 +1578,14 @@
1578 */
1579 if( blob_eq(&xfer.aToken[0], "login")
1580 && xfer.nToken==4
1581 ){
1582 handle_login_card:
1583 //fprintf(stderr, "%s:%d trying to log in: %s\n", __FILE__, __LINE__, blob_str(&xfer.line));
1584 if( 1 || g.perm.Debug ){
1585 @message inbound\slogin\scard:\s%F(blob_str(&xfer.line))
1586 }
1587 nLogin++;
1588 if( disableLogin ){
1589 g.perm.Read = g.perm.Write = g.perm.Private = g.perm.Admin = 1;
1590 }else if( nLogin > 1 ){
1591 cgi_reset_content();
@@ -2368,11 +2376,10 @@
2376 blob_appendf(&send, "pragma ci-lock %s %s\n", zCkinLock, zClientId);
2377 zCkinLock = 0;
2378 }else if( zClientId ){
2379 blob_appendf(&send, "pragma ci-unlock %s\n", zClientId);
2380 }
 
2381 /* Append randomness to the end of the uplink message. This makes all
2382 ** messages unique so that that the login-card nonce will always
2383 ** be unique.
2384 */
2385 zRandomness = db_text(0, "SELECT hex(randomblob(20))");
@@ -2925,11 +2932,11 @@
2932 &recv
2933 );
2934 nErr++;
2935 break;
2936 }
2937 blob_appendf(&xfer.err, "unknown command: [%b]\n", &xfer.line);
2938 }
2939
2940 if( blob_size(&xfer.err) ){
2941 fossil_force_newline();
2942 fossil_warning("%b", &xfer.err);
2943

Keyboard Shortcuts

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