;;; -*- Mode:Lisp; Syntax:Common-lisp; Package: modlisp; Base:10 -*- (in-package #:modlisp) (defun make-socket-server (name port function &key wait (format :text)) (declare (ignore name)) (let ((passive-socket (ext:socket-server port))) (values (start-socket-server passive-socket function :wait wait) passive-socket))) (defun start-socket-server (passive-socket function &key wait) (unwind-protect (loop (let ((connection (ext:socket-accept passive-socket))) (unwind-protect (apache-command-issuer connection function) (ignore-errors (close connection))))) (ignore-errors (close passive-socket))))