59 lines
1.3 KiB
C
59 lines
1.3 KiB
C
#include "lua_plugin_manage.h"
|
|
|
|
#include <string.h>
|
|
|
|
int session_getid(struct lpm_state * state)
|
|
{
|
|
if ( lpm_cbinding_get_params_count(state) != 1 )
|
|
return 0;
|
|
struct lpm_cdata data;
|
|
lpm_cbinding_get_params(state, 1, &data);
|
|
struct session * sess = (struct session *)data.data_user;
|
|
lpm_cdata_clean(&data);
|
|
int session_id = sess->id;
|
|
|
|
data.data_type = LPM_DATATYPE_INT;
|
|
lpm_cbinding_push_return(state, 1, &data);
|
|
lpm_cdata_clean(&data);
|
|
return 1;
|
|
}
|
|
|
|
int binding_functions(struct lpm_state * state) {
|
|
int count = 0;
|
|
if ( lpm_cbinding_function_register(state, session_getid, "getid", "session") ) {
|
|
count += 1;
|
|
}
|
|
return count;
|
|
}
|
|
|
|
int binding_data(struct lpm_state * state) {
|
|
int count = 0;
|
|
const char * version = "v0.1";
|
|
struct lpm_cdata data;
|
|
data.data_type = LPM_DATATYPE_CSTRING;
|
|
data.data_length = strlen(version);
|
|
data.data_string = strdup(version);
|
|
if ( lpm_cdata_register(state, &data, "version", NULL) ) {
|
|
count += 1;
|
|
}
|
|
lpm_cdata_clean(&data);
|
|
return count;
|
|
}
|
|
|
|
int main(int argc, char * argv[])
|
|
{
|
|
struct stellar st;
|
|
struct lpm_state * state = lpm_state_instance_create();
|
|
binding_functions(state);
|
|
binding_data(state);
|
|
lpm_state_instance_init(&st, state, "config.toml");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lpm_state_instance_free(state);
|
|
return 0;
|
|
} |