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:
32
partage.go
32
partage.go
@@ -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 != "" {
|
||||||
|
|||||||
Reference in New Issue
Block a user