From bknr at bknr.net Tue Aug 16 07:48:04 2011 From: bknr at bknr.net (BKNR Commits) Date: Tue, 16 Aug 2011 09:48:04 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/ Message-ID: Revision: 4669 Author: hans URL: http://bknr.net/trac/changeset/4669 ACL modern mode fixes U trunk/thirdparty/hunchentoot/packages.lisp U trunk/thirdparty/hunchentoot/test/packages.lisp Change set too large, please see URL above From bknr at bknr.net Mon Aug 29 05:42:51 2011 From: bknr at bknr.net (BKNR Commits) Date: Mon, 29 Aug 2011 07:42:51 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/misc.lisp Message-ID: Revision: 4670 Author: hans URL: http://bknr.net/trac/changeset/4670 Set content-type and last-modified headers of served static files before handling if-modified-since, thanks to Wukix Inc. for reporting. U trunk/thirdparty/hunchentoot/misc.lisp Modified: trunk/thirdparty/hunchentoot/misc.lisp =================================================================== --- trunk/thirdparty/hunchentoot/misc.lisp 2011-08-16 07:47:58 UTC (rev 4669) +++ trunk/thirdparty/hunchentoot/misc.lisp 2011-08-29 05:42:50 UTC (rev 4670) @@ -159,16 +159,16 @@ (let ((time (or (file-write-date pathname) (get-universal-time))) bytes-to-send) + (setf (content-type*) (or content-type + (mime-type pathname) + "application/octet-stream") + (header-out :last-modified) (rfc-1123-date time)) (handle-if-modified-since time) (with-open-file (file pathname :direction :input :element-type 'octet :if-does-not-exist nil) - (setf (content-type*) (or content-type - (mime-type pathname) - "application/octet-stream") - (header-out :content-range) (format nil "bytes 0-~D/*" (file-length file)) - (header-out :last-modified) (rfc-1123-date time) + (setf (header-out :content-range) (format nil "bytes 0-~D/*" (1- (file-length file))) bytes-to-send (maybe-handle-range-header file) (content-length*) bytes-to-send) (let ((out (send-headers)) From bknr at bknr.net Mon Aug 29 07:11:05 2011 From: bknr at bknr.net (BKNR Commits) Date: Mon, 29 Aug 2011 09:11:05 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/misc.lisp Message-ID: Revision: 4671 Author: hans URL: http://bknr.net/trac/changeset/4671 Range handling fixes: Add "Accept-Ranges" header to static file responses, report range only in partial responses, Fix off-by-one errors (ranges are inclusive). Thanks to Wukix Inc. for reporting. U trunk/thirdparty/hunchentoot/misc.lisp Modified: trunk/thirdparty/hunchentoot/misc.lisp =================================================================== --- trunk/thirdparty/hunchentoot/misc.lisp 2011-08-29 05:42:50 UTC (rev 4670) +++ trunk/thirdparty/hunchentoot/misc.lisp 2011-08-29 07:11:05 UTC (rev 4671) @@ -139,10 +139,11 @@ (setf (return-code*) +http-requested-range-not-satisfiable+) (throw 'handler-done (format nil "invalid request range (requested ~D-~D, accepted 0-~D)" - start end (file-length file)))) + start end (1- (file-length file))))) (file-position file start) (setf (return-code*) +http-partial-content+ - bytes-to-send (1+ (- end start)))) + bytes-to-send (1+ (- end start)) + (header-out :content-range) (format nil "bytes ~D-~D/*" start end))) bytes-to-send)) (defun handle-static-file (pathname &optional content-type) @@ -162,14 +163,14 @@ (setf (content-type*) (or content-type (mime-type pathname) "application/octet-stream") - (header-out :last-modified) (rfc-1123-date time)) + (header-out :last-modified) (rfc-1123-date time) + (header-out :accept-ranges) "bytes") (handle-if-modified-since time) (with-open-file (file pathname :direction :input :element-type 'octet :if-does-not-exist nil) - (setf (header-out :content-range) (format nil "bytes 0-~D/*" (1- (file-length file))) - bytes-to-send (maybe-handle-range-header file) + (setf bytes-to-send (maybe-handle-range-header file) (content-length*) bytes-to-send) (let ((out (send-headers)) (buf (make-array +buffer-length+ :element-type 'octet))) From bknr at bknr.net Mon Aug 29 07:42:22 2011 From: bknr at bknr.net (BKNR Commits) Date: Mon, 29 Aug 2011 09:42:22 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/misc.lisp Message-ID: Revision: 4672 Author: hans URL: http://bknr.net/trac/changeset/4672 report acceptable ranges in 416 response U trunk/thirdparty/hunchentoot/misc.lisp Modified: trunk/thirdparty/hunchentoot/misc.lisp =================================================================== --- trunk/thirdparty/hunchentoot/misc.lisp 2011-08-29 07:11:05 UTC (rev 4671) +++ trunk/thirdparty/hunchentoot/misc.lisp 2011-08-29 07:42:22 UTC (rev 4672) @@ -136,7 +136,8 @@ end (parse-integer end)) (when (or (< start 0) (>= end (file-length file))) - (setf (return-code*) +http-requested-range-not-satisfiable+) + (setf (return-code*) +http-requested-range-not-satisfiable+ + (header-out :content-range) (format nil "bytes 0-~D/*" (1- (file-length file)))) (throw 'handler-done (format nil "invalid request range (requested ~D-~D, accepted 0-~D)" start end (1- (file-length file))))) From bknr at bknr.net Mon Aug 29 07:42:59 2011 From: bknr at bknr.net (BKNR Commits) Date: Mon, 29 Aug 2011 09:42:59 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/test/script.lisp Message-ID: Revision: 4673 Author: hans URL: http://bknr.net/trac/changeset/4673 fix range response tests U trunk/thirdparty/hunchentoot/test/script.lisp Modified: trunk/thirdparty/hunchentoot/test/script.lisp =================================================================== --- trunk/thirdparty/hunchentoot/test/script.lisp 2011-08-29 07:42:22 UTC (rev 4672) +++ trunk/thirdparty/hunchentoot/test/script.lisp 2011-08-29 07:42:59 UTC (rev 4673) @@ -136,7 +136,7 @@ (let* ((range-test-file-size (* 256 1024)) ; large enough to have hunchentoot use multiple buffers when reading back data, should be aligned to 1024 (range-test-buffer (make-array range-test-file-size :element-type '(unsigned-byte 8))) (uploaded-file-url "files/?path=user-stream") ; The uploaded file will appear under the name "user-stream" in hunchentoot - (expected-content-range (format nil "bytes 0-~D/*" range-test-file-size))) + (expected-content-range (format nil "bytes 0-~D/*" (1- range-test-file-size)))) (dotimes (i range-test-file-size) (setf (aref range-test-buffer i) (random 256))) @@ -156,7 +156,7 @@ (http-request uploaded-file-url :range '(0 0)) (http-assert 'status-code 206) (http-assert 'body 'equalp (subseq range-test-buffer 0 1)) - (http-assert-header :content-range expected-content-range) + (http-assert-header :content-range (format nil "bytes 0-0")) (say " End out of range") (http-request uploaded-file-url :range (list 0 range-test-file-size)) @@ -175,7 +175,7 @@ (http-request uploaded-file-url :range (list start-offset (1- length))) (http-assert 'status-code 206) (http-assert 'body 'equalp (subseq range-test-buffer start-offset length)) - (http-assert-header :content-range expected-content-range))) + (http-assert-header :content-range (format nil "bytes ~D-~D" start-offset (1- length))))) (values))) From bknr at bknr.net Mon Aug 29 08:48:51 2011 From: bknr at bknr.net (BKNR Commits) Date: Mon, 29 Aug 2011 10:48:51 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/headers.lisp Message-ID: Revision: 4674 Author: hans URL: http://bknr.net/trac/changeset/4674 Reject requests with non-ASCII characters in request line. U trunk/thirdparty/hunchentoot/headers.lisp Modified: trunk/thirdparty/hunchentoot/headers.lisp =================================================================== --- trunk/thirdparty/hunchentoot/headers.lisp 2011-08-29 07:42:59 UTC (rev 4673) +++ trunk/thirdparty/hunchentoot/headers.lisp 2011-08-29 08:48:51 UTC (rev 4674) @@ -224,13 +224,16 @@ (read-line* stream))) ((or end-of-file #-:lispworks usocket:timeout-error) ()))) -(defun send-bad-request-response (stream) +(defun send-bad-request-response (stream &optional additional-info) "Send a ``Bad Request'' response to the client." (write-sequence (flex:string-to-octets - (format nil "HTTP/1.0 ~D ~A~C~CConnection: close~C~C~C~CYour request could not be interpreted by this HTTP server~C~C" + (format nil "HTTP/1.0 ~D ~A~C~CConnection: close~C~C~C~CYour request could not be interpreted by this HTTP server~C~C~@[~A~]~C~C" +http-bad-request+ (reason-phrase +http-bad-request+) #\Return #\Linefeed - #\Return #\Linefeed #\Return #\Linefeed #\Return #\Linefeed)) + #\Return #\Linefeed #\Return #\Linefeed #\Return #\Linefeed additional-info #\Return #\Linefeed)) stream)) + +(defun printable-ascii-char-p (char) + (<= 32 (char-code char) 126)) (defun get-request-data (stream) "Reads incoming headers from the client via STREAM. Returns as @@ -239,6 +242,9 @@ (with-character-stream-semantics (let ((first-line (read-initial-request-line stream))) (when first-line + (unless (every #'printable-ascii-char-p first-line) + (send-bad-request-response stream "Non-ASCII character in request line") + (return-from get-request-data nil)) (destructuring-bind (&optional method url-string protocol) (split "\\s+" first-line :limit 3) (unless url-string From bknr at bknr.net Mon Aug 29 09:38:09 2011 From: bknr at bknr.net (BKNR Commits) Date: Mon, 29 Aug 2011 11:38:09 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/ Message-ID: Revision: 4675 Author: hans URL: http://bknr.net/trac/changeset/4675 Be explicit about external format in test script. Ignore GET parameter decoding errors, as they will presumably be fixed by recompute-request-parameters. --This line, and those below, will be ignored-- M test/script.lisp M test/script-engine.lisp M request.lisp U trunk/thirdparty/hunchentoot/request.lisp U trunk/thirdparty/hunchentoot/test/script-engine.lisp U trunk/thirdparty/hunchentoot/test/script.lisp Modified: trunk/thirdparty/hunchentoot/request.lisp =================================================================== --- trunk/thirdparty/hunchentoot/request.lisp 2011-08-29 08:48:51 UTC (rev 4674) +++ trunk/thirdparty/hunchentoot/request.lisp 2011-08-29 09:38:09 UTC (rev 4675) @@ -196,7 +196,8 @@ ;; compute GET parameters from query string and cookies from ;; the incoming 'Cookie' header (setq get-parameters - (form-url-encoded-list-to-alist (split "&" query-string)) + (let ((*substitution-char* #\?)) + (form-url-encoded-list-to-alist (split "&" query-string))) cookies-in (form-url-encoded-list-to-alist (split "\\s*[,;]\\s*" (cdr (assoc :cookie headers-in :test #'eq))) Modified: trunk/thirdparty/hunchentoot/test/script-engine.lisp =================================================================== --- trunk/thirdparty/hunchentoot/test/script-engine.lisp 2011-08-29 08:48:51 UTC (rev 4674) +++ trunk/thirdparty/hunchentoot/test/script-engine.lisp 2011-08-29 09:38:09 UTC (rev 4675) @@ -168,9 +168,10 @@ cookie-jar basic-authorization parameters - external-format-out) + external-format-out + additional-headers) (declare (ignore protocol method content content-type content-length cookie-jar basic-authorization - range parameters external-format-out)) + range parameters external-format-out additional-headers)) (setf *last-reply* (make-instance 'http-reply)) (with-slots (body status-code headers uri stream close) *last-reply* (setf (values body status-code headers uri stream close) Modified: trunk/thirdparty/hunchentoot/test/script.lisp =================================================================== --- trunk/thirdparty/hunchentoot/test/script.lisp 2011-08-29 08:48:51 UTC (rev 4674) +++ trunk/thirdparty/hunchentoot/test/script.lisp 2011-08-29 09:38:09 UTC (rev 4675) @@ -72,20 +72,26 @@ (http-assert-body "\(HUNCHENTOOT-TEST::BAR . "DEF"\)")) (say "Test GET parameters with foreign characters (Latin-1)") - (http-request "parameter_latin1_get.html?foo=H%FChner") + (http-request "parameter_latin1_get.html" + :external-format-out :iso-8859-1 + :parameters (list (cons "foo" (format nil "H~Chner" #.(code-char 252)))) + :additional-headers '(("Content-Type" . "text/plain; charset=iso-8859-1"))) (http-assert-header :content-type "text/html; charset=ISO-8859-1") (http-assert-body "(72 252 104 110 101 114)") (http-assert-body ""Hühner"") (say "Test POST parameters with foreign characters (Latin-1)") (http-request "parameter_latin1_post.html" + :external-format-out :iso-8859-1 :method :post :parameters (list (cons "foo" (format nil "H~Chner" #.(code-char 252))))) (http-assert-header :content-type "text/html; charset=ISO-8859-1") (http-assert-body "(72 252 104 110 101 114)") (http-assert-body ""Hühner"") (say "Test GET parameters with foreign characters (UTF-8)") - (http-request "parameter_utf8_get.html?foo=H%C3%BChner") + (http-request "parameter_utf8_get.html" + :external-format-out :utf-8 + :parameters (list (cons "foo" (format nil "H~Chner" #.(code-char 252))))) (http-assert-header :content-type "text/html; charset=UTF-8") (http-assert-body "(72 252 104 110 101 114)") (http-assert-body ""Hühner"") From bknr at bknr.net Mon Aug 29 09:39:54 2011 From: bknr at bknr.net (BKNR Commits) Date: Mon, 29 Aug 2011 11:39:54 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/specials.lisp Message-ID: Revision: 4676 Author: hans URL: http://bknr.net/trac/changeset/4676 Change defparameters into defvars so that user customizations in a running image are not overwritten when Hunchentoot is recompiled. U trunk/thirdparty/hunchentoot/specials.lisp Modified: trunk/thirdparty/hunchentoot/specials.lisp =================================================================== --- trunk/thirdparty/hunchentoot/specials.lisp 2011-08-29 09:38:09 UTC (rev 4675) +++ trunk/thirdparty/hunchentoot/specials.lisp 2011-08-29 09:39:54 UTC (rev 4676) @@ -114,16 +114,16 @@ "The three-character names of the twelve months - needed for cookie date format.") -(defparameter *rewrite-for-session-urls* t +(defvar *rewrite-for-session-urls* t "Whether HTML pages should possibly be rewritten for cookie-less session-management.") -(defparameter *content-types-for-url-rewrite* +(defvar *content-types-for-url-rewrite* '("text/html" "application/xhtml+xml") "The content types for which url-rewriting is OK. See *REWRITE-FOR-SESSION-URLS*.") -(defparameter *the-random-state* (make-random-state t) +(defvar *the-random-state* (make-random-state t) "A fresh random state.") (defvar-unbound *session-secret* @@ -154,20 +154,20 @@ (defvar *session-db* nil "The default \(global) session database.") -(defparameter *session-max-time* #.(* 30 60) +(defvar *session-max-time* #.(* 30 60) "The default time \(in seconds) after which a session times out.") -(defparameter *session-gc-frequency* 50 +(defvar *session-gc-frequency* 50 "A session GC \(see function SESSION-GC) will happen every *SESSION-GC-FREQUENCY* requests \(counting only requests which create a new session) if this variable is not NIL. See SESSION-CREATED.") -(defparameter *use-user-agent-for-sessions* t +(defvar *use-user-agent-for-sessions* t "Whether the 'User-Agent' header should be encoded into the session string. If this value is true, a session will cease to be accessible if the client sends a different 'User-Agent' header.") -(defparameter *use-remote-addr-for-sessions* nil +(defvar *use-remote-addr-for-sessions* nil "Whether the client's remote IP \(as returned by REAL-REMOTE-ADDR) should be encoded into the session string. If this value is true, a session will cease to be accessible if the client's remote IP changes. @@ -175,42 +175,42 @@ This might for example be an issue if the client uses a proxy server which doesn't send correct 'X_FORWARDED_FOR' headers.") -(defparameter *default-content-type* "text/html" +(defvar *default-content-type* "text/html" "The default content-type header which is returned to the client. If this is text content type, the character set used for encoding the response will automatically be added to the content type in a ``charset'' attribute.") -(defparameter *methods-for-post-parameters* '(:post) +(defvar *methods-for-post-parameters* '(:post) "A list of the request method types \(as keywords) for which Hunchentoot will try to compute POST-PARAMETERS.") -(defparameter *header-stream* nil +(defvar *header-stream* nil "If this variable is not NIL, it should be bound to a stream to which incoming and outgoing headers will be written for debugging purposes.") -(defparameter *show-lisp-errors-p* nil +(defvar *show-lisp-errors-p* nil "Whether Lisp errors in request handlers should be shown in HTML output.") -(defparameter *show-lisp-backtraces-p* t +(defvar *show-lisp-backtraces-p* t "Whether Lisp errors shown in HTML output should contain backtrace information.") -(defparameter *log-lisp-errors-p* t +(defvar *log-lisp-errors-p* t "Whether Lisp errors in request handlers should be logged.") -(defparameter *log-lisp-backtraces-p* t +(defvar *log-lisp-backtraces-p* t "Whether Lisp backtraces should be logged. Only has an effect if *LOG-LISP-ERRORS-P* is true as well.") -(defparameter *log-lisp-warnings-p* t +(defvar *log-lisp-warnings-p* t "Whether Lisp warnings in request handlers should be logged.") -(defparameter *lisp-errors-log-level* :error +(defvar *lisp-errors-log-level* :error "Log level for Lisp errors. Should be one of :ERROR \(the default), :WARNING, or :INFO.") -(defparameter *lisp-warnings-log-level* :warning +(defvar *lisp-warnings-log-level* :warning "Log level for Lisp warnings. Should be one of :ERROR, :WARNING \(the default), or :INFO.") @@ -222,7 +222,7 @@ "A global lock to prevent concurrent access to the log file used by the ACCEPTOR-LOG-ACCESS function.") -(defparameter *catch-errors-p* t +(defvar *catch-errors-p* t "Whether Hunchentoot should catch and log errors \(or rather invoke the debugger).") @@ -246,7 +246,7 @@ #+:openmcl "http://openmcl.clozure.com/" "A link to the website of the underlying Lisp implementation.") -(defparameter *tmp-directory* +(defvar *tmp-directory* #+(or :win32 :mswindows) "c:\\hunchentoot-temp\\" #-(or :win32 :mswindows) "/tmp/hunchentoot/" "Directory for temporary files created by MAKE-TMP-FILE-NAME.") @@ -264,13 +264,13 @@ "A FLEXI-STREAMS external format used internally for logging and to encode cookie values.") -(defparameter *hunchentoot-default-external-format* +utf-8+ +(defvar *hunchentoot-default-external-format* +utf-8+ "The external format used to compute the REQUEST object.") (defconstant +buffer-length+ 8192 "Length of buffers used for internal purposes.") -(defparameter *default-connection-timeout* 20 +(defvar *default-connection-timeout* 20 "The default connection timeout used when an acceptor is reading from and writing to a socket stream.") @@ -295,7 +295,7 @@ ;; see ;; and -(defparameter *hyperdoc-base-uri* "http://weitz.de/hunchentoot/") +(defvar *hyperdoc-base-uri* "http://weitz.de/hunchentoot/") (let ((exported-symbols-alist (loop for symbol being the external-symbols of :hunchentoot From bknr at bknr.net Mon Aug 29 09:42:54 2011 From: bknr at bknr.net (BKNR Commits) Date: Mon, 29 Aug 2011 11:42:54 +0200 Subject: [bknr-cvs] hans changed trunk/thirdparty/hunchentoot/test/script.lisp Message-ID: Revision: 4677 Author: hans URL: http://bknr.net/trac/changeset/4677 slightly clarify test U trunk/thirdparty/hunchentoot/test/script.lisp Modified: trunk/thirdparty/hunchentoot/test/script.lisp =================================================================== --- trunk/thirdparty/hunchentoot/test/script.lisp 2011-08-29 09:39:54 UTC (rev 4676) +++ trunk/thirdparty/hunchentoot/test/script.lisp 2011-08-29 09:42:54 UTC (rev 4677) @@ -141,8 +141,7 @@ (say " Upload file") (let* ((range-test-file-size (* 256 1024)) ; large enough to have hunchentoot use multiple buffers when reading back data, should be aligned to 1024 (range-test-buffer (make-array range-test-file-size :element-type '(unsigned-byte 8))) - (uploaded-file-url "files/?path=user-stream") ; The uploaded file will appear under the name "user-stream" in hunchentoot - (expected-content-range (format nil "bytes 0-~D/*" (1- range-test-file-size)))) + (uploaded-file-url "files/?path=user-stream")) ; The uploaded file will appear under the name "user-stream" in hunchentoot (dotimes (i range-test-file-size) (setf (aref range-test-buffer i) (random 256))) @@ -167,13 +166,13 @@ (say " End out of range") (http-request uploaded-file-url :range (list 0 range-test-file-size)) (http-assert 'status-code 416) - (http-assert-header :content-range expected-content-range) + (http-assert-header :content-range (format nil "bytes 0-~D/*" (1- range-test-file-size))) (say " Request whole file as partial") (http-request uploaded-file-url :range (list 0 (1- range-test-file-size))) (http-assert 'status-code 206) (http-assert 'body 'equalp range-test-buffer) - (http-assert-header :content-range expected-content-range) + (http-assert-header :content-range (format nil "bytes 0-~D/*" (1- range-test-file-size))) (say " Request something in the middle") (let ((start-offset (/ range-test-file-size 4)) From bknr at bknr.net Wed Aug 31 12:23:17 2011 From: bknr at bknr.net (BKNR Commits) Date: Wed, 31 Aug 2011 14:23:17 +0200 Subject: [bknr-cvs] edi changed trunk/thirdparty/drakma/ Message-ID: Revision: 4680 Author: edi URL: http://bknr.net/trac/changeset/4680 Cosmetics U trunk/thirdparty/drakma/doc/index.html U trunk/thirdparty/drakma/request.lisp Modified: trunk/thirdparty/drakma/doc/index.html =================================================================== --- trunk/thirdparty/drakma/doc/index.html 2011-08-31 12:11:24 UTC (rev 4679) +++ trunk/thirdparty/drakma/doc/index.html 2011-08-31 12:23:17 UTC (rev 4680) @@ -985,8 +985,8 @@ 'Accept' header sent - the default is "*/*". range optionally specifies a subrange of the resource to be requested. It must be -specified as list of two integers which indicate the start and -(inclusive) end offset of the requested range, in bytes +specified as a list of two integers which indicate the start and +(inclusive) end offset of the requested range, in bytes (i.e. octets).

If proxy is not NIL, it should be a string denoting Modified: trunk/thirdparty/drakma/request.lisp =================================================================== --- trunk/thirdparty/drakma/request.lisp 2011-08-31 12:11:24 UTC (rev 4679) +++ trunk/thirdparty/drakma/request.lisp 2011-08-31 12:23:17 UTC (rev 4680) @@ -321,8 +321,9 @@ sent. RANGE optionally specifies a subrange of the resource to be requested. -It must be specified as list of two integers which indicate the start -and (inclusive) end offset of the requested range, in bytes. +It must be specified as a list of two integers which indicate the +start and \(inclusive) end offset of the requested range, in bytes +\(i.e. octets). If PROXY is not NIL, it should be a string denoting a proxy server through which the request should be sent. Or it can be a From bknr at bknr.net Wed Aug 31 12:11:25 2011 From: bknr at bknr.net (BKNR Commits) Date: Wed, 31 Aug 2011 14:11:25 +0200 Subject: [bknr-cvs] edi changed tags/thirdparty/cl-unicode-0.1.2/ Message-ID: Revision: 4679 Author: edi URL: http://bknr.net/trac/changeset/4679 Tag cl-unicode 0.1.2 A tags/thirdparty/cl-unicode-0.1.2/ From bknr at bknr.net Wed Aug 31 12:09:56 2011 From: bknr at bknr.net (BKNR Commits) Date: Wed, 31 Aug 2011 14:09:56 +0200 Subject: [bknr-cvs] edi changed trunk/thirdparty/cl-unicode/ Message-ID: Revision: 4678 Author: edi URL: http://bknr.net/trac/changeset/4678 0.1.2 release U trunk/thirdparty/cl-unicode/CHANGELOG.txt U trunk/thirdparty/cl-unicode/build/dump.lisp U trunk/thirdparty/cl-unicode/cl-unicode.asd U trunk/thirdparty/cl-unicode/doc/index.html Modified: trunk/thirdparty/cl-unicode/CHANGELOG.txt =================================================================== --- trunk/thirdparty/cl-unicode/CHANGELOG.txt 2011-08-29 09:42:54 UTC (rev 4677) +++ trunk/thirdparty/cl-unicode/CHANGELOG.txt 2011-08-31 12:09:56 UTC (rev 4678) @@ -1,3 +1,5 @@ +Version 0.1.2 +2011-08-31 Make pathname creation conformant (thanks to Juan Jos? Garcia-Ripoll) Version 0.1.1 Modified: trunk/thirdparty/cl-unicode/build/dump.lisp =================================================================== --- trunk/thirdparty/cl-unicode/build/dump.lisp 2011-08-29 09:42:54 UTC (rev 4677) +++ trunk/thirdparty/cl-unicode/build/dump.lisp 2011-08-31 12:09:56 UTC (rev 4678) @@ -108,6 +108,7 @@ `(let ((pathname (merge-pathnames ,relative-path (make-pathname :name nil :type nil + :version nil :defaults *this-file*)))) (when *compile-verbose* (format t "~&;;; Writing source file ~A" (file-namestring pathname)) Modified: trunk/thirdparty/cl-unicode/cl-unicode.asd =================================================================== --- trunk/thirdparty/cl-unicode/cl-unicode.asd 2011-08-29 09:42:54 UTC (rev 4677) +++ trunk/thirdparty/cl-unicode/cl-unicode.asd 2011-08-31 12:09:56 UTC (rev 4678) @@ -63,7 +63,7 @@ (call-next-method)) (defsystem :cl-unicode - :version "0.1.1" + :version "0.1.2" :serial t :depends-on (:cl-ppcre) :components ((:file "packages") Modified: trunk/thirdparty/cl-unicode/doc/index.html =================================================================== --- trunk/thirdparty/cl-unicode/doc/index.html 2011-08-29 09:42:54 UTC (rev 4677) +++ trunk/thirdparty/cl-unicode/doc/index.html 2011-08-31 12:09:56 UTC (rev 4678) @@ -72,7 +72,7 @@ CL-UNICODE together with this documentation can be downloaded from http://weitz.de/files/cl-unicode.tar.gz. The -current version is 0.1.1. +current version is 0.1.2.

The library comes with a system definition for ASDF and you compile and From bknr at bknr.net Wed Aug 31 13:44:01 2011 From: bknr at bknr.net (BKNR Commits) Date: Wed, 31 Aug 2011 15:44:01 +0200 Subject: [bknr-cvs] edi changed trunk/thirdparty/drakma/ Message-ID: Revision: 4681 Author: edi URL: http://bknr.net/trac/changeset/4681 URL-encoding problem U trunk/thirdparty/drakma/CHANGELOG.txt U trunk/thirdparty/drakma/request.lisp U trunk/thirdparty/drakma/util.lisp Modified: trunk/thirdparty/drakma/CHANGELOG.txt =================================================================== --- trunk/thirdparty/drakma/CHANGELOG.txt 2011-08-31 12:23:17 UTC (rev 4680) +++ trunk/thirdparty/drakma/CHANGELOG.txt 2011-08-31 13:44:01 UTC (rev 4681) @@ -1,6 +1,8 @@ +Make sure GET parameters are always URL-encoded +Add :RANGE keyword argument (Hans H?bner) Better handling of optional filenames when uploading (Stas Boukarev) Don't funcall symbols that aren't FBOUNDP (Far? Rideau) -Allowed disabling of SSL when building (Marko Kocic) +Allow disabling of SSL when building (Marko Kocic) Version 1.2.3 2010-08-05 Modified: trunk/thirdparty/drakma/request.lisp =================================================================== --- trunk/thirdparty/drakma/request.lisp 2011-08-31 12:23:17 UTC (rev 4680) +++ trunk/thirdparty/drakma/request.lisp 2011-08-31 13:44:01 UTC (rev 4681) @@ -533,13 +533,11 @@ (comm:attach-ssl raw-http-stream :ssl-side :client) #-:lispworks (setq http-stream (wrap-stream (make-ssl-stream raw-http-stream)))) - (when (and (not parameters-used-p) - parameters) + (when-let (all-get-parameters + (append (dissect-query (uri-query uri)) + (and (not parameters-used-p) parameters))) (setf (uri-query uri) - ;; append parameters to existing query of URI - (format nil "~@[~A~]~:*~:[~;&~]~A" - (uri-query uri) - (alist-to-url-encoded-string parameters external-format-out)))) + (alist-to-url-encoded-string all-get-parameters external-format-out))) (when (eq method :options*) ;; special pseudo-method (setf method :options Modified: trunk/thirdparty/drakma/util.lisp =================================================================== --- trunk/thirdparty/drakma/util.lisp 2011-08-31 12:23:17 UTC (rev 4680) +++ trunk/thirdparty/drakma/util.lisp 2011-08-31 13:44:01 UTC (rev 4681) @@ -339,3 +339,11 @@ :close-callback (lambda () (close s)))) #+:drakma-no-ssl (error "SSL not supported. Remove :drakma-no-ssl from *features* to enable SSL")) + +(defun dissect-query (query-string) + "Accepts a query string as in PURI:URI-QUERY and returns a +corresponding alist of name/value pairs." + (when query-string + (loop for parameter-pair in (split-string query-string "&") + for (name value) = (split-string parameter-pair "=") + collect (cons name value)))) \ No newline at end of file From bknr at bknr.net Wed Aug 31 13:46:19 2011 From: bknr at bknr.net (BKNR Commits) Date: Wed, 31 Aug 2011 15:46:19 +0200 Subject: [bknr-cvs] edi changed trunk/thirdparty/drakma/ Message-ID: Revision: 4682 Author: edi URL: http://bknr.net/trac/changeset/4682 Prepare for 1.2.4 release U trunk/thirdparty/drakma/CHANGELOG.txt U trunk/thirdparty/drakma/conditions.lisp U trunk/thirdparty/drakma/cookies.lisp U trunk/thirdparty/drakma/doc/index.html U trunk/thirdparty/drakma/drakma.asd U trunk/thirdparty/drakma/packages.lisp U trunk/thirdparty/drakma/read.lisp U trunk/thirdparty/drakma/request.lisp U trunk/thirdparty/drakma/specials.lisp U trunk/thirdparty/drakma/util.lisp Modified: trunk/thirdparty/drakma/CHANGELOG.txt =================================================================== --- trunk/thirdparty/drakma/CHANGELOG.txt 2011-08-31 13:44:01 UTC (rev 4681) +++ trunk/thirdparty/drakma/CHANGELOG.txt 2011-08-31 13:46:19 UTC (rev 4682) @@ -1,3 +1,5 @@ +Version 1.2.4 +2011-08-31 Make sure GET parameters are always URL-encoded Add :RANGE keyword argument (Hans H?bner) Better handling of optional filenames when uploading (Stas Boukarev) Modified: trunk/thirdparty/drakma/conditions.lisp =================================================================== --- trunk/thirdparty/drakma/conditions.lisp 2011-08-31 13:44:01 UTC (rev 4681) +++ trunk/thirdparty/drakma/conditions.lisp 2011-08-31 13:46:19 UTC (rev 4682) @@ -1,7 +1,7 @@ ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: ODD-STREAMS; Base: 10 -*- ;;; $Header: /usr/local/cvsrep/odd-streams/conditions.lisp,v 1.5 2007/12/31 01:08:45 edi Exp $ -;;; Copyright (c) 2008-2010, Dr. Edmund Weitz. All rights reserved. +;;; Copyright (c) 2008-2011, Dr. Edmund Weitz. All rights reserved. ;;; Redistribution and use in source and binary forms, with or without ;;; modification, are permitted provided that the following conditions Modified: trunk/thirdparty/drakma/cookies.lisp =================================================================== --- trunk/thirdparty/drakma/cookies.lisp 2011-08-31 13:44:01 UTC (rev 4681) +++ trunk/thirdparty/drakma/cookies.lisp 2011-08-31 13:46:19 UTC (rev 4682) @@ -1,7 +1,7 @@ ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: DRAKMA; Base: 10 -*- ;;; $Header: /usr/local/cvsrep/drakma/cookies.lisp,v 1.15 2008/01/14 01:57:01 edi Exp $ -;;; Copyright (c) 2006-2010, Dr. Edmund Weitz. All rights reserved. +;;; Copyright (c) 2006-2011, Dr. Edmund Weitz. All rights reserved. ;;; Redistribution and use in source and binary forms, with or without ;;; modification, are permitted provided that the following conditions Modified: trunk/thirdparty/drakma/doc/index.html =================================================================== --- trunk/thirdparty/drakma/doc/index.html 2011-08-31 13:44:01 UTC (rev 4681) +++ trunk/thirdparty/drakma/doc/index.html 2011-08-31 13:46:19 UTC (rev 4682) @@ -656,7 +656,7 @@ Drakma together with this documentation can be downloaded from http://weitz.de/files/drakma.tar.gz. -The current version is 1.2.3. Drakma can be installed +The current version is 1.2.4. Drakma can be installed via ASDF and depends on the open source libraries CL-BASE64 (use Modified: trunk/thirdparty/drakma/drakma.asd =================================================================== --- trunk/thirdparty/drakma/drakma.asd 2011-08-31 13:44:01 UTC (rev 4681) +++ trunk/thirdparty/drakma/drakma.asd 2011-08-31 13:46:19 UTC (rev 4682) @@ -1,7 +1,7 @@ ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*- ;;; $Header: /usr/local/cvsrep/drakma/drakma.asd,v 1.49 2008/05/24 03:21:22 edi Exp $ -;;; Copyright (c) 2006-2010, Dr. Edmund Weitz. All rights reserved. +;;; Copyright (c) 2006-2011, Dr. Edmund Weitz. All rights reserved. ;;; Redistribution and use in source and binary forms, with or without ;;; modification, are permitted provided that the following conditions @@ -38,7 +38,7 @@ (in-package :drakma-asd) -(defvar *drakma-version-string* "1.2.3" +(defvar *drakma-version-string* "1.2.4" "Drakma's version number as a string.") ;; we export its name so we can import it later Modified: trunk/thirdparty/drakma/packages.lisp =================================================================== --- trunk/thirdparty/drakma/packages.lisp 2011-08-31 13:44:01 UTC (rev 4681) +++ trunk/thirdparty/drakma/packages.lisp 2011-08-31 13:46:19 UTC (rev 4682) @@ -1,7 +1,7 @@ ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: CL-USER; Base: 10 -*- ;;; $Header: /usr/local/cvsrep/drakma/packages.lisp,v 1.22 2008/01/14 01:57:01 edi Exp $ -;;; Copyright (c) 2006-2010, Dr. Edmund Weitz. All rights reserved. +;;; Copyright (c) 2006-2011, Dr. Edmund Weitz. All rights reserved. ;;; Redistribution and use in source and binary forms, with or without ;;; modification, are permitted provided that the following conditions Modified: trunk/thirdparty/drakma/read.lisp =================================================================== --- trunk/thirdparty/drakma/read.lisp 2011-08-31 13:44:01 UTC (rev 4681) +++ trunk/thirdparty/drakma/read.lisp 2011-08-31 13:46:19 UTC (rev 4682) @@ -1,7 +1,7 @@ ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: DRAKMA; Base: 10 -*- ;;; $Header: /usr/local/cvsrep/drakma/read.lisp,v 1.17 2008/05/25 11:35:20 edi Exp $ -;;; Copyright (c) 2006-2010, Dr. Edmund Weitz. All rights reserved. +;;; Copyright (c) 2006-2011, Dr. Edmund Weitz. All rights reserved. ;;; Redistribution and use in source and binary forms, with or without ;;; modification, are permitted provided that the following conditions Modified: trunk/thirdparty/drakma/request.lisp =================================================================== --- trunk/thirdparty/drakma/request.lisp 2011-08-31 13:44:01 UTC (rev 4681) +++ trunk/thirdparty/drakma/request.lisp 2011-08-31 13:46:19 UTC (rev 4682) @@ -1,7 +1,7 @@ ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: DRAKMA; Base: 10 -*- ;;; $Header: /usr/local/cvsrep/drakma/request.lisp,v 1.58 2008/05/30 11:30:45 edi Exp $ -;;; Copyright (c) 2006-2010, Dr. Edmund Weitz. All rights reserved. +;;; Copyright (c) 2006-2011, Dr. Edmund Weitz. All rights reserved. ;;; Redistribution and use in source and binary forms, with or without ;;; modification, are permitted provided that the following conditions Modified: trunk/thirdparty/drakma/specials.lisp =================================================================== --- trunk/thirdparty/drakma/specials.lisp 2011-08-31 13:44:01 UTC (rev 4681) +++ trunk/thirdparty/drakma/specials.lisp 2011-08-31 13:46:19 UTC (rev 4682) @@ -1,7 +1,7 @@ ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: DRAKMA; Base: 10 -*- ;;; $Header: /usr/local/cvsrep/drakma/specials.lisp,v 1.19 2008/01/14 01:57:02 edi Exp $ -;;; Copyright (c) 2006-2010, Dr. Edmund Weitz. All rights reserved. +;;; Copyright (c) 2006-2011, Dr. Edmund Weitz. All rights reserved. ;;; Redistribution and use in source and binary forms, with or without ;;; modification, are permitted provided that the following conditions Modified: trunk/thirdparty/drakma/util.lisp =================================================================== --- trunk/thirdparty/drakma/util.lisp 2011-08-31 13:44:01 UTC (rev 4681) +++ trunk/thirdparty/drakma/util.lisp 2011-08-31 13:46:19 UTC (rev 4682) @@ -1,7 +1,7 @@ ;;; -*- Mode: LISP; Syntax: COMMON-LISP; Package: DRAKMA; Base: 10 -*- ;;; $Header: /usr/local/cvsrep/drakma/util.lisp,v 1.36 2008/05/30 11:30:45 edi Exp $ -;;; Copyright (c) 2006-2010, Dr. Edmund Weitz. All rights reserved. +;;; Copyright (c) 2006-2011, Dr. Edmund Weitz. All rights reserved. ;;; Redistribution and use in source and binary forms, with or without ;;; modification, are permitted provided that the following conditions From bknr at bknr.net Wed Aug 31 13:46:48 2011 From: bknr at bknr.net (BKNR Commits) Date: Wed, 31 Aug 2011 15:46:48 +0200 Subject: [bknr-cvs] edi changed tags/thirdparty/drakma-1.2.4/ Message-ID: Revision: 4683 Author: edi URL: http://bknr.net/trac/changeset/4683 Tag drakma 1.2.4 A tags/thirdparty/drakma-1.2.4/