This commit is contained in:
WA 2025-06-18 20:32:01 +02:00
parent 432bf1e20f
commit f168c961dc

View file

@ -76,6 +76,8 @@ func (pder *ProviderFiles) Init(sid string) (err error) {
func (pder *ProviderFiles) Read(sid string) (sess *SessionFile, err error) { func (pder *ProviderFiles) Read(sid string) (sess *SessionFile, err error) {
pder.lock.Lock() pder.lock.Lock()
defer pder.lock.Unlock() defer pder.lock.Unlock()
//ckf := ckdirpath(sid)
//os.Stat(sessfile)... TODO
return return
} }
@ -89,15 +91,15 @@ func (sf *SessionFile) load() (data map[any]any, err error) {
var sb []byte var sb []byte
sfp := ckdirpath(sf.sid) sfp := ckdirpath(sf.sid)
if sb, err = os.ReadFile(sfp); err != nil { if sb, err = os.ReadFile(sfp); err != nil {
return nil, fmt.Errorf("Session file: %s read error: %v", sf.sid, err) return nil, fmt.Errorf("session file: %s read error: %v", sf.sid, err)
} }
var gobdata bytes.Buffer var gobdata bytes.Buffer
if _, err = gobdata.Write(sb); err != nil { if _, err = gobdata.Write(sb); err != nil {
return nil, fmt.Errorf("Load session file: %s into buffer err: %v", sf.sid, err) return nil, fmt.Errorf("load session file: %s into buffer err: %v", sf.sid, err)
} }
dec := gob.NewDecoder(&gobdata) dec := gob.NewDecoder(&gobdata)
if err = dec.Decode(&data); err != nil { if err = dec.Decode(&data); err != nil {
return nil, fmt.Errorf("Decode gob data from file: %s error: %v", sf.sid, err) return nil, fmt.Errorf("decode gob data from file: %s error: %v", sf.sid, err)
} }
return return
} }
@ -107,11 +109,11 @@ func (sf *SessionFile) save(data map[any]any) (err error) {
var gobdata bytes.Buffer var gobdata bytes.Buffer
enc := gob.NewEncoder(&gobdata) enc := gob.NewEncoder(&gobdata)
if err = enc.Encode(data); err != nil { if err = enc.Encode(data); err != nil {
return fmt.Errorf("Gob encode file: %s error: %v", sf.sid, err) return fmt.Errorf("gob encode file: %s error: %v", sf.sid, err)
} }
sfp := ckdirpath(sf.sid) sfp := ckdirpath(sf.sid)
if err = os.WriteFile(sfp, gobdata.Bytes(), 0o600); err != nil { if err = os.WriteFile(sfp, gobdata.Bytes(), 0o600); err != nil {
return fmt.Errorf("Write gob data into file: %s error: %v", sf.sid, err) return fmt.Errorf("write gob data into file: %s error: %v", sf.sid, err)
} }
return nil return nil
} }