X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fgacela_server.scm;h=8c45b20ecdb684f95f3e18fd3e0994ff16329154;hb=91e03880066280940b29a89eae28510e124e58cb;hp=eff695409226b04d30ee3512c266577957b97c1a;hpb=5529af7c3a48a6231247ae8d472f359b6c75e938;p=gacela.git diff --git a/src/gacela_server.scm b/src/gacela_server.scm index eff6954..8c45b20 100644 --- a/src/gacela_server.scm +++ b/src/gacela_server.scm @@ -57,8 +57,8 @@ (set! eval-from-clients (lambda () - (cond (pipes - (eval-from-client (car pipes) (cdr pipes)))) + (cond (server-pipes + (eval-from-client (car server-pipes) (cdr server-pipes)))) (for-each (lambda (cli) (eval-from-client (car cli) (car cli))) clients))) @@ -76,15 +76,21 @@ (catch #t (lambda () (let ((exp (read rec-channel))) - (format #t "~a~%" exp) (cond ((eof-object? exp) (close rec-channel)) (else - (format #t "~a~%" (primitive-eval (car exp))) - (format send-channel "~a" (primitive-eval (car exp))))))) + (let ((result (eval-string exp))) + (write (if (eq? result *unspecified*) "" (format #f "~a" result)) send-channel)))))) (lambda (key . args) (let ((fmt (string-concatenate (list (cadr args) "~%"))) (params (caddr args))) - (if params - (apply format (cons send-channel (cons fmt params))) - (format send-channel fmt)))))))) + (write + (if params + (apply format (cons #f (cons fmt params))) + (format #f fmt)) + send-channel)))) + (force-output send-channel)))) + + +(define (connect-to-server client-socket hostname port) + (connect client-socket AF_INET (car (hostent:addr-list (gethost hostname))) port))