X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=mtime.go;fp=ctime.go;h=35afa482946cbaf52b049807e757087d53d19914;hb=8b367e01f9433e383c39ba1121c9e97d1909667f;hp=72047e6a4cf67a5d5a8bf86c6a37e3ff086c149f;hpb=6f937b5776c2557bca361d564275bcaeb31a20b2;p=godlighty.git diff --git a/ctime.go b/mtime.go similarity index 75% rename from ctime.go rename to mtime.go index 72047e6..35afa48 100644 --- a/ctime.go +++ b/mtime.go @@ -19,19 +19,17 @@ import ( "encoding/base64" "encoding/binary" "os" - - "golang.org/x/sys/unix" ) -func ctimeETag(fd *os.File) (string, error) { - var stat unix.Stat_t - err := unix.Fstat(int(fd.Fd()), &stat) +func mtimeETag(fd *os.File) (string, error) { + fi, err := fd.Stat() if err != nil { return "", err } - sec, nsec := stat.Ctim.Unix() - buf := make([]byte, 8*2) - binary.BigEndian.PutUint64(buf[:8], uint64(sec)) - binary.BigEndian.PutUint64(buf[8:], uint64(nsec)) + mtime := fi.ModTime() + buf := make([]byte, 8*3) + binary.BigEndian.PutUint64(buf[:8], uint64(fi.Size())) + binary.BigEndian.PutUint64(buf[8:16], uint64(mtime.Unix())) + binary.BigEndian.PutUint64(buf[16:], uint64(mtime.Nanosecond())) return `"` + base64.RawURLEncoding.EncodeToString(buf) + `"`, nil }