]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/url/url-cookie.el (url-cookie-expired-p): Simplify and fix. (Bug#6957)
authorshawn boles <shawn.boles@gmail.com>
Thu, 9 Sep 2010 05:36:13 +0000 (22:36 -0700)
committerGlenn Morris <rgm@gnu.org>
Thu, 9 Sep 2010 05:36:13 +0000 (22:36 -0700)
lisp/url/ChangeLog
lisp/url/url-cookie.el

index f7babefc87633828a930ab29f9a857d4d275e28e..0192987907cf20fbc925dfe48c04f50342426492 100644 (file)
@@ -1,3 +1,7 @@
+2010-09-09  shawn boles  <shawn.boles@gmail.com>  (tiny change)
+
+       * url-cookie.el (url-cookie-expired-p): Simplify and fix.  (Bug#6957)
+
 2010-07-26  Michael Albinus  <michael.albinus@gmx.de>
 
        * url-http (url-http-parse-headers): Disable file name handlers at
index 75a1b2188304ccdc60f38a5eec4b725f3446e34e..810e0e4eb5881e9bfa29edba368de9d8827fb81d 100644 (file)
@@ -24,7 +24,6 @@
 
 ;;; Code:
 
-(require 'timezone)
 (require 'url-util)
 (require 'url-parse)
 (eval-when-compile (require 'cl))
@@ -194,34 +193,12 @@ telling Microsoft that."
        (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."