memcached.lua

changeset 5
a702c02caacc
parent 4
31e1af4738cb
equal deleted inserted replaced
4:31e1af4738cb 5:a702c02caacc
43 log("debug", "Received data of length "..#data.." out of "..bytes); 43 log("debug", "Received data of length "..#data.." out of "..bytes);
44 received_count = received_count + #data; 44 received_count = received_count + #data;
45 received_buffer[#received_buffer+1] = data; 45 received_buffer[#received_buffer+1] = data;
46 if received_count >= bytes then 46 if received_count >= bytes then
47 received_buffer = table.concat(received_buffer); 47 received_buffer = table.concat(received_buffer);
48 cache:set(key, flags, exptime, received_buffer:sub(1,bytes)); 48 local ok, err = cache:set(key, flags, exptime, received_buffer:sub(1,bytes));
49 conn:send("STORED\r\n"); 49 if ok then
50 conn:send("STORED\r\n");
51 else
52 conn:send("SERVER_ERROR "..(err or "Unknown error").."\r\n");
53 end
50 conn:setlistener(memcached_listener); 54 conn:setlistener(memcached_listener);
51 conn:set_mode("*l"); 55 conn:set_mode("*l");
52 if received_count > bytes then 56 if received_count > bytes then
53 log("debug", "Re-handling %d extra bytes", received_count-bytes); 57 log("debug", "Re-handling %d extra bytes", received_count-bytes);
54 memcached_listener.onincoming(conn, received_buffer:sub(bytes+1)); 58 memcached_listener.onincoming(conn, received_buffer:sub(bytes+1));

mercurial