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