# HG changeset patch # User Glenn Morris # Date 1284010573 25200 # Node ID 885a9b44898e09978928fe020e52c8aa761fe4e9 # Parent 594a5c1402339e90721235aead8242f91af57d93 * lisp/url/url-cookie.el (url-cookie-expired-p): Simplify and fix. (Bug#6957) diff -r 594a5c140233 -r 885a9b44898e lisp/url/ChangeLog --- a/lisp/url/ChangeLog Tue Sep 07 19:45:12 2010 -0700 +++ b/lisp/url/ChangeLog Wed Sep 08 22:36:13 2010 -0700 @@ -1,3 +1,7 @@ +2010-09-09 shawn boles (tiny change) + + * url-cookie.el (url-cookie-expired-p): Simplify and fix. (Bug#6957) + 2010-07-26 Michael Albinus * url-http (url-http-parse-headers): Disable file name handlers at diff -r 594a5c140233 -r 885a9b44898e lisp/url/url-cookie.el --- a/lisp/url/url-cookie.el Tue Sep 07 19:45:12 2010 -0700 +++ b/lisp/url/url-cookie.el Wed Sep 08 22:36:13 2010 -0700 @@ -24,7 +24,6 @@ ;;; Code: -(require 'timezone) (require 'url-util) (require 'url-parse) (eval-when-compile (require 'cl)) @@ -194,34 +193,12 @@ (setq url-cookie-storage (list (list domain tmp)))))))) (defun url-cookie-expired-p (cookie) - (let* ( - (exp (url-cookie-expires cookie)) - (cur-date (and exp (timezone-parse-date (current-time-string)))) - (exp-date (and exp (timezone-parse-date exp))) - (cur-greg (and cur-date (timezone-absolute-from-gregorian - (string-to-number (aref cur-date 1)) - (string-to-number (aref cur-date 2)) - (string-to-number (aref cur-date 0))))) - (exp-greg (and exp (timezone-absolute-from-gregorian - (string-to-number (aref exp-date 1)) - (string-to-number (aref exp-date 2)) - (string-to-number (aref exp-date 0))))) - (diff-in-days (and exp (- cur-greg exp-greg))) - ) - (cond - ((not exp) nil) ; No expiry == expires at browser quit - ((< diff-in-days 0) nil) ; Expires sometime after today - ((> diff-in-days 0) t) ; Expired before today - (t ; Expires sometime today, check times - (let* ((cur-time (timezone-parse-time (aref cur-date 3))) - (exp-time (timezone-parse-time (aref exp-date 3))) - (cur-norm (+ (* 360 (string-to-number (aref cur-time 2))) - (* 60 (string-to-number (aref cur-time 1))) - (* 1 (string-to-number (aref cur-time 0))))) - (exp-norm (+ (* 360 (string-to-number (aref exp-time 2))) - (* 60 (string-to-number (aref exp-time 1))) - (* 1 (string-to-number (aref exp-time 0)))))) - (> (- cur-norm exp-norm) 1)))))) + "Returns true if COOKIE is expired. +If COOKIE has an expiration date it is converted to seconds, adjusted to the client timezone and then compared against (float-time)." + (let* ((exp (url-cookie-expires cookie)) + (exp-time (and exp (float-time (date-to-time exp))))) + (if (not exp) nil (> (float-time) exp-time))) + ) (defun url-cookie-retrieve (host &optional localpart secure) "Retrieve all the netscape-style cookies for a specified HOST and LOCALPART."