+2015-08-12 Kevin Rosenberg <kevin@rosenberg.net>
+ * Version 6.6.3 release
+ * db-oracle/oracle-sql.lisp: Patch for PostgreSQL socket interface
+ for unicode characters. Thanks to Jason Melbye.
+
2015-03-30 Kevin Rosenberg <kevin@rosenberg.net>
* Version 6.6.2 release
* db-oracle/oracle-sql.lisp: Remove extra hyphen, thanks to
documentation. He has contributed to many of the re-design decisions
and new code for CLSQL.
-CLSQL's home is http://clsql.b9.com
+CLSQL's home is http://clsql.kpe.io
Enjoy!
for data definition and manipulation as well as an integrated symbolic
SQL syntax.
-CLSQL supports a number of RDBMS and uses the UFFI (http://uffi.b9.com)
+CLSQL supports a number of RDBMS and uses the UFFI (http://uffi.kpe.io)
library for compatibility with Allegro CL, Lispworks, CMUCL, SBCL and
OpenMCL.
- Paul Meurer's SQL/ODBC
- Cadabra's Oracle interface
-CLSQL's home is http://clsql.b9.com.
+CLSQL's home is http://clsql.kpe.io.
Documentation is available as a PDF file in doc/clsql.pdf and as HTML
files in doc/html.tar.gz.
------------
If you would like to report a bug please do so through the clsql
-mailing list. http://lists.b9.com/mailman/listinfo/CLSQL
+mailing list. http://lists.kpe.io/mailman/listinfo/CLSQL
Patches are welcome. It will be much easier for us to incorporate if
you use [git](http://git-scm.com/). Please keep distinct changes in
(int32 pid)
(int32 key))
+(defun read-bytes (socket length)
+ "Read a byte array of the given length from a stream."
+ (declare (type stream socket)
+ (type fixnum length)
+ (optimize (speed 3) (safety 0)))
+ (let ((result (make-array length :element-type '(unsigned-byte 8))))
+ (read-sequence result socket)
+ result))
(defun read-socket-sequence (stream length &optional (allow-wide t))
(declare (stream stream)
:database database :user user
:password (or password ""))))
-(defun encrypt-md5 (plaintext salt)
- (string-downcase
- (format nil "~{~2,'0X~}"
- (coerce (md5sum-string (concatenate 'string plaintext salt)) 'list))))
+(defun byte-sequence-to-hex-string (sequence)
+ (string-downcase (format nil "~{~2,'0X~}" (coerce sequence 'list))))
+
+(defun encrypt-password-md5 (password user salt)
+ (let ((pass1 (byte-sequence-to-hex-string
+ (md5::md5sum-string (concatenate 'string password user)))))
+ (byte-sequence-to-hex-string
+ (md5:md5sum-sequence (concatenate '(vector (unsigned-byte 8))
+ (map '(vector (unsigned-byte 8)) #'char-code pass1)
+ salt)))))
(defun reopen-postgresql-connection (connection)
"Reopen the given PostgreSQL connection. Closes any existing
(postgresql-connection-password connection) salt)))
(force-output socket))
(5
- (let ((salt (read-socket-sequence socket 4 nil)))
- (let* ((pwd2 (encrypt-md5 (postgresql-connection-password connection)
- (postgresql-connection-user connection)))
- (pwd (encrypt-md5 pwd2 salt)))
+ (let ((salt (read-bytes socket 4)))
+ (let ((pwd (encrypt-password-md5
+ (postgresql-connection-password connection)
+ (postgresql-connection-user connection)
+ salt)))
(send-encrypted-password-message
socket
(concatenate 'string "md5" pwd))))
#+lispworks (require "comm")
(defpackage #:postgresql-socket
- (:use #:cl md5)
+ (:use #:cl #:md5)
(:export #:pgsql-ftype
#:pgsql-ftype#bytea
#:pgsql-ftype#int2
#:copy-cursor-row
#:skip-cursor-row
))
-
+cl-sql (6.6.3-1) unstable; urgency=medium
+
+ * New upstream
+
+ -- Kevin M. Rosenberg <kmr@debian.org> Mon, 30 Mar 2015 14:46:53 -0600
+
cl-sql (6.6.2-1) unstable; urgency=medium
* New upstream
Maintainer: Kevin M. Rosenberg <kmr@debian.org>
Build-Depends: dh-lisp, debhelper (>= 7.0.0), libmysqlclient-dev, libpq-dev
Standards-Version: 3.9.6
-Homepage: http://clsql.b9.com/
-Vcs-Git: git://git.b9.com/clsql.git
-Vcs-Browser: http://git.b9.com/?p=clsql.git
+Homepage: http://clsql.kpe.io/
+Vcs-Git: git://git.kpe.io/clsql.git
+Vcs-Browser: http://git.kpe.io/?p=clsql.git
Package: cl-sql
Architecture: all
Debian Copyright Section
========================
-Upstream Source URL: http://files.b9.com/clsql
+Upstream Source URL: http://files.kpe.io/clsql
Upstream Author: Kevin M. Rosenberg <kmr@debian.org>
Debian Maintainer: (Same as upstream)
#!/bin/bash -e
-dup clsql -Ufiles.b9.com -D/home/ftp/clsql -su \
+dup clsql -Ufiles.kpe.io -D/home/ftp/clsql -su \
-C"(umask 022; cd /srv/www/html/clsql; make install; find . -type d |xargs chmod go+rx; find . -type f | xargs chmod go+r)" $*
version=3
-http://files.b9.com/clsql/clsql-([\d\.]*)\.tar\.gz debian uupdate
+http://files.kpe.io/clsql/clsql-([\d\.]*)\.tar\.gz debian uupdate
<title>&uffi;</title>
<para>
&clsql; uses <ulink
- url="http://uffi.b9.com/"><citetitle>&uffi;</citetitle></ulink>
+ url="http://uffi.kpe.io/"><citetitle>&uffi;</citetitle></ulink>
as a <emphasis>Foreign Function Interface</emphasis>
(<glossterm linkend="gloss-ffi">FFI</glossterm>) to support
multiple &cl; implementations.
<sect2>
<title>&md5;</title>
<para>&clsql;'s postgresql-socket interface uses Pierre Mai's
- <ulink url="http://files.b9.com/md5/">md5</ulink>
+ <ulink url="http://files.kpe.io/md5/">md5</ulink>
module.
</para>
</sect2>
contained in CLSQL's examples directory.
These tests require the downloading of the rt package from
-http://files.b9.com/.
+http://files.kpe.io/.
Load clsql.asd or put it somewhere where ASDF can find it
and call: