--- a/mooncached.lua Sun Aug 01 12:16:06 2010 +0100 +++ b/mooncached.lua Sun Aug 01 12:17:12 2010 +0100 @@ -84,6 +84,29 @@ return true; end +function command_handlers.delete(conn, params) + local key, keyend = params:match("^(%S+)()"); + local time, reply = params:match(" (%d+)", keyend), params:match(" (noreply)$", keyend); + time, reply = tonumber(time), reply ~= "noreply"; + local ok, err; + if not key then + ok, err = false, "Unable to determine key from request"; + else + ok, err = cache:delete(key, time); + if ok then + if err then + conn:write("DELETED\r\n"); + else + conn:write("NOT_FOUND\r\n"); + end + end + end + if not reply then + return nil; + end + return ok, err; +end + function command_handlers.version(conn) conn:write("VERSION Mooncached 0.1\r\n"); return true;