r11204: 22 Sep 2006 Kevin Rosenberg <kevin@rosenberg.net>
[kmrcl.git] / sockets.lisp
index cbadc07c608c70f377e1b28cddeab97552e5b72e..74b4f36a13c042bc6240d9504465f7edb7f41883 100644 (file)
@@ -84,7 +84,7 @@ setsockopt SO_REUSEADDR if :reuse is not nil"
     (let ((sock (sb-bsd-sockets:socket-accept listener)))
       (values
        (sb-bsd-sockets:socket-make-stream
-       sock :element-type 'base-char :input t :output t)
+       sock :element-type :default :input t :output t)
        sock)))
   #+openmcl 
   (let ((sock (ccl:accept-connection listener :wait t)))
@@ -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))
@@ -115,7 +115,8 @@ setsockopt SO_REUSEADDR if :reuse is not nil"
 
 
 (defun close-active-socket (socket)
-  (close socket))
+  #+sbcl (sb-bsd-sockets:socket-close socket)
+  #-sbcl (close socket))
 
 (defun ipaddr-to-dotted (ipaddr &key values)
   "Convert from 32-bit integer to dotted string."
@@ -178,13 +179,16 @@ setsockopt SO_REUSEADDR if :reuse is not nil"
     (sb-bsd-sockets:socket-connect sock (lookup-hostname server) port)
     (values
      (sb-bsd-sockets:socket-make-stream
-      sock :input t :output t :element-type 'base-char)
+      sock :input t :output t :element-type :default)
      sock))
   #+cmu
   (let ((sock (ext:connect-to-inet-socket server port)))
     (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))
@@ -202,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)
   )