Commit e0dfd10d1ea27c149007ded01ad2d58efbb9a709

Authored by perry.werneck@gmail.com
1 parent 05d59c25
Exists in master

Movendo mais variaveis para a estrutura de controle de sessao

latest/src/gtk2/gui.h
@@ -333,7 +333,7 @@ @@ -333,7 +333,7 @@
333 void ReloadPixmaps(void); 333 void ReloadPixmaps(void);
334 void Reselect(void); 334 void Reselect(void);
335 void set_rectangle_select(int value, enum toggle_type reason); 335 void set_rectangle_select(int value, enum toggle_type reason);
336 - void SetStatusCode(STATUS_CODE id); 336 + void SetStatusCode(H3270 *session, LIB3270_STATUS id);
337 void SetTerminalFont(const gchar *fontname); 337 void SetTerminalFont(const gchar *fontname);
338 338
339 void init_gui_toggles(void); 339 void init_gui_toggles(void);
latest/src/gtk2/main.c
@@ -88,7 +88,7 @@ static void connect_main(H3270 *session, int status, void *dunno) @@ -88,7 +88,7 @@ static void connect_main(H3270 *session, int status, void *dunno)
88 } 88 }
89 else 89 else
90 { 90 {
91 - SetStatusCode(STATUS_CODE_DISCONNECTED); 91 + SetStatusCode(session,LIB3270_STATUS_DISCONNECTED);
92 cMode &= ~CURSOR_MODE_ENABLED; 92 cMode &= ~CURSOR_MODE_ENABLED;
93 // ctlr_erase(1); 93 // ctlr_erase(1);
94 online = FALSE; 94 online = FALSE;
latest/src/gtk2/oia.c
@@ -106,7 +106,7 @@ @@ -106,7 +106,7 @@
106 #define OIAROW (view.top+4+(terminal_font_info.spacing*view.rows)) 106 #define OIAROW (view.top+4+(terminal_font_info.spacing*view.rows))
107 107
108 gboolean oia_flag[OIA_FLAG_USER]; 108 gboolean oia_flag[OIA_FLAG_USER];
109 - STATUS_CODE terminal_message_id = (STATUS_CODE) -1; 109 + LIB3270_STATUS terminal_message_id = (LIB3270_STATUS) -1;
110 110
111 SCRIPT_STATE oia_script_state = SCRIPT_STATE_NONE; 111 SCRIPT_STATE oia_script_state = SCRIPT_STATE_NONE;
112 112
@@ -811,65 +811,65 @@ @@ -811,65 +811,65 @@
811 #endif 811 #endif
812 int color; 812 int color;
813 const gchar * string; 813 const gchar * string;
814 - } message[STATUS_CODE_USER] = 814 + } message[LIB3270_STATUS_USER] =
815 { 815 {
816 - OIA_MESSAGE( STATUS_CODE_BLANK, 816 + OIA_MESSAGE( LIB3270_STATUS_BLANK,
817 TERMINAL_COLOR_OIA_STATUS_OK, 817 TERMINAL_COLOR_OIA_STATUS_OK,
818 "" ), 818 "" ),
819 819
820 - OIA_MESSAGE( STATUS_CODE_SYSWAIT, 820 + OIA_MESSAGE( LIB3270_STATUS_SYSWAIT,
821 TERMINAL_COLOR_OIA_STATUS_OK, 821 TERMINAL_COLOR_OIA_STATUS_OK,
822 N_( "X System" ) ), 822 N_( "X System" ) ),
823 823
824 - OIA_MESSAGE( STATUS_CODE_TWAIT, 824 + OIA_MESSAGE( LIB3270_STATUS_TWAIT,
825 TERMINAL_COLOR_OIA_STATUS_OK, 825 TERMINAL_COLOR_OIA_STATUS_OK,
826 N_( "X Wait" ) ), 826 N_( "X Wait" ) ),
827 827
828 - OIA_MESSAGE( STATUS_CODE_CONNECTED, 828 + OIA_MESSAGE( LIB3270_STATUS_CONNECTED,
829 TERMINAL_COLOR_OIA_STATUS_OK, 829 TERMINAL_COLOR_OIA_STATUS_OK,
830 NULL ), 830 NULL ),
831 831
832 - OIA_MESSAGE( STATUS_CODE_DISCONNECTED, 832 + OIA_MESSAGE( LIB3270_STATUS_DISCONNECTED,
833 TERMINAL_COLOR_OIA_STATUS_INVALID, 833 TERMINAL_COLOR_OIA_STATUS_INVALID,
834 N_( "X Not Connected" ) ), 834 N_( "X Not Connected" ) ),
835 835
836 - OIA_MESSAGE( STATUS_CODE_AWAITING_FIRST, 836 + OIA_MESSAGE( LIB3270_STATUS_AWAITING_FIRST,
837 TERMINAL_COLOR_OIA_STATUS_OK, 837 TERMINAL_COLOR_OIA_STATUS_OK,
838 N_( "X" ) ), 838 N_( "X" ) ),
839 839
840 - OIA_MESSAGE( STATUS_CODE_MINUS, 840 + OIA_MESSAGE( LIB3270_STATUS_MINUS,
841 TERMINAL_COLOR_OIA_STATUS_OK, 841 TERMINAL_COLOR_OIA_STATUS_OK,
842 N_( "X -f" ) ), 842 N_( "X -f" ) ),
843 843
844 - OIA_MESSAGE( STATUS_CODE_PROTECTED, 844 + OIA_MESSAGE( LIB3270_STATUS_PROTECTED,
845 TERMINAL_COLOR_OIA_STATUS_INVALID, 845 TERMINAL_COLOR_OIA_STATUS_INVALID,
846 N_( "X Protected" ) ), 846 N_( "X Protected" ) ),
847 847
848 - OIA_MESSAGE( STATUS_CODE_NUMERIC, 848 + OIA_MESSAGE( LIB3270_STATUS_NUMERIC,
849 TERMINAL_COLOR_OIA_STATUS_INVALID, 849 TERMINAL_COLOR_OIA_STATUS_INVALID,
850 N_( "X Numeric" ) ), 850 N_( "X Numeric" ) ),
851 851
852 - OIA_MESSAGE( STATUS_CODE_OVERFLOW, 852 + OIA_MESSAGE( LIB3270_STATUS_OVERFLOW,
853 TERMINAL_COLOR_OIA_STATUS_INVALID, 853 TERMINAL_COLOR_OIA_STATUS_INVALID,
854 N_( "X Overflow" ) ), 854 N_( "X Overflow" ) ),
855 855
856 - OIA_MESSAGE( STATUS_CODE_INHIBIT, 856 + OIA_MESSAGE( LIB3270_STATUS_INHIBIT,
857 TERMINAL_COLOR_OIA_STATUS_INVALID, 857 TERMINAL_COLOR_OIA_STATUS_INVALID,
858 N_( "X Inhibit" ) ), 858 N_( "X Inhibit" ) ),
859 859
860 - OIA_MESSAGE( STATUS_CODE_KYBDLOCK, 860 + OIA_MESSAGE( LIB3270_STATUS_KYBDLOCK,
861 TERMINAL_COLOR_OIA_STATUS_INVALID, 861 TERMINAL_COLOR_OIA_STATUS_INVALID,
862 NULL ), 862 NULL ),
863 863
864 - OIA_MESSAGE( STATUS_CODE_X, 864 + OIA_MESSAGE( LIB3270_STATUS_X,
865 TERMINAL_COLOR_OIA_STATUS_INVALID, 865 TERMINAL_COLOR_OIA_STATUS_INVALID,
866 N_( "X" ) ), 866 N_( "X" ) ),
867 867
868 - OIA_MESSAGE( STATUS_CODE_RESOLVING, 868 + OIA_MESSAGE( LIB3270_STATUS_RESOLVING,
869 TERMINAL_COLOR_OIA_STATUS_WARNING, 869 TERMINAL_COLOR_OIA_STATUS_WARNING,
870 N_( "X Resolving" ) ), 870 N_( "X Resolving" ) ),
871 871
872 - OIA_MESSAGE( STATUS_CODE_CONNECTING, 872 + OIA_MESSAGE( LIB3270_STATUS_CONNECTING,
873 TERMINAL_COLOR_OIA_STATUS_WARNING, 873 TERMINAL_COLOR_OIA_STATUS_WARNING,
874 N_( "X Connecting" ) ), 874 N_( "X Connecting" ) ),
875 875
latest/src/gtk2/oia.h
@@ -83,7 +83,7 @@ @@ -83,7 +83,7 @@
83 LOCAL_EXTERN gboolean oia_caps_state; 83 LOCAL_EXTERN gboolean oia_caps_state;
84 #endif // HAVE_CAPS_STATE 84 #endif // HAVE_CAPS_STATE
85 85
86 - LOCAL_EXTERN STATUS_CODE terminal_message_id; 86 + LOCAL_EXTERN LIB3270_STATUS terminal_message_id;
87 87
88 LOCAL_EXTERN SCRIPT_STATE oia_script_state; 88 LOCAL_EXTERN SCRIPT_STATE oia_script_state;
89 LOCAL_EXTERN gboolean oia_script_blink; 89 LOCAL_EXTERN gboolean oia_script_blink;
latest/src/gtk2/screen.c
@@ -505,19 +505,19 @@ @@ -505,19 +505,19 @@
505 charset = g_strdup(dcs); 505 charset = g_strdup(dcs);
506 } 506 }
507 507
508 - void SetStatusCode(STATUS_CODE id) 508 + void SetStatusCode(H3270 *session, LIB3270_STATUS id)
509 { 509 {
510 if(id == terminal_message_id) 510 if(id == terminal_message_id)
511 return; 511 return;
512 512
513 terminal_message_id = id; 513 terminal_message_id = id;
514 514
515 - if(id == STATUS_CODE_BLANK) 515 + if(id == LIB3270_STATUS_BLANK)
516 { 516 {
517 set_cursor(CURSOR_MODE_NORMAL); 517 set_cursor(CURSOR_MODE_NORMAL);
518 update_cursor_pixmap(); 518 update_cursor_pixmap();
519 } 519 }
520 - else if(id >= STATUS_CODE_USER) 520 + else if(id >= LIB3270_STATUS_USER)
521 { 521 {
522 Log("Unexpected status code %d",(int) id); 522 Log("Unexpected status code %d",(int) id);
523 return; 523 return;
latest/src/gtk2/terminal.c
@@ -371,7 +371,7 @@ @@ -371,7 +371,7 @@
371 371
372 static gboolean mouse_scroll(GtkWidget *widget, GdkEventScroll *event, gpointer user_data) 372 static gboolean mouse_scroll(GtkWidget *widget, GdkEventScroll *event, gpointer user_data)
373 { 373 {
374 - if(query_3270_terminal_status() != STATUS_CODE_BLANK || event->direction < 0 || event->direction > G_N_ELEMENTS(action_scroll)) 374 + if(query_3270_terminal_status() != LIB3270_STATUS_BLANK || event->direction < 0 || event->direction > G_N_ELEMENTS(action_scroll))
375 return 0; 375 return 0;
376 376
377 Trace("Scroll: %d Action: %p",event->direction,action_scroll[event->direction]); 377 Trace("Scroll: %d Action: %p",event->direction,action_scroll[event->direction]);
latest/src/include/lib3270.h
@@ -272,13 +272,15 @@ @@ -272,13 +272,15 @@
272 int LIB3270_EXPORT lib3270_register_io_handlers(const struct lib3270_io_callbacks *cbk); 272 int LIB3270_EXPORT lib3270_register_io_handlers(const struct lib3270_io_callbacks *cbk);
273 273
274 274
275 - LIB3270_EXPORT STATUS_CODE lib3270_get_oia_status(H3270 *h);  
276 - LIB3270_EXPORT const char * lib3270_get_luname(H3270 *h);  
277 - LIB3270_EXPORT const char * lib3270_get_host(H3270 *h); 275 + LIB3270_EXPORT LIB3270_STATUS lib3270_get_oia_status(H3270 *h);
  276 + LIB3270_EXPORT const char * lib3270_get_luname(H3270 *h);
  277 + LIB3270_EXPORT const char * lib3270_get_host(H3270 *h);
278 278
279 #define lib3270_has_printer_session(h) (h->oia_flag[LIB3270_FLAG_PRINTER] != 0) 279 #define lib3270_has_printer_session(h) (h->oia_flag[LIB3270_FLAG_PRINTER] != 0)
280 #define lib3270_has_active_script(h) (h->oia_flag[LIB3270_FLAG_SCRIPT] != 0) 280 #define lib3270_has_active_script(h) (h->oia_flag[LIB3270_FLAG_SCRIPT] != 0)
281 #define lib3270_get_typeahead(h) (h->oia_flag[LIB3270_FLAG_TYPEAHEAD] != 0) 281 #define lib3270_get_typeahead(h) (h->oia_flag[LIB3270_FLAG_TYPEAHEAD] != 0)
  282 + #define lib3270_get_undera(h) (h->oia_flag[LIB3270_FLAG_UNDERA] != 0)
  283 + #define lib3270_get_oia_box_solid(h) (h->oia_flag[LIB3270_FLAG_BOXSOLID] != 0)
282 284
283 LIB3270_EXPORT int lib3270_pconnected(H3270 *h); 285 LIB3270_EXPORT int lib3270_pconnected(H3270 *h);
284 LIB3270_EXPORT int lib3270_half_connected(H3270 *h); 286 LIB3270_EXPORT int lib3270_half_connected(H3270 *h);
latest/src/include/lib3270/api.h
@@ -160,28 +160,28 @@ @@ -160,28 +160,28 @@
160 CONNECTED_TN3270E /**< connected in TN3270E mode, 3270 mode */ 160 CONNECTED_TN3270E /**< connected in TN3270E mode, 3270 mode */
161 }; 161 };
162 162
163 - typedef enum _STATUS_CODE 163 + typedef enum _LIB3270_STATUS
164 { 164 {
165 - STATUS_CODE_BLANK,  
166 - STATUS_CODE_SYSWAIT,  
167 - STATUS_CODE_TWAIT,  
168 - STATUS_CODE_CONNECTED,  
169 - STATUS_CODE_DISCONNECTED,  
170 - STATUS_CODE_AWAITING_FIRST,  
171 - STATUS_CODE_MINUS,  
172 - STATUS_CODE_PROTECTED,  
173 - STATUS_CODE_NUMERIC,  
174 - STATUS_CODE_OVERFLOW,  
175 - STATUS_CODE_INHIBIT,  
176 - STATUS_CODE_KYBDLOCK,  
177 -  
178 - STATUS_CODE_X,  
179 - STATUS_CODE_RESOLVING,  
180 - STATUS_CODE_CONNECTING,  
181 -  
182 - STATUS_CODE_USER  
183 -  
184 - } STATUS_CODE; 165 + LIB3270_STATUS_BLANK,
  166 + LIB3270_STATUS_SYSWAIT,
  167 + LIB3270_STATUS_TWAIT,
  168 + LIB3270_STATUS_CONNECTED,
  169 + LIB3270_STATUS_DISCONNECTED,
  170 + LIB3270_STATUS_AWAITING_FIRST,
  171 + LIB3270_STATUS_MINUS,
  172 + LIB3270_STATUS_PROTECTED,
  173 + LIB3270_STATUS_NUMERIC,
  174 + LIB3270_STATUS_OVERFLOW,
  175 + LIB3270_STATUS_INHIBIT,
  176 + LIB3270_STATUS_KYBDLOCK,
  177 +
  178 + LIB3270_STATUS_X,
  179 + LIB3270_STATUS_RESOLVING,
  180 + LIB3270_STATUS_CONNECTING,
  181 +
  182 + LIB3270_STATUS_USER
  183 +
  184 + } LIB3270_STATUS;
185 185
186 #define OIA_FLAG_BOXSOLID LIB3270_FLAG_BOXSOLID 186 #define OIA_FLAG_BOXSOLID LIB3270_FLAG_BOXSOLID
187 #define OIA_FLAG_UNDERA LIB3270_FLAG_UNDERA 187 #define OIA_FLAG_UNDERA LIB3270_FLAG_UNDERA
@@ -226,7 +226,7 @@ @@ -226,7 +226,7 @@
226 char * qualified_host; 226 char * qualified_host;
227 char auto_reconnect_inprogress; 227 char auto_reconnect_inprogress;
228 228
229 - STATUS_CODE oia_status; 229 + LIB3270_STATUS oia_status;
230 230
231 unsigned char oia_flag[LIB3270_FLAG_COUNT]; 231 unsigned char oia_flag[LIB3270_FLAG_COUNT];
232 232
@@ -256,6 +256,7 @@ @@ -256,6 +256,7 @@
256 char ssl_host; 256 char ssl_host;
257 char ever_3270; 257 char ever_3270;
258 258
  259 +
259 // Widget info 260 // Widget info
260 void * widget; 261 void * widget;
261 262
@@ -274,6 +275,8 @@ @@ -274,6 +275,8 @@
274 void (*update)(H3270 *session, int baddr, unsigned char c, unsigned short attr); 275 void (*update)(H3270 *session, int baddr, unsigned char c, unsigned short attr);
275 void (*update_cursor)(H3270 *session, unsigned short row, unsigned short col); 276 void (*update_cursor)(H3270 *session, unsigned short row, unsigned short col);
276 void (*set_oia)(H3270 *session, OIA_FLAG id, unsigned char on); 277 void (*set_oia)(H3270 *session, OIA_FLAG id, unsigned char on);
  278 + void (*update_luname)(H3270 *session, const char *name);
  279 + void (*update_status)(H3270 *session, LIB3270_STATUS id);
277 280
278 }; 281 };
279 282
@@ -505,7 +508,7 @@ @@ -505,7 +508,7 @@
505 int (*set_suspended)(int state); 508 int (*set_suspended)(int state);
506 void (*set_script)(SCRIPT_STATE state); 509 void (*set_script)(SCRIPT_STATE state);
507 void (*reset)(int lock); 510 void (*reset)(int lock);
508 - void (*status)(STATUS_CODE id); 511 + void (*status)(H3270 *session, LIB3270_STATUS id);
509 void (*cursor)(CURSOR_MODE mode); 512 void (*cursor)(CURSOR_MODE mode);
510 void (*lu)(const char *lu); 513 void (*lu)(const char *lu);
511 void (*set_oia)(H3270 *session, OIA_FLAG id, unsigned char on); 514 void (*set_oia)(H3270 *session, OIA_FLAG id, unsigned char on);
latest/src/lib/macros.c
@@ -180,7 +180,7 @@ @@ -180,7 +180,7 @@
180 { 180 {
181 const char *str = NULL; 181 const char *str = NULL;
182 182
183 - if(query_3270_terminal_status() != STATUS_CODE_BLANK) 183 + if(query_3270_terminal_status() != LIB3270_STATUS_BLANK)
184 { 184 {
185 errno = EBUSY; 185 errno = EBUSY;
186 return NULL; 186 return NULL;
latest/src/lib/screen.c
@@ -138,6 +138,12 @@ int screen_init(H3270 *session) @@ -138,6 +138,12 @@ int screen_init(H3270 *session)
138 if(callbacks->set_viewsize) 138 if(callbacks->set_viewsize)
139 session->configure = callbacks->set_viewsize; 139 session->configure = callbacks->set_viewsize;
140 140
  141 + if(callbacks->lu)
  142 + session->update_luname = callbacks->lu;
  143 +
  144 + if(callbacks->status)
  145 + session->update_status = callbacks->status;
  146 +
141 if(callbacks->init()) 147 if(callbacks->init())
142 { 148 {
143 popup_an_error("Can't initialize terminal."); 149 popup_an_error("Can't initialize terminal.");
@@ -503,20 +509,20 @@ void status_ctlr_done(H3270 *session) @@ -503,20 +509,20 @@ void status_ctlr_done(H3270 *session)
503 509
504 void status_oerr(H3270 *session, int error_type) 510 void status_oerr(H3270 *session, int error_type)
505 { 511 {
506 - STATUS_CODE sts = STATUS_CODE_USER; 512 + LIB3270_STATUS sts = LIB3270_STATUS_USER;
507 513
508 CHECK_SESSION_HANDLE(session); 514 CHECK_SESSION_HANDLE(session);
509 515
510 switch (error_type) 516 switch (error_type)
511 { 517 {
512 case KL_OERR_PROTECTED: 518 case KL_OERR_PROTECTED:
513 - sts = STATUS_CODE_PROTECTED; 519 + sts = LIB3270_STATUS_PROTECTED;
514 break; 520 break;
515 case KL_OERR_NUMERIC: 521 case KL_OERR_NUMERIC:
516 - sts = STATUS_CODE_NUMERIC; 522 + sts = LIB3270_STATUS_NUMERIC;
517 break; 523 break;
518 case KL_OERR_OVERFLOW: 524 case KL_OERR_OVERFLOW:
519 - sts = STATUS_CODE_OVERFLOW; 525 + sts = LIB3270_STATUS_OVERFLOW;
520 break; 526 break;
521 527
522 default: 528 default:
@@ -532,7 +538,7 @@ void status_resolving(H3270 *session, Boolean on) @@ -532,7 +538,7 @@ void status_resolving(H3270 *session, Boolean on)
532 if(callbacks && callbacks->cursor) 538 if(callbacks && callbacks->cursor)
533 callbacks->cursor(on ? CURSOR_MODE_LOCKED : CURSOR_MODE_NORMAL); 539 callbacks->cursor(on ? CURSOR_MODE_LOCKED : CURSOR_MODE_NORMAL);
534 540
535 - status_changed(session, on ? STATUS_CODE_RESOLVING : STATUS_CODE_BLANK); 541 + status_changed(session, on ? LIB3270_STATUS_RESOLVING : LIB3270_STATUS_BLANK);
536 } 542 }
537 543
538 void status_connecting(H3270 *session, Boolean on) 544 void status_connecting(H3270 *session, Boolean on)
@@ -540,7 +546,7 @@ void status_connecting(H3270 *session, Boolean on) @@ -540,7 +546,7 @@ void status_connecting(H3270 *session, Boolean on)
540 if(callbacks && callbacks->cursor) 546 if(callbacks && callbacks->cursor)
541 callbacks->cursor(on ? CURSOR_MODE_LOCKED : CURSOR_MODE_NORMAL); 547 callbacks->cursor(on ? CURSOR_MODE_LOCKED : CURSOR_MODE_NORMAL);
542 548
543 - status_changed(session, on ? STATUS_CODE_CONNECTING : STATUS_CODE_BLANK); 549 + status_changed(session, on ? LIB3270_STATUS_CONNECTING : LIB3270_STATUS_BLANK);
544 } 550 }
545 551
546 void status_reset(H3270 *session) 552 void status_reset(H3270 *session)
@@ -548,11 +554,11 @@ void status_reset(H3270 *session) @@ -548,11 +554,11 @@ void status_reset(H3270 *session)
548 CHECK_SESSION_HANDLE(session); 554 CHECK_SESSION_HANDLE(session);
549 555
550 if (kybdlock & KL_ENTER_INHIBIT) 556 if (kybdlock & KL_ENTER_INHIBIT)
551 - status_changed(session,STATUS_CODE_INHIBIT); 557 + status_changed(session,LIB3270_STATUS_INHIBIT);
552 else if (kybdlock & KL_DEFERRED_UNLOCK) 558 else if (kybdlock & KL_DEFERRED_UNLOCK)
553 - status_changed(session,STATUS_CODE_X); 559 + status_changed(session,LIB3270_STATUS_X);
554 else 560 else
555 - status_changed(session,STATUS_CODE_BLANK); 561 + status_changed(session,LIB3270_STATUS_BLANK);
556 562
557 screen_disp(session); 563 screen_disp(session);
558 564
@@ -564,22 +570,20 @@ void status_reset(H3270 *session) @@ -564,22 +570,20 @@ void status_reset(H3270 *session)
564 570
565 } 571 }
566 572
567 -// static STATUS_CODE current_status_code = -1;  
568 -  
569 /** 573 /**
570 * Query the updated terminal status. 574 * Query the updated terminal status.
571 * 575 *
572 * @return status-code. 576 * @return status-code.
573 * 577 *
574 - * @see STATUS_CODE 578 + * @see LIB3270_STATUS
575 */ 579 */
576 -LIB3270_EXPORT STATUS_CODE lib3270_get_oia_status(H3270 *session) 580 +LIB3270_EXPORT LIB3270_STATUS lib3270_get_oia_status(H3270 *session)
577 { 581 {
578 CHECK_SESSION_HANDLE(session); 582 CHECK_SESSION_HANDLE(session);
579 return session->oia_status; 583 return session->oia_status;
580 } 584 }
581 585
582 -void status_changed(H3270 *session, STATUS_CODE id) 586 +void status_changed(H3270 *session, LIB3270_STATUS id)
583 { 587 {
584 CHECK_SESSION_HANDLE(session); 588 CHECK_SESSION_HANDLE(session);
585 589
@@ -588,15 +592,15 @@ void status_changed(H3270 *session, STATUS_CODE id) @@ -588,15 +592,15 @@ void status_changed(H3270 *session, STATUS_CODE id)
588 592
589 session->oia_status = id; 593 session->oia_status = id;
590 594
591 - if(callbacks && callbacks->status)  
592 - callbacks->status(id); 595 + if(session->update_status)
  596 + session->update_status(session,id);
593 } 597 }
594 598
595 void status_twait(H3270 *session) 599 void status_twait(H3270 *session)
596 { 600 {
597 CHECK_SESSION_HANDLE(session); 601 CHECK_SESSION_HANDLE(session);
598 set_status(session,OIA_FLAG_UNDERA,False); 602 set_status(session,OIA_FLAG_UNDERA,False);
599 - status_changed(session,STATUS_CODE_TWAIT); 603 + status_changed(session,LIB3270_STATUS_TWAIT);
600 } 604 }
601 605
602 void set_viewsize(H3270 *session, int rows, int cols) 606 void set_viewsize(H3270 *session, int rows, int cols)
@@ -616,13 +620,16 @@ void set_viewsize(H3270 *session, int rows, int cols) @@ -616,13 +620,16 @@ void set_viewsize(H3270 *session, int rows, int cols)
616 620
617 void status_lu(H3270 *session, const char *lu) 621 void status_lu(H3270 *session, const char *lu)
618 { 622 {
619 - if(callbacks && callbacks->lu)  
620 - callbacks->lu(lu); 623 + CHECK_SESSION_HANDLE(session);
  624 +
  625 + if(session->update_luname)
  626 + session->update_luname(session,lu);
  627 +
621 } 628 }
622 629
623 static void status_connect(H3270 *session, int connected, void *dunno) 630 static void status_connect(H3270 *session, int connected, void *dunno)
624 { 631 {
625 - STATUS_CODE id = STATUS_CODE_USER; 632 + LIB3270_STATUS id = LIB3270_STATUS_USER;
626 633
627 ctlr_erase(session,1); 634 ctlr_erase(session,1);
628 635
@@ -631,9 +638,9 @@ static void status_connect(H3270 *session, int connected, void *dunno) @@ -631,9 +638,9 @@ static void status_connect(H3270 *session, int connected, void *dunno)
631 set_status(session,OIA_FLAG_BOXSOLID,IN_3270 && !IN_SSCP); 638 set_status(session,OIA_FLAG_BOXSOLID,IN_3270 && !IN_SSCP);
632 639
633 if (kybdlock & KL_AWAITING_FIRST) 640 if (kybdlock & KL_AWAITING_FIRST)
634 - id = STATUS_CODE_AWAITING_FIRST; 641 + id = LIB3270_STATUS_AWAITING_FIRST;
635 else 642 else
636 - id = STATUS_CODE_CONNECTED; 643 + id = LIB3270_STATUS_CONNECTED;
637 644
638 #if defined(HAVE_LIBSSL) /*[*/ 645 #if defined(HAVE_LIBSSL) /*[*/
639 set_status(session,OIA_FLAG_SECURE,session->secure_connection); 646 set_status(session,OIA_FLAG_SECURE,session->secure_connection);
@@ -645,7 +652,7 @@ static void status_connect(H3270 *session, int connected, void *dunno) @@ -645,7 +652,7 @@ static void status_connect(H3270 *session, int connected, void *dunno)
645 set_status(session,OIA_FLAG_BOXSOLID,False); 652 set_status(session,OIA_FLAG_BOXSOLID,False);
646 set_status(session,OIA_FLAG_SECURE,False); 653 set_status(session,OIA_FLAG_SECURE,False);
647 654
648 - id = STATUS_CODE_DISCONNECTED; 655 + id = LIB3270_STATUS_DISCONNECTED;
649 } 656 }
650 657
651 status_changed(session,id); 658 status_changed(session,id);
latest/src/lib/statusc.h
@@ -29,15 +29,15 @@ LIB3270_INTERNAL void status_twait(H3270 *session); @@ -29,15 +29,15 @@ LIB3270_INTERNAL void status_twait(H3270 *session);
29 29
30 30
31 31
32 -LIB3270_INTERNAL void status_changed(H3270 *session, STATUS_CODE id); 32 +LIB3270_INTERNAL void status_changed(H3270 *session, LIB3270_STATUS id);
33 33
34 LIB3270_INTERNAL void set_status(H3270 *session, OIA_FLAG id, Boolean on); 34 LIB3270_INTERNAL void set_status(H3270 *session, OIA_FLAG id, Boolean on);
35 35
36 36
37 #define status_typeahead(on) set_status(NULL,OIA_FLAG_TYPEAHEAD,on) 37 #define status_typeahead(on) set_status(NULL,OIA_FLAG_TYPEAHEAD,on)
38 -#define status_kybdlock() status_changed(NULL,STATUS_CODE_KYBDLOCK)  
39 -#define status_syswait() status_changed(NULL,STATUS_CODE_SYSWAIT)  
40 -#define status_minus() status_changed(NULL,STATUS_CODE_MINUS) 38 +#define status_kybdlock() status_changed(NULL,LIB3270_STATUS_KYBDLOCK)
  39 +#define status_syswait() status_changed(NULL,LIB3270_STATUS_SYSWAIT)
  40 +#define status_minus() status_changed(NULL,LIB3270_STATUS_MINUS)
41 41
42 42
43 extern int lib3270_event_counter[COUNTER_ID_USER]; 43 extern int lib3270_event_counter[COUNTER_ID_USER];
latest/src/lib/telnet.c
@@ -111,10 +111,12 @@ int ns_rsent; @@ -111,10 +111,12 @@ int ns_rsent;
111 unsigned char *obuf; /* 3270 output buffer */ 111 unsigned char *obuf; /* 3270 output buffer */
112 unsigned char *obptr = (unsigned char *) NULL; 112 unsigned char *obptr = (unsigned char *) NULL;
113 int linemode = 1; 113 int linemode = 1;
114 -#if defined(LOCAL_PROCESS) /*[*/ 114 +/*
  115 +#if defined(LOCAL_PROCESS)
115 Boolean local_process = False; 116 Boolean local_process = False;
116 -#endif /*]*/ 117 +#endif
117 // char *termtype; 118 // char *termtype;
  119 +*/
118 120
119 /* Externals */ 121 /* Externals */
120 extern struct timeval ds_ts; 122 extern struct timeval ds_ts;
@@ -194,7 +196,7 @@ static void check_in3270(void); @@ -194,7 +196,7 @@ static void check_in3270(void);
194 static void store3270in(unsigned char c); 196 static void store3270in(unsigned char c);
195 static void check_linemode(Boolean init); 197 static void check_linemode(Boolean init);
196 static int non_blocking(Boolean on); 198 static int non_blocking(Boolean on);
197 -static void net_connected(void); 199 +static void net_connected(H3270 *session);
198 #if defined(X3270_TN3270E) /*[*/ 200 #if defined(X3270_TN3270E) /*[*/
199 static int tn3270e_negotiate(void); 201 static int tn3270e_negotiate(void);
200 #endif /*]*/ 202 #endif /*]*/
@@ -526,14 +528,16 @@ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving @@ -526,14 +528,16 @@ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving
526 status_resolving(&h3270,0); 528 status_resolving(&h3270,0);
527 } 529 }
528 } else { 530 } else {
529 -#if defined(LOCAL_PROCESS) /*[*/ 531 +/*
  532 +#if defined(LOCAL_PROCESS)
530 if (ls) { 533 if (ls) {
531 local_process = True; 534 local_process = True;
532 } else { 535 } else {
533 -#endif /*]*/  
534 -#if defined(LOCAL_PROCESS) /*[*/ 536 +#endif
  537 +#if defined(LOCAL_PROCESS)
535 local_process = False; 538 local_process = False;
536 -#endif /*]*/ 539 +#endif
  540 +*/
537 status_resolving(&h3270,1); 541 status_resolving(&h3270,1);
538 if (resolve_host_and_port(host, portname, 542 if (resolve_host_and_port(host, portname,
539 &h3270.current_port, &haddr.sa, &ha_len, 543 &h3270.current_port, &haddr.sa, &ha_len,
@@ -543,13 +547,15 @@ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving @@ -543,13 +547,15 @@ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving
543 return -1; 547 return -1;
544 status_resolving(&h3270,0); 548 status_resolving(&h3270,0);
545 } 549 }
546 -#if defined(LOCAL_PROCESS) /*[*/ 550 +/*
  551 +#if defined(LOCAL_PROCESS)
547 } 552 }
548 -#endif /*]*/  
549 - 553 +#endif
  554 +*/
550 } 555 }
551 556
552 -#if defined(LOCAL_PROCESS) /*[*/ 557 +/*
  558 +#if defined(LOCAL_PROCESS)
553 if (local_process) { 559 if (local_process) {
554 int amaster; 560 int amaster;
555 struct winsize w; 561 struct winsize w;
@@ -560,10 +566,10 @@ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving @@ -560,10 +566,10 @@ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving
560 w.ws_ypixel = 0; 566 w.ws_ypixel = 0;
561 567
562 switch (forkpty(&amaster, NULL, NULL, &w)) { 568 switch (forkpty(&amaster, NULL, NULL, &w)) {
563 - case -1: /* failed */ 569 + case -1: // failed
564 popup_an_errno(errno, "forkpty"); 570 popup_an_errno(errno, "forkpty");
565 close_fail; 571 close_fail;
566 - case 0: /* child */ 572 + case 0: // child
567 putenv("TERM=xterm"); 573 putenv("TERM=xterm");
568 if (strchr(host, ' ') != CN) { 574 if (strchr(host, ' ') != CN) {
569 (void) execlp("/bin/sh", "sh", "-c", host, 575 (void) execlp("/bin/sh", "sh", "-c", host,
@@ -580,17 +586,18 @@ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving @@ -580,17 +586,18 @@ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving
580 #warning Notify User 586 #warning Notify User
581 _exit(1); 587 _exit(1);
582 break; 588 break;
583 - default: /* parent */ 589 + default: // parent
584 sock = amaster; 590 sock = amaster;
585 -#if !defined(_WIN32) /*[*/ 591 +#if !defined(_WIN32)
586 (void) fcntl(sock, F_SETFD, 1); 592 (void) fcntl(sock, F_SETFD, 1);
587 -#endif /*]*/ 593 +#endif
588 net_connected(); 594 net_connected();
589 host_in3270(CONNECTED_ANSI); 595 host_in3270(CONNECTED_ANSI);
590 break; 596 break;
591 } 597 }
592 } else { 598 } else {
593 -#endif /*]*/ 599 +#endif
  600 +*/
594 /* create the socket */ 601 /* create the socket */
595 if ((h3270.sock = socket(haddr.sa.sa_family, SOCK_STREAM, 0)) == -1) { 602 if ((h3270.sock = socket(haddr.sa.sa_family, SOCK_STREAM, 0)) == -1) {
596 popup_a_sockerr( N_( "socket" ) ); 603 popup_a_sockerr( N_( "socket" ) );
@@ -656,11 +663,13 @@ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving @@ -656,11 +663,13 @@ int net_connect(const char *host, char *portname, Boolean ls, Boolean *resolving
656 } else { 663 } else {
657 if (non_blocking(False) < 0) 664 if (non_blocking(False) < 0)
658 close_fail; 665 close_fail;
659 - net_connected(); 666 + net_connected(&h3270);
660 } 667 }
661 -#if defined(LOCAL_PROCESS) /*[*/ 668 +/*
  669 +#if defined(LOCAL_PROCESS)
662 } 670 }
663 -#endif /*]*/ 671 +#endif
  672 +*/
664 673
665 /* set up temporary termtype */ 674 /* set up temporary termtype */
666 if (appres.termname == CN && h3270.std_ds_host) { 675 if (appres.termname == CN && h3270.std_ds_host) {
@@ -752,41 +761,41 @@ setup_lus(void) @@ -752,41 +761,41 @@ setup_lus(void)
752 try_lu = *curr_lu; 761 try_lu = *curr_lu;
753 } 762 }
754 763
755 -static void  
756 -net_connected(void) 764 +static void net_connected(H3270 *session)
757 { 765 {
758 - if (proxy_type > 0) {  
759 - 766 + if (proxy_type > 0)
  767 + {
760 /* Negotiate with the proxy. */ 768 /* Negotiate with the proxy. */
761 - trace_dsn("Connected to proxy server %s, port %u.\n",  
762 - proxy_host, proxy_port); 769 + trace_dsn("Connected to proxy server %s, port %u.\n",proxy_host, proxy_port);
763 770
764 - if (proxy_negotiate(proxy_type, h3270.sock, h3270.hostname,  
765 - h3270.current_port) < 0) {  
766 - host_disconnect(&h3270,True); 771 + if (proxy_negotiate(proxy_type, session->sock, session->hostname,session->current_port) < 0)
  772 + {
  773 + host_disconnect(session,True);
767 return; 774 return;
768 } 775 }
769 } 776 }
770 777
771 - trace_dsn("Connected to %s, port %u%s.\n", h3270.hostname, h3270.current_port,h3270.ssl_host? " via SSL": ""); 778 + trace_dsn("Connected to %s, port %u%s.\n", session->hostname, session->current_port,session->ssl_host? " via SSL": "");
772 779
773 #if defined(HAVE_LIBSSL) /*[*/ 780 #if defined(HAVE_LIBSSL) /*[*/
774 /* Set up SSL. */ 781 /* Set up SSL. */
775 - if (h3270.ssl_host && !h3270.secure_connection) {  
776 - if (SSL_set_fd(ssl_con, h3270.sock) != 1) { 782 + if(session->ssl_host && !session->secure_connection)
  783 + {
  784 + if (SSL_set_fd(ssl_con, session->sock) != 1)
  785 + {
777 trace_dsn("Can't set fd!\n"); 786 trace_dsn("Can't set fd!\n");
778 } 787 }
779 - if (SSL_connect(ssl_con) != 1) { 788 + if (SSL_connect(ssl_con) != 1)
  789 + {
780 /* 790 /*
781 * No need to trace the error, it was already 791 * No need to trace the error, it was already
782 * displayed. 792 * displayed.
783 */ 793 */
784 - host_disconnect(&h3270,True); 794 + host_disconnect(session,True);
785 return; 795 return;
786 } 796 }
787 - h3270.secure_connection = True;  
788 - trace_dsn("TLS/SSL tunneled connection complete. "  
789 - "Connection is now secure.\n"); 797 + session->secure_connection = True;
  798 + trace_dsn("TLS/SSL tunneled connection complete. Connection is now secure.\n");
790 799
791 /* Tell everyone else again. */ 800 /* Tell everyone else again. */
792 host_connected(); 801 host_connected();
@@ -827,12 +836,13 @@ net_connected(void) @@ -827,12 +836,13 @@ net_connected(void)
827 check_linemode(True); 836 check_linemode(True);
828 837
829 /* write out the passthru hostname and port nubmer */ 838 /* write out the passthru hostname and port nubmer */
830 - if (h3270.passthru_host) { 839 + if (session->passthru_host)
  840 + {
831 char *buf; 841 char *buf;
832 842
833 - buf = Malloc(strlen(h3270.hostname) + 32);  
834 - (void) sprintf(buf, "%s %d\r\n", h3270.hostname, h3270.current_port);  
835 - (void) send(h3270.sock, buf, strlen(buf), 0); 843 + buf = Malloc(strlen(session->hostname) + 32);
  844 + (void) sprintf(buf, "%s %d\r\n", session->hostname, session->current_port);
  845 + (void) send(session->sock, buf, strlen(buf), 0);
836 Free(buf); 846 Free(buf);
837 } 847 }
838 } 848 }
@@ -853,7 +863,7 @@ connection_complete(void) @@ -853,7 +863,7 @@ connection_complete(void)
853 } 863 }
854 #endif /*]*/ 864 #endif /*]*/
855 host_connected(); 865 host_connected();
856 - net_connected(); 866 + net_connected(&h3270);
857 } 867 }
858 868
859 #if !defined(_WIN32) /*[*/ 869 #if !defined(_WIN32) /*[*/
@@ -940,7 +950,7 @@ void net_input(H3270 *session) @@ -940,7 +950,7 @@ void net_input(H3270 *session)
940 #if defined(_WIN32) /*[*/ 950 #if defined(_WIN32) /*[*/
941 if (HALF_CONNECTED) { 951 if (HALF_CONNECTED) {
942 952
943 - if (connect(h3270.sock, &haddr.sa, sizeof(haddr)) < 0) { 953 + if (connect(session->sock, &haddr.sa, sizeof(haddr)) < 0) {
944 int err = GetLastError(); 954 int err = GetLastError();
945 955
946 switch (err) { 956 switch (err) {
@@ -966,20 +976,21 @@ void net_input(H3270 *session) @@ -966,20 +976,21 @@ void net_input(H3270 *session)
966 #endif /*]*/ 976 #endif /*]*/
967 977
968 #if defined(_WIN32) /*[*/ 978 #if defined(_WIN32) /*[*/
969 - (void) ResetEvent(h3270.sock_handle); 979 + (void) ResetEvent(session->sock_handle);
970 #endif /*]*/ 980 #endif /*]*/
971 981
972 -#if defined(HAVE_LIBSSL) /*[*/ 982 +#if defined(HAVE_LIBSSL)
973 if (ssl_con != NULL) 983 if (ssl_con != NULL)
974 nr = SSL_read(ssl_con, (char *) netrbuf, BUFSZ); 984 nr = SSL_read(ssl_con, (char *) netrbuf, BUFSZ);
975 else 985 else
976 -#else /*][*/  
977 -#endif /*]*/  
978 -#if defined(LOCAL_PROCESS) /*[*/ 986 +#endif // HAVE_LIBSSL
  987 +/*
  988 +#if defined(LOCAL_PROCESS)
979 if (local_process) 989 if (local_process)
980 nr = read(sock, (char *) netrbuf, BUFSZ); 990 nr = read(sock, (char *) netrbuf, BUFSZ);
981 else 991 else
982 -#endif /*]*/ 992 +#endif
  993 +*/
983 nr = recv(session->sock, (char *) netrbuf, BUFSZ, 0); 994 nr = recv(session->sock, (char *) netrbuf, BUFSZ, 0);
984 if (nr < 0) { 995 if (nr < 0) {
985 if (socket_errno() == SE_EWOULDBLOCK) { 996 if (socket_errno() == SE_EWOULDBLOCK) {
@@ -999,7 +1010,7 @@ void net_input(H3270 *session) @@ -999,7 +1010,7 @@ void net_input(H3270 *session)
999 err_buf); 1010 err_buf);
1000 1011
1001 popup_an_error("SSL_read:\n%s", err_buf); 1012 popup_an_error("SSL_read:\n%s", err_buf);
1002 - host_disconnect(&h3270,True); 1013 + host_disconnect(session,True);
1003 return; 1014 return;
1004 } 1015 }
1005 #endif /*]*/ 1016 #endif /*]*/
@@ -1007,25 +1018,27 @@ void net_input(H3270 *session) @@ -1007,25 +1018,27 @@ void net_input(H3270 *session)
1007 connection_complete(); 1018 connection_complete();
1008 return; 1019 return;
1009 } 1020 }
1010 -#if defined(LOCAL_PROCESS) /*[*/ 1021 +/*
  1022 +#if defined(LOCAL_PROCESS) /
1011 if (errno == EIO && local_process) { 1023 if (errno == EIO && local_process) {
1012 trace_dsn("RCVD local process disconnect\n"); 1024 trace_dsn("RCVD local process disconnect\n");
1013 - host_disconnect(False); 1025 + host_disconnect(session,False);
1014 return; 1026 return;
1015 } 1027 }
1016 -#endif /*]*/ 1028 +#endif
  1029 +*/
1017 trace_dsn("RCVD socket error %d\n", errno); 1030 trace_dsn("RCVD socket error %d\n", errno);
1018 if (HALF_CONNECTED) { 1031 if (HALF_CONNECTED) {
1019 popup_a_sockerr( N_( "%s:%d" ),h3270.hostname, h3270.current_port); 1032 popup_a_sockerr( N_( "%s:%d" ),h3270.hostname, h3270.current_port);
1020 } else if (socket_errno() != SE_ECONNRESET) { 1033 } else if (socket_errno() != SE_ECONNRESET) {
1021 popup_a_sockerr( N_( "Socket read error" ) ); 1034 popup_a_sockerr( N_( "Socket read error" ) );
1022 } 1035 }
1023 - host_disconnect(&h3270,True); 1036 + host_disconnect(session,True);
1024 return; 1037 return;
1025 } else if (nr == 0) { 1038 } else if (nr == 0) {
1026 /* Host disconnected. */ 1039 /* Host disconnected. */
1027 trace_dsn("RCVD disconnect\n"); 1040 trace_dsn("RCVD disconnect\n");
1028 - host_disconnect(&h3270,False); 1041 + host_disconnect(session,False);
1029 return; 1042 return;
1030 } 1043 }
1031 1044
@@ -1035,11 +1048,11 @@ void net_input(H3270 *session) @@ -1035,11 +1048,11 @@ void net_input(H3270 *session)
1035 { 1048 {
1036 if (non_blocking(False) < 0) 1049 if (non_blocking(False) < 0)
1037 { 1050 {
1038 - host_disconnect(&h3270,True); 1051 + host_disconnect(session,True);
1039 return; 1052 return;
1040 } 1053 }
1041 host_connected(); 1054 host_connected();
1042 - net_connected(); 1055 + net_connected(session);
1043 } 1056 }
1044 1057
1045 #if defined(X3270_TRACE) /*[*/ 1058 #if defined(X3270_TRACE) /*[*/
@@ -1067,9 +1080,11 @@ void net_input(H3270 *session) @@ -1067,9 +1080,11 @@ void net_input(H3270 *session)
1067 host_disconnect(&h3270,True); 1080 host_disconnect(&h3270,True);
1068 return; 1081 return;
1069 } 1082 }
1070 -#if defined(LOCAL_PROCESS) /*[*/ 1083 +/*
  1084 +#if defined(LOCAL_PROCESS)
1071 } 1085 }
1072 -#endif /*]*/ 1086 +#endif
  1087 +*/
1073 } 1088 }
1074 1089
1075 #if defined(X3270_ANSI) /*[*/ 1090 #if defined(X3270_ANSI) /*[*/