From 9a7780d2b867729287f74d5eaf5ed6e39fc1baee Mon Sep 17 00:00:00 2001 From: Ishank Arora Date: Wed, 24 Feb 2021 19:35:12 +0100 Subject: [PATCH] Revert changes in json driver --- pkg/publicshare/manager/json/json.go | 60 ++++++++++++++++------------ 1 file changed, 35 insertions(+), 25 deletions(-) diff --git a/pkg/publicshare/manager/json/json.go b/pkg/publicshare/manager/json/json.go index 2cf23db9762..052840ac34d 100644 --- a/pkg/publicshare/manager/json/json.go +++ b/pkg/publicshare/manager/json/json.go @@ -49,6 +49,30 @@ import ( "go.opencensus.io/trace" ) +type janitor struct { + m *manager + interval time.Duration +} + +func (j *janitor) run() { + ticker := time.NewTicker(j.interval) + work := make(chan os.Signal, 1) + signal.Notify(work, syscall.SIGHUP, syscall.SIGINT, syscall.SIGQUIT) + + for { + select { + case <-work: + return + case <-ticker.C: + j.m.cleanupExpiredShares() + } + } +} + +var j = janitor{ + interval: time.Minute, // TODO we want this interval configurable +} + func init() { registry.Register("json", New) } @@ -90,7 +114,8 @@ func New(c map[string]interface{}) (publicshare.Manager, error) { } } - go m.startJanitorRun() + j.m = &m + go j.run() return &m, nil } @@ -98,7 +123,6 @@ func New(c map[string]interface{}) (publicshare.Manager, error) { type config struct { File string `mapstructure:"file"` SharePasswordHashCost int `mapstructure:"password_hash_cost"` - JanitorRunInterval int `mapstructure:"janitor_run_interval"` } func (c *config) init() { @@ -108,34 +132,15 @@ func (c *config) init() { if c.SharePasswordHashCost == 0 { c.SharePasswordHashCost = 11 } - if c.JanitorRunInterval == 0 { - c.JanitorRunInterval = 60 - } } type manager struct { mutex *sync.Mutex file string - marshaler jsonpb.Marshaler - unmarshaler jsonpb.Unmarshaler - passwordHashCost int - janitorRunInterval int -} - -func (m *manager) startJanitorRun() { - ticker := time.NewTicker(time.Duration(m.janitorRunInterval) * time.Second) - work := make(chan os.Signal, 1) - signal.Notify(work, syscall.SIGHUP, syscall.SIGINT, syscall.SIGQUIT) - - for { - select { - case <-work: - return - case <-ticker.C: - m.cleanupExpiredShares() - } - } + marshaler jsonpb.Marshaler + unmarshaler jsonpb.Unmarshaler + passwordHashCost int } // CreatePublicShare adds a new entry to manager.shares @@ -168,6 +173,11 @@ func (m *manager) CreatePublicShare(ctx context.Context, u *user.User, rInfo *pr Nanos: uint32(now % 1000000000), } + modifiedAt := &typespb.Timestamp{ + Seconds: uint64(now / 1000000000), + Nanos: uint32(now % 1000000000), + } + s := link.PublicShare{ Id: id, Owner: rInfo.GetOwner(), @@ -176,7 +186,7 @@ func (m *manager) CreatePublicShare(ctx context.Context, u *user.User, rInfo *pr Token: tkn, Permissions: g.Permissions, Ctime: createdAt, - Mtime: createdAt, + Mtime: modifiedAt, PasswordProtected: passwordProtected, Expiration: g.Expiration, DisplayName: displayName,