From da76638c8237908ae5d3196b97dec2e879704d52 Mon Sep 17 00:00:00 2001 From: mainzelm Date: Thu, 20 Feb 2003 17:18:56 +0000 Subject: [PATCH] Added bind-prepare-listen-accept-loop. --- scsh/network.scm | 10 ++++++++++ scsh/scsh-interfaces.scm | 1 + 2 files changed, 11 insertions(+) diff --git a/scsh/network.scm b/scsh/network.scm index cd2d833..a44ed21 100644 --- a/scsh/network.scm +++ b/scsh/network.scm @@ -48,6 +48,9 @@ #f)))) (define (bind-listen-accept-loop protocol-family proc arg) + (bind-prepare-listen-accept-loop protocol-family (lambda () #t) proc arg)) + +(define (bind-prepare-listen-accept-loop protocol-family prepare proc arg) (let* ((sock (create-socket protocol-family socket-type/stream)) (addr (cond ((= protocol-family protocol-family/internet) @@ -68,6 +71,13 @@ protocol-family))))) (set-socket-option sock level/socket socket/reuse-address #t) (bind-socket sock addr) + (with-handler + (lambda (condition more) + (with-handler + (lambda (condition ignore) (more)) + (lambda () (close-socket sock))) + (more)) + prepare) (listen-socket sock 5) (with-handler (lambda (condition more) diff --git a/scsh/scsh-interfaces.scm b/scsh/scsh-interfaces.scm index 98423e2..2b70070 100644 --- a/scsh/scsh-interfaces.scm +++ b/scsh/scsh-interfaces.scm @@ -695,6 +695,7 @@ (define-interface scsh-sockets-interface (export socket-connect bind-listen-accept-loop + bind-prepare-listen-accept-loop socket? socket:family socket:inport