Fossil SCM

If you "sync" against a server for which you do not have push permission, you get an error message but it still does the pull.

drh 2007-09-26 19:46 trunk
Commit 2b51dbe02b0e507897e5b4bf89efd45404d45ac2
1 file changed +20 -6
+20 -6
--- src/xfer.c
+++ src/xfer.c
@@ -515,16 +515,20 @@
515515
break;
516516
}
517517
isPull = 1;
518518
}else{
519519
if( !g.okWrite ){
520
- cgi_reset_content();
521
- @ error not\sauthorized\sto\swrite
522
- nErr++;
523
- break;
520
+ if( !isPull ){
521
+ cgi_reset_content();
522
+ @ error not\sauthorized\sto\swrite
523
+ nErr++;
524
+ }else{
525
+ @ message pull\sonly\s-\snot\sauthorized\sto\spush
526
+ }
527
+ }else{
528
+ isPush = 1;
524529
}
525
- isPush = 1;
526530
}
527531
}else
528532
529533
/* clone
530534
**
@@ -828,14 +832,24 @@
828832
** same server.
829833
*/
830834
if( blob_eq(&xfer.aToken[0], "cookie") && xfer.nToken==2 ){
831835
db_set("cookie", blob_str(&xfer.aToken[1]));
832836
}else
837
+
838
+ /* message MESSAGE
839
+ **
840
+ ** Print a message. Similar to "error" but does not stop processing
841
+ */
842
+ if( blob_eq(&xfer.aToken[0],"message") && xfer.nToken==2 ){
843
+ char *zMsg = blob_terminate(&xfer.aToken[1]);
844
+ defossilize(zMsg);
845
+ printf("Server says: %s\n", zMsg);
846
+ }else
833847
834848
/* error MESSAGE
835849
**
836
- ** Report an error
850
+ ** Report an error and abandon the sync session
837851
*/
838852
if( blob_eq(&xfer.aToken[0],"error") && xfer.nToken==2 ){
839853
char *zMsg = blob_terminate(&xfer.aToken[1]);
840854
defossilize(zMsg);
841855
blob_appendf(&xfer.err, "server says: %s", zMsg);
842856
--- src/xfer.c
+++ src/xfer.c
@@ -515,16 +515,20 @@
515 break;
516 }
517 isPull = 1;
518 }else{
519 if( !g.okWrite ){
520 cgi_reset_content();
521 @ error not\sauthorized\sto\swrite
522 nErr++;
523 break;
 
 
 
 
 
524 }
525 isPush = 1;
526 }
527 }else
528
529 /* clone
530 **
@@ -828,14 +832,24 @@
828 ** same server.
829 */
830 if( blob_eq(&xfer.aToken[0], "cookie") && xfer.nToken==2 ){
831 db_set("cookie", blob_str(&xfer.aToken[1]));
832 }else
 
 
 
 
 
 
 
 
 
 
833
834 /* error MESSAGE
835 **
836 ** Report an error
837 */
838 if( blob_eq(&xfer.aToken[0],"error") && xfer.nToken==2 ){
839 char *zMsg = blob_terminate(&xfer.aToken[1]);
840 defossilize(zMsg);
841 blob_appendf(&xfer.err, "server says: %s", zMsg);
842
--- src/xfer.c
+++ src/xfer.c
@@ -515,16 +515,20 @@
515 break;
516 }
517 isPull = 1;
518 }else{
519 if( !g.okWrite ){
520 if( !isPull ){
521 cgi_reset_content();
522 @ error not\sauthorized\sto\swrite
523 nErr++;
524 }else{
525 @ message pull\sonly\s-\snot\sauthorized\sto\spush
526 }
527 }else{
528 isPush = 1;
529 }
 
530 }
531 }else
532
533 /* clone
534 **
@@ -828,14 +832,24 @@
832 ** same server.
833 */
834 if( blob_eq(&xfer.aToken[0], "cookie") && xfer.nToken==2 ){
835 db_set("cookie", blob_str(&xfer.aToken[1]));
836 }else
837
838 /* message MESSAGE
839 **
840 ** Print a message. Similar to "error" but does not stop processing
841 */
842 if( blob_eq(&xfer.aToken[0],"message") && xfer.nToken==2 ){
843 char *zMsg = blob_terminate(&xfer.aToken[1]);
844 defossilize(zMsg);
845 printf("Server says: %s\n", zMsg);
846 }else
847
848 /* error MESSAGE
849 **
850 ** Report an error and abandon the sync session
851 */
852 if( blob_eq(&xfer.aToken[0],"error") && xfer.nToken==2 ){
853 char *zMsg = blob_terminate(&xfer.aToken[1]);
854 defossilize(zMsg);
855 blob_appendf(&xfer.err, "server says: %s", zMsg);
856

Keyboard Shortcuts

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