Add support for "expiry" form setting

git-svn-id: file:///srv/svn/repo/marisa/trunk@61 d6811dac-2434-b64a-9ddc-f563ab233461
This commit is contained in:
contact
2021-11-10 10:38:55 +00:00
parent c6734fcaff
commit db611f5614

View File

@@ -92,6 +92,10 @@ func writemeta(filename string, expiry int64) error {
size := stat.Size() size := stat.Size()
f.Close() f.Close()
if expiry < 0 {
expiry = conf.expiry
}
meta := metadata{ meta := metadata{
Filename: filepath.Base(filename), Filename: filepath.Base(filename),
Size: size, Size: size,
@@ -196,7 +200,11 @@ func uploaderPost(w http.ResponseWriter, r *http.Request) {
return return
} }
writemeta(tmp.Name(), conf.expiry) expiry, err := strconv.Atoi(r.PostFormValue("expiry"))
if err != nil || expiry < 0 {
expiry = int(conf.expiry)
}
writemeta(tmp.Name(), int64(expiry))
link := conf.baseuri + conf.filectx + filepath.Base(tmp.Name()) link := conf.baseuri + conf.filectx + filepath.Base(tmp.Name())
links = append(links, link) links = append(links, link)
@@ -327,33 +335,25 @@ func main() {
} }
if conf.listen[0] == '/' { if conf.listen[0] == '/' {
/* Remove any stale socket */ listener, err = net.Listen("unix", conf.listen)
os.Remove(conf.listen) if err != nil {
if listener, err = net.Listen("unix", conf.listen); err != nil {
log.Fatal(err) log.Fatal(err)
} }
defer listener.Close()
/* /* Ensure unix socket is removed on exit */
* Ensure unix socket is removed on exit.
* Note: this might not work when dropping privileges…
*/
defer os.Remove(conf.listen) defer os.Remove(conf.listen)
sigs := make(chan os.Signal, 1) sigs := make(chan os.Signal, 1)
signal.Notify(sigs, os.Interrupt, os.Kill, syscall.SIGTERM) signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
go func() { go func() {
_ = <-sigs _ = <-sigs
listener.Close() os.Remove(conf.listen)
if err = os.Remove(conf.listen); err != nil {
log.Fatal(err)
}
os.Exit(0) os.Exit(0)
}() }()
} else { } else {
if listener, err = net.Listen("tcp", conf.listen); err != nil { listener, err = net.Listen("tcp", conf.listen)
if err != nil {
log.Fatal(err) log.Fatal(err)
} }
defer listener.Close()
} }
if conf.user != "" { if conf.user != "" {