commit - 8b1fbea42df752ceccc0ef9c67b19654193a40c9
commit + e2ab3f7c357e4a40a2891afece9f3ee0adb66008
blob - a3aff8f8efcfa8adc7aadb3b6a76af020240e542
blob + f758b9d19b99f720b74565c76c14045f46a3db1e
--- alias.go
+++ alias.go
destination TEXT NOT NULL,
expiry INTEGER NOT NULL,
note TEXT NOT NULL,
- modtime INTEGER NOT NULL
+ modtime INTEGER NOT NULL DEFAULT (unixepoch())
);`
_, err = db.Exec(stmt)
if err != nil {
}
var q string
if errors.Is(err, errRecipientNotExist) {
- q = "INSERT INTO aliases (recipient, destination, expiry, note, modtime) VALUES (?, ?, ?, ?, ?)"
- _, err = db.Exec(q, a.Recipient, a.Destination, a.Expiry.Unix(), a.Note, time.Now().Unix())
+ q = "INSERT INTO aliases (recipient, destination, expiry, note) VALUES (?, ?, ?, ?)"
+ _, err = db.Exec(q, a.Recipient, a.Destination, a.Expiry.Unix(), a.Note)
} else if err == nil {
- q = "UPDATE aliases SET recipient = ?, destination = ?, expiry = ?, note = ?, modtime = ? WHERE recipient = ?"
- _, err = db.Exec(q, a.Recipient, a.Destination, a.Expiry.Unix(), a.Note, time.Now().Unix(), a.Recipient)
+ q = "UPDATE aliases SET recipient = ?, destination = ?, expiry = ?, note = ?, modtime = unixepoch() WHERE recipient = ?"
+ _, err = db.Exec(q, a.Recipient, a.Destination, a.Expiry.Unix(), a.Note, a.Recipient)
}
return err
}
blob - 6fc8bb0f4d22cd170287c17377a96dfd1ee42cdb
blob + c11252d89e1561853f49e9cbabd54d25986d8328
--- userdb.go
+++ userdb.go
"net/mail"
"os"
"path"
- "time"
_ "github.com/mattn/go-sqlite3"
"golang.org/x/crypto/bcrypt"
stmt := `CREATE TABLE IF NOT EXISTS users (
username TEXT PRIMARY KEY,
password BLOB NOT NULL,
- modtime INTEGER NOT NULL
+ modtime INTEGER NOT NULL DEFAULT (unixepoch())
);`
_, err := db.Exec(stmt)
return err
if err != nil {
return fmt.Errorf("add %s: %w", username, err)
}
- _, err = db.Exec("INSERT INTO users (username, password, modtime) VALUES (?, ?, ?)", username, hashed, time.Now().Unix())
+ _, err = db.Exec("INSERT INTO users (username, password) VALUES (?, ?)", username, hashed)
if err != nil {
return fmt.Errorf("add %s: %w", username, err)
}
if err != nil {
return fmt.Errorf("generate hash: %w", err)
}
- _, err = db.Exec("UPDATE users SET password = ?, modtime = ? WHERE username = ?", hashed, time.Now().Unix(), name)
+ q := "UPDATE users SET password = ?, modtime = unixepoch() WHERE username = ?"
+ _, err = db.Exec(q, hashed, name)
return err
}