]> git.jsancho.org Git - gacela.git/commitdiff
(no commit message)
authorjsancho <devnull@localhost>
Thu, 7 Jul 2011 18:25:07 +0000 (18:25 +0000)
committerjsancho <devnull@localhost>
Thu, 7 Jul 2011 18:25:07 +0000 (18:25 +0000)
src/gacela_server.scm

index e7a69c67ee717a6ffccb574a5caccc3f9f0ec361..548488efcb637ed8517931f44f0f48883711e8c2 100644 (file)
 
 
 (define start-server #f)
+(define check-connections #f)
+(define stop-server #f)
 
 (let ((server-socket #f) (clients '()))
   (set! start-server
        (lambda (port)
          (set! server-socket (socket PF_INET SOCK_STREAM 0))
+         (fcntl server-socket F_SETFL (logior O_NONBLOCK (fcntl server-socket F_GETFL)))
          (setsockopt server-socket SOL_SOCKET SO_REUSEADDR 1)
          (bind server-socket AF_INET INADDR_ANY port)
          (listen server-socket 5)))
-)
+
+  (set! check-connections
+       (lambda ()
+         (catch #t
+                (lambda () (set! clients (cons (accept server-socket) clients)))
+                (lambda (key . args) #f))))
+
+  (set! stop-server
+       (lambda ()
+         (cond (server-socket (close server-socket) (set! server-socket #f)))
\ No newline at end of file