diff --git a/server/src/core/linux/gobject.c b/server/src/core/linux/gobject.c index ff9156a..9477968 100644 --- a/server/src/core/linux/gobject.c +++ b/server/src/core/linux/gobject.c @@ -212,7 +212,7 @@ void ipc3270_add_terminal_introspection(GString *introspection) { ); // Constrói métodos usando a tabela de controle - const LIB3270_ACTION_ENTRY * actions = lib3270_get_action_table(); + const LIB3270_ACTION * actions = lib3270_get_actions(); for(ix = 0; actions[ix].name; ix++) { g_string_append_printf( diff --git a/server/src/core/methods/methods.c b/server/src/core/methods/methods.c index bac0a56..891786b 100644 --- a/server/src/core/methods/methods.c +++ b/server/src/core/methods/methods.c @@ -98,12 +98,14 @@ int ipc3270_method_call(GObject *object, const gchar *method_name, GVariant *req } // Check actions table. - const LIB3270_ACTION_ENTRY * actions = lib3270_get_action_table(); + const LIB3270_ACTION * actions = lib3270_get_actions(); for(ix = 0; actions[ix].name; ix++) { if(!g_ascii_strcasecmp(actions[ix].name,method_name)) { - if(actions[ix].call(hSession)) + if(!actions[ix].enabled(hSession)) + ipc3270_set_error(object,EPERM,error); + else if(actions[ix].activate(hSession)) ipc3270_set_error(object,errno,error); else ipc3270_response_append_int32(response, 0); -- libgit2 0.21.2