(:float4 700)
(:float8 701)))
-(defmethod clsql-base-sys:database-type-library-loaded ((database-type
+(defmethod clsql-sys:database-type-library-loaded ((database-type
(eql :postgresql-socket)))
"T if foreign library was able to be loaded successfully. Always true for
socket interface"
t)
-(defmethod clsql-base-sys:database-type-load-foreign ((database-type (eql :postgresql-socket)))
+(defmethod clsql-sys:database-type-load-foreign ((database-type (eql :postgresql-socket)))
t)
;;; Support for encrypted password transmission
#-scl
-(eval-when (compile eval load)
+(eval-when (:compile-toplevel :load-toplevel :execute)
(defvar *crypt-library-loaded* nil)
(unless *crypt-library-loaded*
(uffi:load-foreign-library
(uffi:find-foreign-library "libcrypt"
- '("/usr/lib/" "/usr/local/lib/" "/lib/"))
+ '(#+64bit "/usr/lib64/"
+ "/usr/lib/" "/usr/local/lib/" "/lib/"))
:supporting-libraries '("c"))
(setq *crypt-library-loaded* t)))
(in-package :postgresql-socket)
-(uffi:def-function "crypt"
+(uffi:def-function ("crypt" crypt)
((key :cstring)
(salt :cstring))
:returning :cstring)
(3
(send-unencrypted-password-message
socket
- (postgresql-connection-password connection)))
+ (postgresql-connection-password connection))
+ (force-output socket))
(4
(let ((salt (make-string 2)))
(read-socket-sequence salt socket)
(send-encrypted-password-message
socket
(crypt-password
- (postgresql-connection-password connection) salt))))
+ (postgresql-connection-password connection) salt)))
+ (force-output socket))
(5
(let ((salt (make-string 4)))
(read-socket-sequence salt socket)
(pwd (encrypt-md5 pwd2 salt)))
(send-encrypted-password-message
socket
- (concatenate 'string "md5" pwd)))))
+ (concatenate 'string "md5" pwd))))
+ (force-output socket))
(t
(error 'postgresql-login-error
:connection connection
:connection connection :message message))))
(#.+notice-response-message+
(let ((message (read-socket-value-string socket)))
- (warn 'postgresql-warning
- :connection connection :message message)))
+ (unless (eq :ignore clsql-sys:*backend-warning-behavior*)
+ (warn 'postgresql-warning
+ :connection connection :message message))))
(#.+notification-response-message+
(let ((pid (read-socket-value-int32 socket))
(message (read-socket-value-string socket)))