r8893: initial openmcl port
[clsql.git] / db-postgresql-socket / postgresql-socket-api.lisp
index 572e5cf7b16794caee2dd2934031c75f0d7cef0c..a1283951c30b0f6afbdc83f6c59517d94d044ab3 100644 (file)
@@ -375,6 +375,23 @@ socket interface"
                               :remote-port port :remote-host host
                               :connect :active :nodelay t))))))
 
+#+openmcl
+(defun open-postgresql-socket-stream (host port)
+  (etypecase host
+    (pathname
+     (let ((path (namestring
+                 (make-pathname :name ".s.PGSQL" :type (princ-to-string port)
+                                :defaults host))))
+       (ccl:make-socket :type :stream :address-family :file
+                       :connect :active
+                       :remote-filename path :local-filename path)))
+    (string
+     (socket:with-pending-connect
+        (mp:with-timeout (*postgresql-server-socket-timeout* (error "connect failed"))
+          (ccl:make-socket :type :stream :address-family :internet
+                           :remote-port port :remote-host host
+                           :connect :active :nodelay t))))))
+
 #+lispworks
 (defun open-postgresql-socket-stream (host port)
   (etypecase host