Mercurial > prosody-modules
comparison mod_storage_gdbm/mod_storage_gdbm.lua @ 1634:25441bd8b344
mod_storage_gdbm: Add purge action
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 25 Mar 2015 17:45:53 +0100 |
parents | 1d2dc6c74581 |
children | b877b75eb973 |
comparison
equal
deleted
inserted
replaced
1633:1d2dc6c74581 | 1634:25441bd8b344 |
---|---|
149 cache[db_path] = db; | 149 cache[db_path] = db; |
150 end | 150 end |
151 return setmetatable({ _db = db; _path = db_path; store = store, typ = type }, driver_mt); | 151 return setmetatable({ _db = db; _path = db_path; store = store, typ = type }, driver_mt); |
152 end | 152 end |
153 | 153 |
154 function purge(_, user) | |
155 for dir in lfs.dir(base_path) do | |
156 local name, ext = dir:match("^(.-)%.a?db$"); | |
157 if ext == ".db" then | |
158 open(_, name, "keyval"):set(user, nil); | |
159 elseif ext == ".adb" then | |
160 open(_, name, "archive"):delete(user); | |
161 end | |
162 end | |
163 return true; | |
164 end | |
165 | |
154 function module.unload() | 166 function module.unload() |
155 for path, db in pairs(cache) do | 167 for path, db in pairs(cache) do |
156 gdbm.sync(db); | 168 gdbm.sync(db); |
157 gdbm.close(db); | 169 gdbm.close(db); |
158 end | 170 end |