Commit db04ac3f34fcd73fd7f68ea6bd11f9ac20a8aabb
1 parent
35db594a
Exists in
master
and in
3 other branches
Updating timer calls.
Showing
12 changed files
with
60 additions
and
318 deletions
Show diff stats
lib3270.cbp
... | ... | @@ -46,7 +46,6 @@ |
46 | 46 | <Unit filename="src/include/ansic.h" /> |
47 | 47 | <Unit filename="src/include/api.h" /> |
48 | 48 | <Unit filename="src/include/aplc.h" /> |
49 | - <Unit filename="src/include/appres.h" /> | |
50 | 49 | <Unit filename="src/include/arpa_telnet.h" /> |
51 | 50 | <Unit filename="src/include/cg.h" /> |
52 | 51 | <Unit filename="src/include/childc.h" /> | ... | ... |
src/include/appres.h
... | ... | @@ -1,243 +0,0 @@ |
1 | -/* | |
2 | - * Modifications Copyright 1993, 1994, 1995, 1996, 1999, 2000, 2001, 2002, | |
3 | - * 2003, 2004, 2005, 2007 by Paul Mattes. | |
4 | - * Copyright 1990 by Jeff Sparkes. | |
5 | - * Permission to use, copy, modify, and distribute this software and its | |
6 | - * documentation for any purpose and without fee is hereby granted, | |
7 | - * provided that the above copyright notice appear in all copies and that | |
8 | - * both that copyright notice and this permission notice appear in | |
9 | - * supporting documentation. | |
10 | - * | |
11 | - * x3270, c3270, s3270 and tcl3270 are distributed in the hope that they will | |
12 | - * be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file LICENSE | |
14 | - * for more details. | |
15 | - */ | |
16 | - | |
17 | -/* | |
18 | - * appres.h | |
19 | - * Application resource definitions for x3270, c3270, s3270 and | |
20 | - * tcl3270. | |
21 | - */ | |
22 | - | |
23 | -#include "toggle.h" | |
24 | - | |
25 | -/* Toggles */ | |
26 | - | |
27 | -/* | |
28 | -struct toggle { | |
29 | - char value; // toggle value | |
30 | -// char changed; // has the value changed since init | |
31 | -// Widget w[2]; // the menu item widgets | |
32 | -// const char *label[2]; // labels | |
33 | - void (*upcall)(H3270 *, struct toggle *, LIB3270_TOGGLE_TYPE); // change value | |
34 | -// void (*callback)(H3270 *, int, LIB3270_TOGGLE_TYPE); | |
35 | - | |
36 | -}; | |
37 | - | |
38 | -// #define toggle_toggle(t) { (t)->value = !(t)->value; } | |
39 | -*/ | |
40 | - | |
41 | -#error Deprecated | |
42 | - | |
43 | -#define toggled(ix) lib3270_get_toggle(NULL,ix) | |
44 | - | |
45 | -/* Application resources */ | |
46 | - | |
47 | -typedef struct { | |
48 | - /* Basic colors */ | |
49 | -// #if defined(X3270_DISPLAY) /*[*/ | |
50 | -// Pixel foreground; | |
51 | -// Pixel background; | |
52 | -// #endif /*]*/ | |
53 | - | |
54 | - /* Options (not toggles) */ | |
55 | -// char mono; | |
56 | -// char extended; | |
57 | -// char m3279; | |
58 | -// char modified_sel; | |
59 | -// char once; | |
60 | -//#if defined(X3270_DISPLAY) /*[*/ | |
61 | -// char visual_bell; | |
62 | -// char menubar; | |
63 | -// char active_icon; | |
64 | -// char label_icon; | |
65 | -// char invert_kpshift; | |
66 | -// char use_cursor_color; | |
67 | -// char allow_resize; | |
68 | -// char no_other; | |
69 | -// char do_confirms; | |
70 | -// #if !defined(G3270) | |
71 | -// char reconnect; | |
72 | -// #endif | |
73 | -// char visual_select; | |
74 | -// char suppress_host; | |
75 | -// char suppress_font_menu; | |
76 | -//# if defined(X3270_KEYPAD) /*[*/ | |
77 | -// char keypad_on; | |
78 | -//# endif /*]*/ | |
79 | -//#endif /*]*/ | |
80 | -//#if defined(C3270) /*[*/ | |
81 | -// char all_bold_on; | |
82 | -// char curses_keypad; | |
83 | -// char cbreak_mode; | |
84 | -//#endif /*]*/ | |
85 | -// char apl_mode; | |
86 | -// char scripted; | |
87 | -// char numeric_lock; | |
88 | -// char secure; | |
89 | -// char oerr_lock; | |
90 | -// char typeahead; | |
91 | -// char debug_tracing; | |
92 | -// char disconnect_clear; | |
93 | -// char highlight_bold; | |
94 | -// char color8; | |
95 | -// char bsd_tm; | |
96 | -// char unlock_delay; | |
97 | -// #if defined(X3270_SCRIPT) /*[*/ | |
98 | -// char socket; | |
99 | -// #endif /*]*/ | |
100 | -// #if defined(C3270) && defined(_WIN32) /*[*/ | |
101 | -// char highlight_underline; | |
102 | -//#endif /*]*/ | |
103 | - | |
104 | - /* Named resources */ | |
105 | -/* | |
106 | -#if defined(X3270_KEYPAD) | |
107 | - char *keypad; | |
108 | -#endif | |
109 | -*/ | |
110 | -#if defined(X3270_DISPLAY) || defined(C3270) | |
111 | -// char *key_map; | |
112 | -// char *compose_map; | |
113 | -// char *printer_lu; | |
114 | -#endif | |
115 | -/* | |
116 | -#if defined(X3270_DISPLAY) | |
117 | - char *efontname; | |
118 | - char *fixed_size; | |
119 | - char *debug_font; | |
120 | - char *icon_font; | |
121 | - char *icon_label_font; | |
122 | - int save_lines; | |
123 | - char *normal_name; | |
124 | - char *select_name; | |
125 | - char *bold_name; | |
126 | - char *colorbg_name; | |
127 | - char *keypadbg_name; | |
128 | - char *selbg_name; | |
129 | - char *cursor_color_name; | |
130 | - char *color_scheme; | |
131 | - int bell_volume; | |
132 | - char *char_class; | |
133 | - int modified_sel_color; | |
134 | - int visual_select_color; | |
135 | -#if defined(X3270_DBCS) | |
136 | - char *input_method; | |
137 | - char *preedit_type; | |
138 | -#endif | |
139 | -#endif | |
140 | -*/ | |
141 | -//#if defined(X3270_DBCS) | |
142 | -// char *local_encoding; | |
143 | -//#endif | |
144 | - | |
145 | -#if defined(C3270) /*[*/ | |
146 | -// char *meta_escape; | |
147 | -// char *all_bold; | |
148 | -// char *altscreen; | |
149 | -// char *defscreen; | |
150 | -#endif /*]*/ | |
151 | -// char *conf_dir; | |
152 | - char *model; | |
153 | -// char *hostsfile; | |
154 | -// char *port; | |
155 | -// char *charset; | |
156 | -// char *termname; | |
157 | -// char *login_macro; | |
158 | -// char *macros; | |
159 | -#if defined(X3270_TRACE) /*[*/ | |
160 | -//#if !defined(_WIN32) | |
161 | -// char *trace_dir; | |
162 | -//#endif | |
163 | -// char *trace_file; | |
164 | -// char *screentrace_file; | |
165 | -// char *trace_file_size; | |
166 | -/* | |
167 | -#if defined(X3270_DISPLAY) || defined(WC3270) | |
168 | - char trace_monitor; | |
169 | -#endif | |
170 | -*/ | |
171 | - | |
172 | -#endif /*]*/ | |
173 | -// char *oversize; | |
174 | -#if defined(X3270_FT) /*[*/ | |
175 | -// char *ft_command; | |
176 | -// int dft_buffer_size; | |
177 | -#endif /*]*/ | |
178 | -// char *connectfile_name; | |
179 | -// char *idle_command; | |
180 | -// char idle_command_enabled; | |
181 | -// char *idle_timeout; | |
182 | - | |
183 | -/* | |
184 | -#if defined(X3270_SCRIPT) | |
185 | - char *plugin_command; | |
186 | -#endif | |
187 | -*/ | |
188 | - | |
189 | -//#if defined(HAVE_LIBSSL) | |
190 | -// char *cert_file; | |
191 | -//#endif | |
192 | -// char *proxy; | |
193 | - | |
194 | - /* Toggles */ | |
195 | -// struct toggle toggle[N_TOGGLES]; | |
196 | -/* | |
197 | -#if defined(X3270_DISPLAY) | |
198 | - // Simple widget resources | |
199 | - Cursor normal_mcursor; | |
200 | - Cursor wait_mcursor; | |
201 | - Cursor locked_mcursor; | |
202 | -#endif | |
203 | -*/ | |
204 | - | |
205 | -/* | |
206 | -#if defined(X3270_ANSI) | |
207 | - // Line-mode TTY parameters | |
208 | - char icrnl; | |
209 | - char inlcr; | |
210 | - char onlcr; | |
211 | - char *erase; | |
212 | - char *kill; | |
213 | - char *werase; | |
214 | - char *rprnt; | |
215 | - char *lnext; | |
216 | - char *intr; | |
217 | - char *quit; | |
218 | - char *eof; | |
219 | -#endif | |
220 | -*/ | |
221 | - | |
222 | -// #if defined(WC3270) /*[*/ | |
223 | -// char *hostname; | |
224 | -// #endif | |
225 | - | |
226 | -/* | |
227 | -#if defined(WC3270) | |
228 | - char *title; | |
229 | -#endif | |
230 | -*/ | |
231 | - | |
232 | -/* | |
233 | -#if defined(USE_APP_DEFAULTS) | |
234 | - // App-defaults version | |
235 | - char *ad_version; | |
236 | -#endif | |
237 | -*/ | |
238 | - | |
239 | -} AppRes, *AppResptr; | |
240 | - | |
241 | -extern AppRes appres; | |
242 | - | |
243 | -void toggle_rectselect(H3270 *session, struct lib3270_toggle *t, LIB3270_TOGGLE_TYPE tt); |
src/include/gluec.h
... | ... | @@ -1,33 +0,0 @@ |
1 | -/* | |
2 | - * Copyright 2000 by Paul Mattes. | |
3 | - * Permission to use, copy, modify, and distribute this software and its | |
4 | - * documentation for any purpose and without fee is hereby granted, | |
5 | - * provided that the above copyright notice appear in all copies and that | |
6 | - * both that copyright notice and this permission notice appear in | |
7 | - * supporting documentation. | |
8 | - * | |
9 | - * c3270, s3270 and tcl3270 are distributed in the hope that they will | |
10 | - * be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file LICENSE | |
12 | - * for more details. | |
13 | - */ | |
14 | - | |
15 | -/* | |
16 | - * gluec.h | |
17 | - * Declarations for glue.c and XtGlue.c | |
18 | - */ | |
19 | - | |
20 | -/* glue.c */ | |
21 | -// extern int parse_command_line(int argc, const char **argv, const char **cl_hostname); | |
22 | -// extern int parse_program_parameters(int argc, const char **argv); | |
23 | -// LIB3270_INTERNAL void parse_xrm(const char *arg, const char *where); | |
24 | -// LIB3270_INTERNAL void notify_ssl_error(H3270 *session, const char *title, const char *msg, const char *state, const char *alert); | |
25 | - | |
26 | -/* XtGlue.c */ | |
27 | -// LIB3270_INTERNAL void (*Warning_redirect)(const char *); | |
28 | - | |
29 | -// #if !defined(_WIN32) | |
30 | -// LIB3270_INTERNAL int select_setup(int *nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval **timeout, struct timeval *timebuf); | |
31 | -// #endif | |
32 | - | |
33 | -#error Deprecated |
src/include/lib3270.h
... | ... | @@ -833,8 +833,8 @@ |
833 | 833 | { |
834 | 834 | unsigned short sz; |
835 | 835 | |
836 | - void * (*AddTimeOut)(H3270 *session, unsigned long interval_ms, void (*proc)(H3270 *session)); | |
837 | - void (*RemoveTimeOut)(H3270 *session, void *timer); | |
836 | + void * (*AddTimer)(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)); | |
837 | + void (*RemoveTimer)(H3270 *session, void *timer); | |
838 | 838 | |
839 | 839 | void * (*add_poll)(H3270 *session, int fd, LIB3270_IO_FLAG flag, void(*proc)(H3270 *, int, LIB3270_IO_FLAG, void *), void *userdata); |
840 | 840 | void (*remove_poll)(H3270 *session, void *id); |
... | ... | @@ -864,7 +864,7 @@ |
864 | 864 | * @param rm Callback for removing a timeout |
865 | 865 | * |
866 | 866 | */ |
867 | - LIB3270_EXPORT void lib3270_register_time_handlers(void * (*add)(H3270 *session, unsigned long interval_ms, void (*proc)(H3270 *session)), void (*rm)(H3270 *session, void *timer)); | |
867 | + LIB3270_EXPORT void lib3270_register_timer_handlers(void * (*add)(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)), void (*rm)(H3270 *session, void *timer)); | |
868 | 868 | |
869 | 869 | LIB3270_EXPORT void lib3270_register_fd_handlers(void * (*add)(H3270 *session, int fd, LIB3270_IO_FLAG flag, void(*proc)(H3270 *, int, LIB3270_IO_FLAG, void *), void *userdata), void (*rm)(H3270 *, void *id)); |
870 | 870 | ... | ... |
src/include/utilc.h
... | ... | @@ -41,8 +41,8 @@ LIB3270_INTERNAL void * AddOutput(int, H3270 *session, void (*fn)(H3270 *sessio |
41 | 41 | LIB3270_INTERNAL void * AddExcept(int, H3270 *session, void (*fn)(H3270 *session)); |
42 | 42 | |
43 | 43 | LIB3270_INTERNAL void RemoveSource(H3270 *session, void *cookie); |
44 | -LIB3270_INTERNAL void * AddTimeOut(unsigned long msec, H3270 *session, void (*fn)(H3270 *session)); | |
45 | -LIB3270_INTERNAL void RemoveTimeOut(H3270 *session, void *cookie); | |
44 | +LIB3270_INTERNAL void * AddTimer(unsigned long msec, H3270 *session, int (*fn)(H3270 *session)); | |
45 | +LIB3270_INTERNAL void RemoveTimer(H3270 *session, void *cookie); | |
46 | 46 | |
47 | 47 | LIB3270_INTERNAL const char * KeysymToString(KeySym k); |
48 | 48 | ... | ... |
src/lib3270/ctlr.c
... | ... | @@ -2809,7 +2809,7 @@ delta_msec(struct timeval *t1, struct timeval *t0) |
2809 | 2809 | (t1->tv_usec - t0->tv_usec + 500) / 1000; |
2810 | 2810 | } |
2811 | 2811 | |
2812 | -static void keep_ticking(H3270 *hSession) | |
2812 | +static int keep_ticking(H3270 *hSession) | |
2813 | 2813 | { |
2814 | 2814 | struct timeval t1; |
2815 | 2815 | long msec; |
... | ... | @@ -2821,8 +2821,9 @@ static void keep_ticking(H3270 *hSession) |
2821 | 2821 | msec = delta_msec(&hSession->t_want, &t1); |
2822 | 2822 | } while (msec <= 0); |
2823 | 2823 | |
2824 | - hSession->tick_id = AddTimeOut(msec, hSession, keep_ticking); | |
2825 | 2824 | status_timing(hSession,&hSession->t_start, &t1); |
2825 | + | |
2826 | + return 1; | |
2826 | 2827 | } |
2827 | 2828 | |
2828 | 2829 | void ticking_start(H3270 *hSession, Boolean anyway) |
... | ... | @@ -2846,10 +2847,10 @@ void ticking_start(H3270 *hSession, Boolean anyway) |
2846 | 2847 | status_untiming(hSession); |
2847 | 2848 | |
2848 | 2849 | if (hSession->ticking) |
2849 | - RemoveTimeOut(hSession, hSession->tick_id); | |
2850 | + RemoveTimer(hSession, hSession->tick_id); | |
2850 | 2851 | |
2851 | 2852 | hSession->ticking = 1; |
2852 | - hSession->tick_id = AddTimeOut(1000, hSession, keep_ticking); | |
2853 | + hSession->tick_id = AddTimer(1000, hSession, keep_ticking); | |
2853 | 2854 | hSession->t_want = hSession->t_start; |
2854 | 2855 | } |
2855 | 2856 | |
... | ... | @@ -2875,7 +2876,7 @@ static void ticking_stop(H3270 *hSession) |
2875 | 2876 | |
2876 | 2877 | if (!hSession->ticking) |
2877 | 2878 | return; |
2878 | - RemoveTimeOut(hSession, hSession->tick_id); | |
2879 | + RemoveTimer(hSession, hSession->tick_id); | |
2879 | 2880 | hSession->ticking = 0; |
2880 | 2881 | status_timing(hSession,&hSession->t_start, &t1); |
2881 | 2882 | } | ... | ... |
src/lib3270/host.c
... | ... | @@ -58,11 +58,12 @@ |
58 | 58 | /** |
59 | 59 | * @brief Called from timer to attempt an automatic reconnection. |
60 | 60 | */ |
61 | -void lib3270_reconnect(H3270 *hSession) | |
61 | +int lib3270_reconnect(H3270 *hSession) | |
62 | 62 | { |
63 | 63 | lib3270_write_log(hSession,"3270","Starting auto-reconnect on %s",lib3270_get_url(hSession)); |
64 | 64 | hSession->auto_reconnect_inprogress = 0; |
65 | 65 | lib3270_connect(hSession,0); |
66 | + return 0; | |
66 | 67 | } |
67 | 68 | |
68 | 69 | LIB3270_EXPORT int lib3270_disconnect(H3270 *h) |
... | ... | @@ -85,7 +86,7 @@ int host_disconnect(H3270 *hSession, int failed) |
85 | 86 | { |
86 | 87 | /* Schedule an automatic reconnection. */ |
87 | 88 | hSession->auto_reconnect_inprogress = 1; |
88 | - (void) AddTimeOut(failed ? RECONNECT_ERR_MS : RECONNECT_MS, hSession, lib3270_reconnect); | |
89 | + (void) AddTimer(failed ? RECONNECT_ERR_MS : RECONNECT_MS, hSession, lib3270_reconnect); | |
89 | 90 | } |
90 | 91 | |
91 | 92 | /* | ... | ... |
src/lib3270/iocalls.c
... | ... | @@ -58,8 +58,8 @@ |
58 | 58 | /*---[ Standard calls ]-------------------------------------------------------------------------------------*/ |
59 | 59 | |
60 | 60 | // Timeout calls |
61 | - static void internal_remove_timeout(H3270 *session, void *timer); | |
62 | - static void * internal_add_timeout(H3270 *session, unsigned long interval_ms, void (*proc)(H3270 *session)); | |
61 | + static void internal_remove_timer(H3270 *session, void *timer); | |
62 | + static void * internal_add_timer(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)); | |
63 | 63 | |
64 | 64 | static void * internal_add_poll(H3270 *session, int fd, LIB3270_IO_FLAG flag, void(*proc)(H3270 *, int, LIB3270_IO_FLAG, void *), void *userdata ); |
65 | 65 | static void internal_remove_poll(H3270 *session, void *id); |
... | ... | @@ -74,11 +74,11 @@ |
74 | 74 | |
75 | 75 | /*---[ Active callbacks ]-----------------------------------------------------------------------------------*/ |
76 | 76 | |
77 | - static void * (*add_timeout)(H3270 *session, unsigned long interval_ms, void (*proc)(H3270 *session)) | |
78 | - = internal_add_timeout; | |
77 | + static void * (*add_timer)(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)) | |
78 | + = internal_add_timer; | |
79 | 79 | |
80 | - static void (*remove_timeout)(H3270 *session, void *timer) | |
81 | - = internal_remove_timeout; | |
80 | + static void (*remove_timer)(H3270 *session, void *timer) | |
81 | + = internal_remove_timer; | |
82 | 82 | |
83 | 83 | static void * (*add_poll)(H3270 *session, int fd, LIB3270_IO_FLAG flag, void(*proc)(H3270 *, int, LIB3270_IO_FLAG, void *), void *userdata) |
84 | 84 | = internal_add_poll; |
... | ... | @@ -124,7 +124,7 @@ static void ms_ts(unsigned long long *u) |
124 | 124 | } |
125 | 125 | #endif |
126 | 126 | |
127 | -static void * internal_add_timeout(H3270 *session, unsigned long interval_ms, void (*proc)(H3270 *session)) | |
127 | +static void * internal_add_timer(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)) | |
128 | 128 | { |
129 | 129 | timeout_t *t_new; |
130 | 130 | timeout_t *t; |
... | ... | @@ -184,12 +184,12 @@ static void * internal_add_timeout(H3270 *session, unsigned long interval_ms, vo |
184 | 184 | prev->next = t_new; |
185 | 185 | } |
186 | 186 | |
187 | - trace("Timeout %p added with value %ld",t_new,interval_ms); | |
187 | + trace("Timer %p added with value %ld",t_new,interval_ms); | |
188 | 188 | |
189 | 189 | return t_new; |
190 | 190 | } |
191 | 191 | |
192 | -static void internal_remove_timeout(H3270 *session, void * timer) | |
192 | +static void internal_remove_timer(H3270 *session, void * timer) | |
193 | 193 | { |
194 | 194 | timeout_t *st = (timeout_t *)timer; |
195 | 195 | timeout_t *t; |
... | ... | @@ -354,22 +354,21 @@ static void internal_ring_bell(H3270 *session unused) |
354 | 354 | |
355 | 355 | /* External entry points */ |
356 | 356 | |
357 | -void * AddTimeOut(unsigned long interval_ms, H3270 *session, void (*proc)(H3270 *session)) | |
357 | +void * AddTimer(unsigned long interval_ms, H3270 *session, int (*proc)(H3270 *session)) | |
358 | 358 | { |
359 | 359 | void *timer; |
360 | 360 | CHECK_SESSION_HANDLE(session); |
361 | - timer = add_timeout(session,interval_ms,proc); | |
361 | + timer = add_timer(session,interval_ms,proc); | |
362 | 362 | trace("Timeout %p created with %ld ms",timer,interval_ms); |
363 | 363 | return timer; |
364 | 364 | } |
365 | 365 | |
366 | -void RemoveTimeOut(H3270 *session, void * timer) | |
366 | +void RemoveTimer(H3270 *session, void * timer) | |
367 | 367 | { |
368 | 368 | if(!timer) |
369 | 369 | return; |
370 | - | |
371 | 370 | trace("Removing timeout %p",timer); |
372 | - return remove_timeout(session, timer); | |
371 | + return remove_timer(session, timer); | |
373 | 372 | } |
374 | 373 | |
375 | 374 | void x_except_on(H3270 *h) |
... | ... | @@ -410,13 +409,13 @@ void remove_input_calls(H3270 *session) |
410 | 409 | } |
411 | 410 | } |
412 | 411 | |
413 | -LIB3270_EXPORT void lib3270_register_time_handlers(void * (*add)(H3270 *session, unsigned long interval_ms, void (*proc)(H3270 *session)), void (*rm)(H3270 *session, void *timer)) | |
412 | +LIB3270_EXPORT void lib3270_register_timer_handlers(void * (*add)(H3270 *session, unsigned long interval_ms, int (*proc)(H3270 *session)), void (*rm)(H3270 *session, void *timer)) | |
414 | 413 | { |
415 | 414 | if(add) |
416 | - add_timeout = add; | |
415 | + add_timer = add; | |
417 | 416 | |
418 | 417 | if(rm) |
419 | - remove_timeout = rm; | |
418 | + remove_timer = rm; | |
420 | 419 | |
421 | 420 | } |
422 | 421 | |
... | ... | @@ -433,7 +432,7 @@ LIB3270_EXPORT int lib3270_register_io_controller(const LIB3270_IO_CONTROLLER *c |
433 | 432 | if(!cbk || cbk->sz != sizeof(LIB3270_IO_CONTROLLER)) |
434 | 433 | return errno = EINVAL; |
435 | 434 | |
436 | - lib3270_register_time_handlers(cbk->AddTimeOut,cbk->RemoveTimeOut); | |
435 | + lib3270_register_timer_handlers(cbk->AddTimer,cbk->RemoveTimer); | |
437 | 436 | lib3270_register_fd_handlers(cbk->add_poll,cbk->remove_poll); |
438 | 437 | |
439 | 438 | if(cbk->Wait) | ... | ... |
src/lib3270/kybd.c
... | ... | @@ -405,7 +405,7 @@ void kybd_inhibit(H3270 *session, Boolean inhibit) |
405 | 405 | void kybd_connect(H3270 *session, int connected, void *dunno unused) |
406 | 406 | { |
407 | 407 | if (session->kybdlock & KL_DEFERRED_UNLOCK) |
408 | - RemoveTimeOut(session, session->unlock_id); | |
408 | + RemoveTimer(session, session->unlock_id); | |
409 | 409 | |
410 | 410 | lib3270_kybdlock_clear(session, -1); |
411 | 411 | |
... | ... | @@ -427,7 +427,7 @@ void kybd_connect(H3270 *session, int connected, void *dunno unused) |
427 | 427 | void kybd_in3270(H3270 *hSession, int in3270 unused, void *dunno unused) |
428 | 428 | { |
429 | 429 | if (hSession->kybdlock & KL_DEFERRED_UNLOCK) |
430 | - RemoveTimeOut(hSession, hSession->unlock_id); | |
430 | + RemoveTimer(hSession, hSession->unlock_id); | |
431 | 431 | |
432 | 432 | lib3270_kybdlock_clear(hSession,~KL_AWAITING_FIRST); |
433 | 433 | |
... | ... | @@ -1111,13 +1111,13 @@ LIB3270_EXPORT int lib3270_previousfield(H3270 *hSession) |
1111 | 1111 | * Deferred keyboard unlock. |
1112 | 1112 | */ |
1113 | 1113 | |
1114 | -static void defer_unlock(H3270 *hSession) | |
1114 | +static int defer_unlock(H3270 *hSession) | |
1115 | 1115 | { |
1116 | -// trace("%s",__FUNCTION__); | |
1117 | 1116 | lib3270_kybdlock_clear(hSession,KL_DEFERRED_UNLOCK); |
1118 | 1117 | status_reset(hSession); |
1119 | 1118 | if(CONNECTED) |
1120 | 1119 | ps_process(hSession); |
1120 | + return 0; | |
1121 | 1121 | } |
1122 | 1122 | |
1123 | 1123 | /** |
... | ... | @@ -1152,7 +1152,7 @@ void do_reset(H3270 *hSession, Boolean explicit) |
1152 | 1152 | * keyboard now, or want to defer further into the future. |
1153 | 1153 | */ |
1154 | 1154 | if (hSession->kybdlock & KL_DEFERRED_UNLOCK) |
1155 | - RemoveTimeOut(hSession, hSession->unlock_id); | |
1155 | + RemoveTimer(hSession, hSession->unlock_id); | |
1156 | 1156 | |
1157 | 1157 | /* |
1158 | 1158 | * If explicit (from the keyboard), unlock the keyboard now. |
... | ... | @@ -1169,7 +1169,7 @@ void do_reset(H3270 *hSession, Boolean explicit) |
1169 | 1169 | |
1170 | 1170 | if(hSession->unlock_delay_ms) |
1171 | 1171 | { |
1172 | - hSession->unlock_id = AddTimeOut(hSession->unlock_delay_ms, hSession, defer_unlock); | |
1172 | + hSession->unlock_id = AddTimer(hSession->unlock_delay_ms, hSession, defer_unlock); | |
1173 | 1173 | } |
1174 | 1174 | else |
1175 | 1175 | { | ... | ... |
src/lib3270/private.h
... | ... | @@ -265,7 +265,7 @@ typedef struct timeout |
265 | 265 | struct timeval tv; |
266 | 266 | #endif /*]*/ |
267 | 267 | |
268 | - void (*proc)(H3270 *session); | |
268 | + int (*proc)(H3270 *session); | |
269 | 269 | |
270 | 270 | H3270 *session; |
271 | 271 | |
... | ... | @@ -301,8 +301,6 @@ struct _h3270 |
301 | 301 | { |
302 | 302 | struct lib3270_session_callbacks cbk; // Callback table - Always the first one. |
303 | 303 | |
304 | -// unsigned short sz; /**< Struct size */ | |
305 | - | |
306 | 304 | // Session info |
307 | 305 | char id; ///< @brief Session Identifier. |
308 | 306 | |
... | ... | @@ -601,6 +599,8 @@ struct _h3270 |
601 | 599 | void * except; |
602 | 600 | } xio; |
603 | 601 | |
602 | + size_t popups; ///< @brief Count open popups. | |
603 | + | |
604 | 604 | #ifdef HAVE_LIBSSL |
605 | 605 | /// @brief SSL Data. |
606 | 606 | struct |
... | ... | @@ -647,7 +647,7 @@ LIB3270_INTERNAL int lib3270_default_event_dispatcher(H3270 *hSession, int block |
647 | 647 | /** |
648 | 648 | * @brief Called from timer to attempt an automatic reconnection. |
649 | 649 | */ |
650 | -LIB3270_INTERNAL void lib3270_reconnect(H3270 *hSession); | |
650 | +LIB3270_INTERNAL int lib3270_reconnect(H3270 *hSession); | |
651 | 651 | |
652 | 652 | #if defined(DEBUG) |
653 | 653 | #define CHECK_SESSION_HANDLE(x) check_session_handle(&x,__FUNCTION__); | ... | ... |
src/lib3270/screen.c
... | ... | @@ -759,7 +759,9 @@ void Error(H3270 *session, const char *fmt, ...) |
759 | 759 | |
760 | 760 | va_start(arg_ptr, fmt); |
761 | 761 | |
762 | + session->popups++; | |
762 | 763 | session->cbk.popup(session,LIB3270_NOTIFY_ERROR, _( "3270 Error" ),NULL,fmt,arg_ptr); |
764 | + session->popups--; | |
763 | 765 | |
764 | 766 | va_end(arg_ptr); |
765 | 767 | |
... | ... | @@ -774,7 +776,11 @@ void Warning(H3270 *session, const char *fmt, ...) |
774 | 776 | trace("%s: title=%s fmt=%s",__FUNCTION__,"3270 Warning",fmt); |
775 | 777 | |
776 | 778 | va_start(arg_ptr, fmt); |
779 | + | |
780 | + session->popups++; | |
777 | 781 | session->cbk.popup(session,LIB3270_NOTIFY_WARNING, _( "3270 Warning" ),NULL,fmt,arg_ptr); |
782 | + session->popups--; | |
783 | + | |
778 | 784 | va_end(arg_ptr); |
779 | 785 | |
780 | 786 | } |
... | ... | @@ -789,7 +795,11 @@ void popup_an_error(H3270 *session, const char *fmt, ...) |
789 | 795 | trace("%s: title=%s fmt=%s",__FUNCTION__,"3270 Error",fmt); |
790 | 796 | |
791 | 797 | va_start(args, fmt); |
798 | + | |
799 | + session->popups++; | |
792 | 800 | session->cbk.popup(session,LIB3270_NOTIFY_ERROR,_( "3270 Error" ),NULL,fmt,args); |
801 | + session->popups--; | |
802 | + | |
793 | 803 | va_end(args); |
794 | 804 | |
795 | 805 | } |
... | ... | @@ -803,7 +813,11 @@ void popup_system_error(H3270 *session, const char *title, const char *message, |
803 | 813 | trace("%s: title=%s msg=%s",__FUNCTION__,"3270 Error",message); |
804 | 814 | |
805 | 815 | va_start(args, fmt); |
816 | + | |
817 | + session->popups++; | |
806 | 818 | session->cbk.popup(session,LIB3270_NOTIFY_ERROR,title ? title : _( "3270 Error" ), message,fmt,args); |
819 | + session->popups--; | |
820 | + | |
807 | 821 | va_end(args); |
808 | 822 | } |
809 | 823 | |
... | ... | @@ -924,7 +938,11 @@ LIB3270_EXPORT void lib3270_popup_dialog(H3270 *session, LIB3270_NOTIFY id , con |
924 | 938 | LIB3270_EXPORT void lib3270_popup_va(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, va_list args) |
925 | 939 | { |
926 | 940 | CHECK_SESSION_HANDLE(session); |
941 | + | |
942 | + session->popups++; | |
927 | 943 | session->cbk.popup(session,id,title ? title : _( "3270 Error" ), message,fmt,args); |
944 | + session->popups--; | |
945 | + | |
928 | 946 | } |
929 | 947 | |
930 | 948 | LIB3270_EXPORT int lib3270_is_protected(H3270 *h, unsigned int baddr) | ... | ... |
src/lib3270/toggles.c
... | ... | @@ -352,7 +352,7 @@ static void toggle_reconnect(H3270 *hSession, struct lib3270_toggle *t unused, L |
352 | 352 | /* Schedule an automatic reconnection. */ |
353 | 353 | lib3270_write_log(hSession,"toggle","Auto-reconnect toggle was activated when offline, reconnecting"); |
354 | 354 | hSession->auto_reconnect_inprogress = 1; |
355 | - (void) AddTimeOut(RECONNECT_MS, hSession, lib3270_reconnect); | |
355 | + (void) AddTimer(RECONNECT_MS, hSession, lib3270_reconnect); | |
356 | 356 | } |
357 | 357 | |
358 | 358 | } | ... | ... |