summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--email/email.scm2
-rw-r--r--tests/email.scm11
2 files changed, 12 insertions, 1 deletions
diff --git a/email/email.scm b/email/email.scm
index 7aea2d3..71f0718 100644
--- a/email/email.scm
+++ b/email/email.scm
@@ -1043,7 +1043,7 @@ list of header keys and values."
    (peg:tree
     (match-pattern fields headers))
    `((received . ,(match-lambda*
-                    (`(received ,tokens ,timestamp)
+                    (('received tokens (? date? timestamp))
                      (list 'received (string-join tokens) timestamp))
                     (('received tokens ...)
                      (list 'received (string-join tokens)))))
diff --git a/tests/email.scm b/tests/email.scm
index f283e71..a6d2b46 100644
--- a/tests/email.scm
+++ b/tests/email.scm
@@ -547,6 +547,17 @@ Content-Type: text/plain; charset=utf-8
                   (charset . "utf-8"))
     (content-transfer-encoding . 7bit)))
 
+;; TODO: Fix this test once previous test is addressed.
+(test-alist= "Parse Received header with two tokens but no timestamp"
+  (parse-email-headers
+   "Received: from foo
+")
+  `((trace received "from foo")
+    (content-type (type . text)
+                  (subtype . plain)
+                  (charset . "utf-8"))
+    (content-transfer-encoding . 7bit)))
+
 
 ;;;
 ;;; Email addresses