Index: megatest.scm ================================================================== --- megatest.scm +++ megatest.scm @@ -20,13 +20,13 @@ ;; (include "megatest-version.scm") ;; fake out readline usage of toplevel-command (define (toplevel-command . a) #f) -(use (prefix sqlite3 sqlite3:) srfi-1 posix regex regex-case srfi-69 (prefix base64 base64:) - readline apropos json http-client directory-utils typed-records - http-client srfi-18 extras format tcp6) +(use (prefix sqlite3 sqlite3:) srfi-1 posix regex regex-case + srfi-69 (prefix base64 base64:) readline apropos json http-client + directory-utils typed-records http-client srfi-18 extras format tcp6) ;; Added for csv stuff - will be removed ;; (use sparse-vectors) Index: ulex/ulex.scm ================================================================== --- ulex/ulex.scm +++ ulex/ulex.scm @@ -36,11 +36,12 @@ srfi-4 regex-case (prefix sqlite3 sqlite3:) foreign tcp6 ;; ulex-netutil - hostinfo) + hostinfo + ) ;;====================================================================== ;; KEY FUNCTIONS - THESE ARE TOO BE EXPOSED AND USED ;;====================================================================== @@ -412,35 +413,40 @@ ;; ;; (define (ulex-handler udata) (let* ((serv-listener (udat-serv-listener udata))) - (let-values (((inp oup)(tcp-accept serv-listener))) - ;; data comes as two lines - ;; handlerkey resp-addr:resp-port hostname pid qrykey [dbpath/dbfile.db] - ;; data - (let loop ((state 'start)) + (print "serv-listner: " serv-listener) + ;; data comes as two lines + ;; handlerkey resp-addr:resp-port hostname pid qrykey [dbpath/dbfile.db] + ;; data + (let loop ((state 'start)) + (let-values (((inp oup)(tcp-accept serv-listener))) + (print "got here: inp=" inp " oup=" oup) (let* ((controldat (read-line inp)) (data (read-line inp))) + (print "controldat: " controldat " data: " data) (match (string-split controldat) - ((handlerkey host:port pid qrykey params ...) - (print "handlerkey: " handlerkey " host:port: " host:port " pid: " pid " qrykey: " qrykey " params: " params) - (case (string->symbol handlerkey) - ((ack)(print "Got ack!")) - ((ping) - (let* ((proc (hash-table-ref/default (udat-handlers udata) 'ping #f)) - (val (if proc (proc) "gotping"))) - (send udata host:port "version" qrykey val))) - ((rucaptain) - (send udata host:port "iamcaptain" qrykey (if (udat-my-cpkt-key udata) - "yes" - "no"))) - (else - ;; (send-ack udata host:port qrykey) - (add-to-work-queue udata (get-peer-dat udata host:port) handlerkey qrykey data)))) - (else (print "BAD DATA? controldat=" controldat " data=" data)))) - (loop state))))) + ((handlerkey host:port pid qrykey params ...) + (print "handlerkey: " handlerkey " host:port: " host:port " pid: " pid " qrykey: " qrykey " params: " params) + (case (string->symbol handlerkey) + ((ack)(print "Got ack!")) + ((ping) + (close-input-port inp) ;;; these don't work + (close-output-port oup) + (let* ((proc (hash-table-ref/default (udat-handlers udata) 'ping #f)) + (val (if proc (proc) "gotping"))) + (send udata host:port "version" qrykey val))) + ((rucaptain) + (send udata host:port "iamcaptain" qrykey (if (udat-my-cpkt-key udata) + "yes" + "no"))) + (else + ;; (send-ack udata host:port qrykey) + (add-to-work-queue udata (get-peer-dat udata host:port) handlerkey qrykey data)))) + (else (print "BAD DATA? controldat=" controldat " data=" data))))) + (loop state)))) ;; add a proc to the handler list (define (register-handler udata key proc) (hash-table-set! (udat-handlers udata) key proc))