r11204: 22 Sep 2006 Kevin Rosenberg <kevin@rosenberg.net>
[kmrcl.git] / sockets.lisp
index 2d9a8ff0765072e03b5c43d5916f87a90fd7b110..74b4f36a13c042bc6240d9504465f7edb7f41883 100644 (file)
@@ -104,7 +104,7 @@ setsockopt SO_REUSEADDR if :reuse is not nil"
 
 (defun close-passive-socket (socket)
   #+allegro (close socket)
-  #+clisp (close socket)
+  #+clisp (ext:socket-server-close socket)
   #+cmu (unix:unix-close socket)
   #+sbcl (sb-unix:unix-close
          (sb-bsd-sockets:socket-file-descriptor socket))
@@ -186,6 +186,9 @@ setsockopt SO_REUSEADDR if :reuse is not nil"
     (values
      (sys:make-fd-stream sock :input t :output t :element-type 'base-char)
      sock))
+  #+clisp
+  (let ((sock (ext:socket-connect port server)))
+    (values sock sock))
   #+openmcl
   (let ((sock (ccl:make-socket :remote-host server :remote-port port )))
     (values sock sock))
@@ -203,6 +206,10 @@ setsockopt SO_REUSEADDR if :reuse is not nil"
   #+sbcl (ipaddr-array-to-dotted 
          (nth-value 0 (sb-bsd-sockets:socket-peername socket)))
   #+cmu (nth-value 0 (ext:get-peer-host-and-port socket))
+  #+clisp (let* ((peer (ext:socket-stream-peer socket t))
+                (stop (position #\Space peer)))
+           ;; 2.37-2.39 had do-not-resolve-p backwards
+           (if stop (subseq peer 0 stop) peer))
   #+openmcl (ccl:remote-host socket)
   )