Index: megatest.scm ================================================================== --- megatest.scm +++ megatest.scm @@ -317,10 +317,11 @@ "-start-dir" "-run-patt" "-target-patt" "-contour" "-area-tag" + "-area" "-server" "-transport" "-port" "-extract-ods" "-pathmod" Index: server.scm ================================================================== --- server.scm +++ server.scm @@ -160,13 +160,13 @@ (rep (server:start-nmsg mode)) (last-msg (current-seconds)) (th1 (make-thread (lambda () (let loop () - (let ((pktdat (nmsg:recv rep))) + (let ((pktdat (server:receive rep))) (set! last-msg (current-seconds)) - (print "received: " pktdat) + ;; (print "received: " pktdat) (if (not (eof-object? pktdat)) (begin (proc pktdat) (loop)))))) "message handler")) @@ -221,23 +221,36 @@ (hkey (alist-ref 'Z servpkt)) (addr (conc (or ip host) ":" port)) ;; fall back to host if ip not provided (myport (area-port *area-info*)) (myhost (area-myaddr *area-info*)) (mykey (area-pktid *area-info*)) - (msg (alist->pkt `((hostname . ,myhost) - (port . ,myport) - (servkey . ,hkey) ;; server looks at this to ensure message is for them - (hostkey . ,mykey) - (format . ,dtype) ;; formating of the message - (data . ,data)) - *pktspec*))) + (msg (with-output-to-string + (lambda () + (write `((hostname . ,myhost) + (port . ,myport) + (servkey . ,hkey) ;; server looks at this to ensure message is for them + (hostkey . ,mykey) + (format . ,dtype) ;; formating of the message + (data . ,data)) + ;; *pktspec* + ;; ptype: 'data)) + ))))) + (print "msg: " msg) (if (and port host) (begin (print "sending " msg " to " addr) (nmsg:open-send-receive addr msg)) #f))) +;; get the response +;; +(define (server:receive rep) + (let ((instr (nmsg:recv rep))) + (if (string? instr) + (with-input-from-string instr read) + instr))) + ;; is the server alive? ;; (define (server:ping servpkt) (let* ((start-time (current-milliseconds)) (res (server:send servpkt "ping" "t")))