X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=db-postgresql-socket%2Fpostgresql-socket-api.lisp;h=572e5cf7b16794caee2dd2934031c75f0d7cef0c;hp=13ce8e9965d2f5a1765796c904c4bdaabd5e162f;hb=66b64b326d109d6cb0d96923b60ed6aaeaeabb21;hpb=5691bb90517d7c565a141d131da76c3de1f8d566 diff --git a/db-postgresql-socket/postgresql-socket-api.lisp b/db-postgresql-socket/postgresql-socket-api.lisp index 13ce8e9..572e5cf 100644 --- a/db-postgresql-socket/postgresql-socket-api.lisp +++ b/db-postgresql-socket/postgresql-socket-api.lisp @@ -310,7 +310,6 @@ socket interface" (defvar *postgresql-server-socket-timeout* 60 "Timeout in seconds for reads from the PostgreSQL server.") - #+(or cmu scl) (defun open-postgresql-socket (host port) (etypecase host @@ -323,6 +322,26 @@ socket interface" (string (ext:connect-to-inet-socket host port)))) +#+sbcl +(defun open-postgresql-socket (host port) + (etypecase host + (pathname + ;; Directory to unix-domain socket + (sb-bsd-sockets:socket-connect + (namestring + (make-pathname :name ".s.PGSQL" :type (princ-to-string port) + :defaults host)))) + (string + (let ((sock (make-instance 'sb-bsd-sockets:inet-socket + :type :stream + :protocol :tcp))) + (sb-bsd-sockets:socket-connect + sock + (sb-bsd-sockets:host-ent-address + (sb-bsd-sockets:get-host-by-name host)) + port) + sock)))) + #+(or cmu scl) (defun open-postgresql-socket-stream (host port) (system:make-fd-stream @@ -334,11 +353,10 @@ socket interface" #+sbcl (defun open-postgresql-socket-stream (host port) - (sb-sys:make-fd-stream - (open-postgresql-socket host port) - :input t :output t :element-type '(unsigned-byte 8) - :buffering :none - :timeout *postgresql-server-socket-timeout*)) + (sb-bsd-sockets:socket-make-stream + (open-postgresql-socket host port) :input t :output t + :element-type '(unsigned-byte 8))) + #+allegro (defun open-postgresql-socket-stream (host port)