changeset 110340:885a9b44898e

* lisp/url/url-cookie.el (url-cookie-expired-p): Simplify and fix. (Bug#6957)
author Glenn Morris <rgm@gnu.org>
date Wed, 08 Sep 2010 22:36:13 -0700
parents 594a5c140233
children 827513405247
files lisp/url/ChangeLog lisp/url/url-cookie.el
diffstat 2 files changed, 10 insertions(+), 29 deletions(-) [+]
line wrap: on
line diff
--- 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  <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
--- 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."