Guile Freenet
 
(drak)
2015-09-28: make fcp.scm work

make fcp.scm work

diff --git a/fcp.scm b/fcp.scm
--- a/fcp.scm
+++ b/fcp.scm
@@ -4,7 +4,8 @@
  (ice-9 rw) ;; write-string
  (ice-9 rdelim)
  (ice-9 pretty-print)
- (ice-9 vlist))
+ (ice-9 vlist)
+ (srfi srfi-11)) ; let-values
 
 (define (println s)
   (pretty-print s))
@@ -48,12 +49,13 @@
 
   (letrec* ((send
          (lambda* (name opts #:optional (data #f) (data-length 0))
+                  (println (symbol->string name))
                   (write-line (symbol->string name))
                   (for-each
                    (λ (pair)
                      (let ((name (car pair))
                            (value (cdr pair)))
-                       (write-line (string-append (symbol->string name)
+                       (let ((line (string-append (symbol->string name)
                                                   "=" (cond
                                                        ((symbol? value) (symbol->string value))
                                                        ((string? value) value)
@@ -63,7 +65,9 @@
                                                        ((eq? value #f) "false")
                                                        ((eq? value #t) "true")
                                                        (else
-                                                        (error "wat is ~s" value)))))))
+                                                        (error "wat is ~s" value))))))
+                         (println line)
+                         (write-line line))))
                    opts)
                   (if data
                       (begin
@@ -81,6 +85,7 @@
                          (else
                           (error "How to write this data?" data))))
                       (begin
+                        (println "EndMessage")
                         (write-line "EndMessage")
                         (newline sock)))))
          (expect
@@ -136,7 +141,7 @@
                             (println (list 'waiteruh waiter))
                          (if (equal? line "Data")
                              (let-values (((feed finished) (waiter name identifier opts))
-                                          ((total) (string->number (cdr (assoc "DataLength" opts)))))
+                                          ((total) (string->number (cdr (assoc 'DataLength opts)))))
                                (let reading-data ((left total))
                                  (if (<= left 0)
                                      (finished total)
@@ -196,7 +201,7 @@
    (expect 'NodeHello
            (λ (name identifier opts)
              (pretty-print (list 'got name opts))
-             (expect '(SimpleProgress ProtocolError)
+             (expect '(SimpleProgress); ProtocolError)
                      (λ (name identifier opts)
                        (pretty-print (list 'progress name opts))))
              (expect '(DataFound)