X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Flua.c;h=45fd7d5a36fab1a76a8dd524ba56aad4ee0b0602;hb=8c5927c52f4eefebaad3a6ecadc253ee9007ebb5;hp=a0e360366ae8a8ad42903b52b168534e88d5906d;hpb=c6d13fbae8ca35535bcd9ae857985c78051db872;p=collectd.git diff --git a/src/lua.c b/src/lua.c index a0e36036..45fd7d5a 100644 --- a/src/lua.c +++ b/src/lua.c @@ -303,15 +303,13 @@ static int lua_cb_register_read(lua_State *L) /* {{{ */ cb->lua_function_name = strdup(function_name); pthread_mutex_init(&cb->lock, NULL); - user_data_t ud = { - .data = cb - }; - int status = plugin_register_complex_read(/* group = */ "lua", /* name = */ function_name, /* callback = */ clua_read, /* interval = */ 0, - /* user_data = */ &ud); + &(user_data_t) { + .data = cb, + }); if (status != 0) return luaL_error(L, "%s", "plugin_register_complex_read failed"); @@ -349,20 +347,18 @@ static int lua_cb_register_write(lua_State *L) /* {{{ */ cb->lua_function_name = strdup(function_name); pthread_mutex_init(&cb->lock, NULL); - user_data_t ud = { - .data = cb - }; - int status = plugin_register_write(/* name = */ function_name, /* callback = */ clua_write, - /* user_data = */ &ud); + &(user_data_t) { + .data = cb, + }); if (status != 0) return luaL_error(L, "%s", "plugin_register_write failed"); return 0; } /* }}} int lua_cb_register_write */ -static luaL_Reg collectdlib[] = { +static const luaL_Reg collectdlib[] = { {"log_debug", lua_cb_log_debug}, {"log_error", lua_cb_log_error}, {"log_info", lua_cb_log_info}, @@ -370,11 +366,17 @@ static luaL_Reg collectdlib[] = { {"log_warning", lua_cb_log_warning}, {"dispatch_values", lua_cb_dispatch_values}, {"register_read", lua_cb_register_read}, - {"register_write", lua_cb_register_write}}; + {"register_write", lua_cb_register_write}, + {NULL, NULL} +}; static int open_collectd(lua_State *L) /* {{{ */ { +#if LUA_VERSION_NUM < 502 + luaL_register(L, "collectd", collectdlib); +#else luaL_newlib(L, collectdlib); +#endif return 1; } /* }}} */ @@ -411,8 +413,14 @@ static int lua_script_init(lua_script_t *script) /* {{{ */ luaL_openlibs(script->lua_state); /* Load the 'collectd' library */ +#if LUA_VERSION_NUM < 502 + lua_pushcfunction(script->lua_state, open_collectd); + lua_pushstring(script->lua_state, "collectd"); + lua_call(script->lua_state, 1, 0); +#else luaL_requiref(script->lua_state, "collectd", open_collectd, 1); lua_pop(script->lua_state, 1); +#endif /* Prepend BasePath to package.path */ if (base_path[0] != '\0') { @@ -535,7 +543,7 @@ static int lua_config_script(const oconfig_item_t *ci) /* {{{ */ if (status != 0) return (status); - INFO("Lua plugin: File \"%s\" loaded succesfully", abs_path); + INFO("Lua plugin: File \"%s\" loaded successfully", abs_path); return 0; } /* }}} int lua_config_script */ @@ -573,7 +581,7 @@ static int lua_shutdown(void) /* {{{ */ return (0); } /* }}} int lua_shutdown */ -void module_register() { +void module_register(void) { plugin_register_complex_config("lua", lua_config); plugin_register_shutdown("lua", lua_shutdown); }