summaryrefslogtreecommitdiffstats
path: root/testing/uwsgi/lua-cache-update.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/uwsgi/lua-cache-update.patch')
-rw-r--r--testing/uwsgi/lua-cache-update.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/testing/uwsgi/lua-cache-update.patch b/testing/uwsgi/lua-cache-update.patch
new file mode 100644
index 0000000000..6943a97c9a
--- /dev/null
+++ b/testing/uwsgi/lua-cache-update.patch
@@ -0,0 +1,45 @@
+--- uwsgi-1.4.3/plugins/lua/lua_plugin.c
++++ uwsgi-1.4.3.new/plugins/lua/lua_plugin.c
+@@ -157,6 +157,34 @@
+
+ }
+
++static int uwsgi_api_cache_update(lua_State *L) {
++
++ int args = lua_gettop(L);
++ const char *key ;
++ const char *value ;
++ uint64_t expires = 0;
++ size_t vallen;
++
++
++ if (args > 1) {
++
++ key = lua_tolstring(L, 1, NULL);
++ value = lua_tolstring(L, 2, &vallen);
++ if (args > 2) {
++ expires = lua_tonumber(L, 3);
++ }
++
++ uwsgi_cache_set((char *)key, strlen(key), (char *)value,
++ (uint16_t) vallen, expires,
++ UWSGI_CACHE_FLAG_UPDATE);
++
++ }
++
++ lua_pushnil(L);
++ return 1;
++
++}
++
+ static int uwsgi_api_register_signal(lua_State *L) {
+
+ int args = lua_gettop(L);
+@@ -298,6 +326,7 @@
+ {"send_message", uwsgi_api_send_message},
+ {"cache_get", uwsgi_api_cache_get},
+ {"cache_set", uwsgi_api_cache_set},
++ {"cache_update", uwsgi_api_cache_update},
+ {"register_signal", uwsgi_api_register_signal},
+ {"register_rpc", uwsgi_api_register_rpc},
+ {NULL, NULL}