Commit 33f0f0e0c920ab67dc9c3c027ba35485413f5b80

Authored by Perry Werneck
1 parent b0f3c135
Exists in master and in 1 other branch develop

Updating IPC plugin module to the new LIB3270_ACTION based elements.

server/src/core/linux/gobject.c
@@ -212,7 +212,7 @@ void ipc3270_add_terminal_introspection(GString *introspection) { @@ -212,7 +212,7 @@ void ipc3270_add_terminal_introspection(GString *introspection) {
212 ); 212 );
213 213
214 // Constrói métodos usando a tabela de controle 214 // Constrói métodos usando a tabela de controle
215 - const LIB3270_ACTION_ENTRY * actions = lib3270_get_action_table(); 215 + const LIB3270_ACTION * actions = lib3270_get_actions();
216 for(ix = 0; actions[ix].name; ix++) 216 for(ix = 0; actions[ix].name; ix++)
217 { 217 {
218 g_string_append_printf( 218 g_string_append_printf(
server/src/core/methods/methods.c
@@ -98,12 +98,14 @@ int ipc3270_method_call(GObject *object, const gchar *method_name, GVariant *req @@ -98,12 +98,14 @@ int ipc3270_method_call(GObject *object, const gchar *method_name, GVariant *req
98 } 98 }
99 99
100 // Check actions table. 100 // Check actions table.
101 - const LIB3270_ACTION_ENTRY * actions = lib3270_get_action_table(); 101 + const LIB3270_ACTION * actions = lib3270_get_actions();
102 for(ix = 0; actions[ix].name; ix++) { 102 for(ix = 0; actions[ix].name; ix++) {
103 103
104 if(!g_ascii_strcasecmp(actions[ix].name,method_name)) { 104 if(!g_ascii_strcasecmp(actions[ix].name,method_name)) {
105 105
106 - if(actions[ix].call(hSession)) 106 + if(!actions[ix].enabled(hSession))
  107 + ipc3270_set_error(object,EPERM,error);
  108 + else if(actions[ix].activate(hSession))
107 ipc3270_set_error(object,errno,error); 109 ipc3270_set_error(object,errno,error);
108 else 110 else
109 ipc3270_response_append_int32(response, 0); 111 ipc3270_response_append_int32(response, 0);