]> ruderich.org/simon Gitweb - nsscash/nsscash.git/commitdiff
nsscash: main_test: fix Last-Modified/If-Modified-Since headers
authorSimon Ruderich <simon@ruderich.org>
Fri, 2 Aug 2019 18:53:43 +0000 (20:53 +0200)
committerSimon Ruderich <simon@ruderich.org>
Fri, 2 Aug 2019 18:53:43 +0000 (20:53 +0200)
http.TimeFormat requires a time in UTC for a proper Last-Modified
header. Previously, the time was in CEST (my local timezone) which
caused all Last-Modified headers to have an offset of two hours. This
also hid a bug in the If-Modified-Since header handling: The last change
time must be truncated to seconds as the If-Modified-Since header has
only a second precision.

These bugs did not affect the current test cases. However, it affects
the test case which will be added in the next commit.

main_test.go

index 20158171e2441685fbc6efb794016ae2155b4f1d..0279bb74ea7e8e709fd6a34d311d30650e1f532c 100644 (file)
@@ -438,14 +438,14 @@ func fetchPasswd(a args) {
                                t.Fatalf("invalid If-Modified-Since %v",
                                        modified)
                        }
-                       if !x.Before(lastChange) {
+                       if !x.Before(lastChange.Truncate(time.Second)) {
                                w.WriteHeader(http.StatusNotModified)
                                return
                        }
                }
 
                w.Header().Add("Last-Modified",
-                       lastChange.Format(http.TimeFormat))
+                       lastChange.UTC().Format(http.TimeFormat))
                fmt.Fprintln(w, "root:x:0:0:root:/root:/bin/bash")
                fmt.Fprintln(w, "daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin")
        }