Commit b0f14ba36b8b224dd849c33836e4a9f8f0bafd6b
1 parent
3337cc2a
Exists in
master
and in
5 other branches
Reimplementando modulo hllapi
Showing
4 changed files
with
62 additions
and
23 deletions
Show diff stats
src/plugins/remotectl/calls.c
@@ -72,14 +72,14 @@ | @@ -72,14 +72,14 @@ | ||
72 | { (void **) &host_disconnect, (void *) hllapi_pipe_disconnect, "lib3270_disconnect" }, | 72 | { (void **) &host_disconnect, (void *) hllapi_pipe_disconnect, "lib3270_disconnect" }, |
73 | { (void **) &wait_for_ready, (void *) NULL, "lib3270_wait_for_ready" }, | 73 | { (void **) &wait_for_ready, (void *) NULL, "lib3270_wait_for_ready" }, |
74 | { (void **) &script_sleep, (void *) NULL, "lib3270_wait" }, | 74 | { (void **) &script_sleep, (void *) NULL, "lib3270_wait" }, |
75 | - { (void **) &get_message, (void *) NULL, "lib3270_get_program_message" }, | ||
76 | - { (void **) &get_text, (void *) NULL, "lib3270_get_text_at" }, | 75 | + { (void **) &get_message, (void *) hllapi_pipe_get_message, "lib3270_get_program_message" }, |
76 | + { (void **) &get_text, (void *) hllapi_pipe_get_text_at, "lib3270_get_text_at" }, | ||
77 | { (void **) &release_memory, (void *) hllapi_pipe_release_memory, "lib3270_free" }, | 77 | { (void **) &release_memory, (void *) hllapi_pipe_release_memory, "lib3270_free" }, |
78 | - { (void **) &action_enter, (void *) NULL, "lib3270_enter" }, | ||
79 | - { (void **) &set_text_at, (void *) NULL, "lib3270_set_string_at" }, | ||
80 | - { (void **) &cmp_text_at, (void *) NULL, "lib3270_cmp_text_at" }, | ||
81 | - { (void **) &pfkey, (void *) NULL, "lib3270_pfkey" }, | ||
82 | - { (void **) &pakey, (void *) NULL, "lib3270_pakey" }, | 78 | + { (void **) &action_enter, (void *) hllapi_pipe_enter, "lib3270_enter" }, |
79 | + { (void **) &set_text_at, (void *) hllapi_pipe_set_text_at, "lib3270_set_string_at" }, | ||
80 | + { (void **) &cmp_text_at, (void *) hllapi_pipe_cmp_text_at, "lib3270_cmp_text_at" }, | ||
81 | + { (void **) &pfkey, (void *) hllapi_pipe_pfkey, "lib3270_pfkey" }, | ||
82 | + { (void **) &pakey, (void *) hllapi_pipe_pakey, "lib3270_pakey" }, | ||
83 | 83 | ||
84 | { NULL, NULL } | 84 | { NULL, NULL } |
85 | }; | 85 | }; |
src/plugins/remotectl/client.h
@@ -44,15 +44,15 @@ | @@ -44,15 +44,15 @@ | ||
44 | void hllapi_pipe_release_memory(void *p); | 44 | void hllapi_pipe_release_memory(void *p); |
45 | int hllapi_pipe_connect(void *h, const char *n, int wait); | 45 | int hllapi_pipe_connect(void *h, const char *n, int wait); |
46 | void hllapi_pipe_disconnect(void *h); | 46 | void hllapi_pipe_disconnect(void *h); |
47 | - | ||
48 | -/* | ||
49 | - int hllapi_pipe_wait_for_ready(void *h, int seconds); | ||
50 | - int hllapi_pipe_sleep(void *h, int seconds); | ||
51 | LIB3270_MESSAGE hllapi_pipe_get_message(void *h); | 47 | LIB3270_MESSAGE hllapi_pipe_get_message(void *h); |
52 | - char * hllapi_pipe_get_text(void *h, int row, int col, int len); | 48 | + char * hllapi_pipe_get_text_at(void *h, int row, int col, int len); |
53 | int hllapi_pipe_enter(void *h); | 49 | int hllapi_pipe_enter(void *h); |
54 | int hllapi_pipe_set_text_at(void *h, int row, int col, const unsigned char *str); | 50 | int hllapi_pipe_set_text_at(void *h, int row, int col, const unsigned char *str); |
55 | int hllapi_pipe_cmp_text_at(void *h, int row, int col, const char *text); | 51 | int hllapi_pipe_cmp_text_at(void *h, int row, int col, const char *text); |
56 | int hllapi_pipe_pfkey(void *h, int key); | 52 | int hllapi_pipe_pfkey(void *h, int key); |
57 | int hllapi_pipe_pakey(void *h, int key); | 53 | int hllapi_pipe_pakey(void *h, int key); |
54 | + | ||
55 | +/* | ||
56 | + int hllapi_pipe_wait_for_ready(void *h, int seconds); | ||
57 | + int hllapi_pipe_sleep(void *h, int seconds); | ||
58 | */ | 58 | */ |
src/plugins/remotectl/packets.h
@@ -31,48 +31,65 @@ | @@ -31,48 +31,65 @@ | ||
31 | 31 | ||
32 | struct hllapi_packet_result | 32 | struct hllapi_packet_result |
33 | { | 33 | { |
34 | - int rc; | 34 | + int rc; |
35 | }; | 35 | }; |
36 | 36 | ||
37 | struct hllapi_packet_query | 37 | struct hllapi_packet_query |
38 | { | 38 | { |
39 | - unsigned char packet_id; | 39 | + int packet_id; |
40 | }; | 40 | }; |
41 | 41 | ||
42 | struct hllapi_packet_connect | 42 | struct hllapi_packet_connect |
43 | { | 43 | { |
44 | - unsigned char packet_id; | 44 | + int packet_id; |
45 | unsigned char wait; | 45 | unsigned char wait; |
46 | char hostname[1]; | 46 | char hostname[1]; |
47 | }; | 47 | }; |
48 | 48 | ||
49 | struct hllapi_packet_keycode | 49 | struct hllapi_packet_keycode |
50 | { | 50 | { |
51 | - unsigned char packet_id; | 51 | + int packet_id; |
52 | unsigned short keycode; | 52 | unsigned short keycode; |
53 | }; | 53 | }; |
54 | 54 | ||
55 | struct hllapi_packet_cursor | 55 | struct hllapi_packet_cursor |
56 | { | 56 | { |
57 | - unsigned char packet_id; | 57 | + int packet_id; |
58 | unsigned short row; | 58 | unsigned short row; |
59 | unsigned short col; | 59 | unsigned short col; |
60 | }; | 60 | }; |
61 | 61 | ||
62 | struct hllapi_packet_text | 62 | struct hllapi_packet_text |
63 | { | 63 | { |
64 | - unsigned char packet_id; | 64 | + int packet_id; |
65 | char text[1]; | 65 | char text[1]; |
66 | }; | 66 | }; |
67 | 67 | ||
68 | +struct hllapi_packet_at | ||
69 | +{ | ||
70 | + int packet_id; | ||
71 | + unsigned short row; | ||
72 | + unsigned short col; | ||
73 | + unsigned short len; | ||
74 | +}; | ||
68 | 75 | ||
69 | struct hllapi_packet_text_at | 76 | struct hllapi_packet_text_at |
70 | { | 77 | { |
71 | - unsigned char packet_id; | 78 | + int packet_id; |
72 | unsigned short row; | 79 | unsigned short row; |
73 | unsigned short col; | 80 | unsigned short col; |
74 | char text[1]; | 81 | char text[1]; |
75 | }; | 82 | }; |
76 | 83 | ||
84 | +struct hllapi_packet_query_at | ||
85 | +{ | ||
86 | + int packet_id; | ||
87 | + unsigned short row; | ||
88 | + unsigned short col; | ||
89 | + unsigned short len; | ||
90 | +}; | ||
91 | + | ||
92 | + | ||
93 | + | ||
77 | #pragma pack() | 94 | #pragma pack() |
78 | 95 |
src/plugins/remotectl/pluginmain.c
@@ -134,13 +134,28 @@ | @@ -134,13 +134,28 @@ | ||
134 | return FALSE; | 134 | return FALSE; |
135 | } | 135 | } |
136 | 136 | ||
137 | -/* | ||
138 | - static void send_message(pipe_source *source, const void *pkt, int sz) | 137 | + static void send_text(pipe_source *source, char *text) |
139 | { | 138 | { |
140 | - WriteFile(qry->hPipe,&data,wrote,&wrote,NULL); | 139 | + struct hllapi_packet_text *pkt; |
140 | + DWORD szBlock; | ||
141 | 141 | ||
142 | + if(text) | ||
143 | + { | ||
144 | + szBlock = sizeof(struct hllapi_packet_text)+strlen(text); | ||
145 | + pkt = g_malloc0(szBlock); | ||
146 | + pkt->packet_id = 0; | ||
147 | + strcpy(pkt->text,text); | ||
148 | + lib3270_free(text); | ||
149 | + } | ||
150 | + else | ||
151 | + { | ||
152 | + szBlock = sizeof(struct hllapi_packet_text); | ||
153 | + pkt = g_malloc0(szBlock); | ||
154 | + pkt->packet_id = errno ? errno : -1; | ||
155 | + } | ||
156 | + | ||
157 | + WriteFile(source->hPipe,&pkt,szBlock,&szBlock,NULL); | ||
142 | } | 158 | } |
143 | -*/ | ||
144 | 159 | ||
145 | static void send_result(pipe_source *source, int rc) | 160 | static void send_result(pipe_source *source, int rc) |
146 | { | 161 | { |
@@ -197,6 +212,13 @@ | @@ -197,6 +212,13 @@ | ||
197 | (unsigned char *) ((struct hllapi_packet_text_at *) source->buffer)->text)); | 212 | (unsigned char *) ((struct hllapi_packet_text_at *) source->buffer)->text)); |
198 | break; | 213 | break; |
199 | 214 | ||
215 | + case HLLAPI_PACKET_GET_TEXT_AT: | ||
216 | + send_text(source,lib3270_get_text_at( lib3270_get_default_session_handle(), | ||
217 | + ((struct hllapi_packet_at *) source->buffer)->row, | ||
218 | + ((struct hllapi_packet_at *) source->buffer)->col, | ||
219 | + ((struct hllapi_packet_at *) source->buffer)->len)); | ||
220 | + break; | ||
221 | + | ||
200 | case HLLAPI_PACKET_CMP_TEXT_AT: | 222 | case HLLAPI_PACKET_CMP_TEXT_AT: |
201 | send_result(source,lib3270_cmp_text_at( lib3270_get_default_session_handle(), | 223 | send_result(source,lib3270_cmp_text_at( lib3270_get_default_session_handle(), |
202 | ((struct hllapi_packet_text_at *) source->buffer)->row, | 224 | ((struct hllapi_packet_text_at *) source->buffer)->row, |