It doesn't compile with sbcl for me. The following patch fixes that, and makes my test case run. Server sockets still don't work, though...
diff -c -L /sshx:ktisis:/tmp/port/net.lisp~ -L /sshx:ktisis:/tmp/port/net.lisp /tmp/tramp.798Djp /tmp/tramp.798Qtv --- /sshx:ktisis:/tmp/port/net.lisp~ +++ /sshx:ktisis:/tmp/port/net.lisp @@ -45,7 +45,7 @@ #+allegro (socket:ipaddr-to-dotted ipaddr) #+openmcl (ccl:ipaddr-to-dotted ipaddr) #+(and sbcl net.sbcl.sockets) (net.sbcl.sockets:ipaddr-to-dot-string ipaddr) - #-(or allegro openmcl sbcl) + #-(or allegro openmcl (and sbcl net.sbcl.sockets)) (format nil "~d.~d.~d.~d" (logand #xff (ash ipaddr -24)) (logand #xff (ash ipaddr -16)) (logand #xff (ash ipaddr -8)) (logand #xff ipaddr))) @@ -58,7 +58,7 @@ #+allegro (socket:dotted-to-ipaddr dotted) #+openmcl (ccl:dotted-to-ipaddr dotted) #+(and sbcl net.sbcl.sockets) (net.sbcl.sockets:dot-string-to-ipaddr dotted) - #-(or allegro openmcl sbcl) + #-(or allegro openmcl (and sbcl net.sbcl.sockets)) (let ((ll (string-tokens (substitute #\Space #\. dotted)))) (+ (ash (first ll) 24) (ash (second ll) 16) (ash (third ll) 8) (fourth ll)))) @@ -202,8 +202,9 @@ #+gcl 'stream #+lispworks 'comm:socket-stream #+openmcl 'ccl::socket - #+(or (and sbcl (not (or db-sockets net.sbcl.sockets))) (and sbcl db-sockets)) 'sb-sys:fd-stream + #+(and sbcl db-sockets) 'sb-sys:fd-stream #+(and sbcl net.sbcl.sockets) 'net.sbcl.sockets:stream-socket + #+(and sbcl (not (or db-sockets net.sbcl.sockets))) 'sb-bsd-sockets:socket #-(or abcl allegro clisp cmu gcl lispworks openmcl sbcl scl) 'stream) @@ -305,13 +306,12 @@ (ccl:ipaddr-to-dotted (ccl:local-host sock)) (ccl:local-port sock)) #+(and sbcl (not (or db-sockets net.sbcl.sockets))) - (let ((sock (sb-sys:fd-stream-fd sock))) - (multiple-value-bind (remote remote-port) (sb-bsd-sockets:socket-peername sock) - (multiple-value-bind (local local-port) (sb-bsd-sockets:socket-name sock) - (values (ipaddr-to-dotted (vector-to-ipaddr remote)) - remote-port - (ipaddr-to-dotted (vector-to-ipaddr local)) - local-port)))) + (multiple-value-bind (remote remote-port) (sb-bsd-sockets:socket-peername sock) + (multiple-value-bind (local local-port) (sb-bsd-sockets:socket-name sock) + (values (ipaddr-to-dotted (vector-to-ipaddr remote)) + remote-port + (ipaddr-to-dotted (vector-to-ipaddr local)) + local-port))) #+(and sbcl db-sockets) (let ((sock (sb-sys:fd-stream-fd sock))) (multiple-value-bind (remote remote-port) (sockets:socket-peername sock) @@ -323,7 +323,7 @@ #+(and sbcl net.sbcl.sockets) (net.sbcl.sockets:socket-host-port sock) #-(or allegro clisp cmu gcl lispworks mcl - (and sbcl (or net.sbcl.sockets db-sockets)) scl) + sbcl scl) (error 'not-implemented :proc (list 'socket-host/port sock))) (defun socket-string (sock) @@ -348,8 +348,9 @@ #+(or cmu scl) 'integer #+gcl 'si:socket-stream #+mcl 'ccl::listener-socket - #+(or (and sbcl (not (or db-sockets net.sbcl.sockets))) (and sbcl db-sockets)) 'sb-sys:fd-stream + #+(and sbcl db-sockets) 'sb-sys:fd-stream #+(and sbcl net.sbcl.sockets) 'net.sbcl.sockets:passive-socket + #+(and sbcl (not (or db-sockets net.sbcl.sockets))) 'sb-bsd-sockets:socket #-(or abcl allegro clisp cmu gcl mcl sbcl scl) t) @@ -376,7 +377,8 @@ #+(and sbcl (not (or db-sockets net.sbcl.sockets))) (let ((socket (make-instance 'sb-bsd-sockets:inet-socket :type :stream :protocol :tcp))) - (sb-bsd-sockets:socket-bind socket (vector 0 0 0 0) (or port 0))) + (sb-bsd-sockets:socket-bind socket (vector 0 0 0 0) (or port 0)) + socket) #+(and sbcl db-sockets) (let ((socket (make-instance 'sockets:inet-socket :type :stream :protocol :tcp))) @@ -498,7 +500,7 @@ #+openmcl (values (ccl:ipaddr-to-dotted (ccl:local-host server)) (ccl:local-port server)) - #+(and sbcl db-sockets) + #+(and sbcl (not (or db-sockets net.sbcl.sockets))) (multiple-value-bind (addr port) (sb-bsd-sockets:socket-name server) (values (vector-to-ipaddr addr) port)) #+(and sbcl db-sockets) Diff finished. Tue Aug 9 21:31:43 2005 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]