Commit 7a361dd77bc0cac45dd87e166f7f49c37b273017
1 parent
6f187def
Exists in
master
and in
3 other branches
Tracing connection state changes.
Showing
3 changed files
with
34 additions
and
21 deletions
Show diff stats
src/core/host.c
@@ -127,6 +127,13 @@ int lib3270_set_cstate(H3270 *hSession, LIB3270_CSTATE cstate) | @@ -127,6 +127,13 @@ int lib3270_set_cstate(H3270 *hSession, LIB3270_CSTATE cstate) | ||
127 | { | 127 | { |
128 | if(hSession->connection.state != cstate) | 128 | if(hSession->connection.state != cstate) |
129 | { | 129 | { |
130 | + trace_dsn( | ||
131 | + hSession, | ||
132 | + "Connection state changes from %s to %s.\n", | ||
133 | + lib3270_connection_state_get_name(hSession->connection.state), | ||
134 | + lib3270_connection_state_get_name(cstate) | ||
135 | + ); | ||
136 | + | ||
130 | // Salve old states. | 137 | // Salve old states. |
131 | int connected = lib3270_is_connected(hSession); | 138 | int connected = lib3270_is_connected(hSession); |
132 | int disconnected = lib3270_is_disconnected(hSession); | 139 | int disconnected = lib3270_is_disconnected(hSession); |
src/core/telnet.c
@@ -745,7 +745,6 @@ void net_input(H3270 *hSession, int GNUC_UNUSED(fd), LIB3270_IO_FLAG GNUC_UNUSED | @@ -745,7 +745,6 @@ void net_input(H3270 *hSession, int GNUC_UNUSED(fd), LIB3270_IO_FLAG GNUC_UNUSED | ||
745 | 745 | ||
746 | } | 746 | } |
747 | 747 | ||
748 | - | ||
749 | /* | 748 | /* |
750 | * set16 | 749 | * set16 |
751 | * Put a 16-bit value in a buffer. | 750 | * Put a 16-bit value in a buffer. |
@@ -786,8 +785,6 @@ static void send_naws(H3270 *hSession) | @@ -786,8 +785,6 @@ static void send_naws(H3270 *hSession) | ||
786 | trace_dsn(hSession,"SENT %s NAWS %d %d %s\n", cmd(SB), XMIT_COLS, XMIT_ROWS, cmd(SE)); | 785 | trace_dsn(hSession,"SENT %s NAWS %d %d %s\n", cmd(SB), XMIT_COLS, XMIT_ROWS, cmd(SE)); |
787 | } | 786 | } |
788 | 787 | ||
789 | - | ||
790 | - | ||
791 | /// | 788 | /// |
792 | /// @brief Advance 'try_lu' to the next desired LU name. | 789 | /// @brief Advance 'try_lu' to the next desired LU name. |
793 | /// | 790 | /// |
@@ -797,11 +794,11 @@ static void next_lu(H3270 *hSession) | @@ -797,11 +794,11 @@ static void next_lu(H3270 *hSession) | ||
797 | hSession->lu.curr = (char **)NULL; | 794 | hSession->lu.curr = (char **)NULL; |
798 | } | 795 | } |
799 | 796 | ||
800 | -/* | ||
801 | - * telnet_fsm | ||
802 | - * Telnet finite-state machine. | ||
803 | - * Returns 0 for okay, -1 for errors. | ||
804 | - */ | 797 | +/// |
798 | +/// @brief Telnet finite-state machine. | ||
799 | +/// | ||
800 | +/// @return 0 for okay, -1 for errors. | ||
801 | +/// | ||
805 | static int telnet_fsm(H3270 *hSession, unsigned char c) | 802 | static int telnet_fsm(H3270 *hSession, unsigned char c) |
806 | { | 803 | { |
807 | #if defined(X3270_ANSI) /*[*/ | 804 | #if defined(X3270_ANSI) /*[*/ |
@@ -2043,18 +2040,9 @@ static void do_lnext(H3270 *hSession, char c) | @@ -2043,18 +2040,9 @@ static void do_lnext(H3270 *hSession, char c) | ||
2043 | #endif /*]*/ | 2040 | #endif /*]*/ |
2044 | 2041 | ||
2045 | 2042 | ||
2046 | -/** | ||
2047 | - * Check for switches between NVT, SSCP-LU and 3270 modes. | ||
2048 | - * | ||
2049 | - * @param hSession Session handle. | ||
2050 | - * | ||
2051 | - */ | ||
2052 | -static void check_in3270(H3270 *hSession) | 2043 | +const char * lib3270_connection_state_get_name(const LIB3270_CSTATE cstate) |
2053 | { | 2044 | { |
2054 | - LIB3270_CSTATE new_cstate = LIB3270_NOT_CONNECTED; | ||
2055 | - | ||
2056 | -#if defined(X3270_TRACE) /*[*/ | ||
2057 | - static const char *state_name[] = | 2045 | + static const char *state_names[] = |
2058 | { | 2046 | { |
2059 | "unconnected", | 2047 | "unconnected", |
2060 | "resolving", | 2048 | "resolving", |
@@ -2067,7 +2055,23 @@ static void check_in3270(H3270 *hSession) | @@ -2067,7 +2055,23 @@ static void check_in3270(H3270 *hSession) | ||
2067 | "TN3270E SSCP-LU", | 2055 | "TN3270E SSCP-LU", |
2068 | "TN3270E 3270" | 2056 | "TN3270E 3270" |
2069 | }; | 2057 | }; |
2070 | -#endif /*]*/ | 2058 | + |
2059 | + if(cstate > (sizeof(state_names)/sizeof(state_names[0]))) | ||
2060 | + return "unknown"; | ||
2061 | + | ||
2062 | + return state_names[cstate]; | ||
2063 | +} | ||
2064 | + | ||
2065 | +/** | ||
2066 | + * Check for switches between NVT, SSCP-LU and 3270 modes. | ||
2067 | + * | ||
2068 | + * @param hSession Session handle. | ||
2069 | + * | ||
2070 | + */ | ||
2071 | +static void check_in3270(H3270 *hSession) | ||
2072 | +{ | ||
2073 | + LIB3270_CSTATE new_cstate = LIB3270_NOT_CONNECTED; | ||
2074 | + | ||
2071 | 2075 | ||
2072 | #if defined(X3270_TN3270E) /*[*/ | 2076 | #if defined(X3270_TN3270E) /*[*/ |
2073 | if (hSession->myopts[TELOPT_TN3270E]) { | 2077 | if (hSession->myopts[TELOPT_TN3270E]) { |
@@ -2142,7 +2146,7 @@ static void check_in3270(H3270 *hSession) | @@ -2142,7 +2146,7 @@ static void check_in3270(H3270 *hSession) | ||
2142 | hSession->tn3270e_bound = 0; | 2146 | hSession->tn3270e_bound = 0; |
2143 | } | 2147 | } |
2144 | #endif | 2148 | #endif |
2145 | - trace_dsn(hSession,"Now operating in %s mode.\n",state_name[new_cstate]); | 2149 | + trace_dsn(hSession,"Now operating in %s mode.\n",lib3270_connection_state_get_name(new_cstate)); |
2146 | host_in3270(hSession,new_cstate); | 2150 | host_in3270(hSession,new_cstate); |
2147 | } | 2151 | } |
2148 | } | 2152 | } |
src/include/lib3270.h
@@ -668,6 +668,8 @@ | @@ -668,6 +668,8 @@ | ||
668 | */ | 668 | */ |
669 | LIB3270_EXPORT LIB3270_CSTATE lib3270_get_connection_state(const H3270 *h); | 669 | LIB3270_EXPORT LIB3270_CSTATE lib3270_get_connection_state(const H3270 *h); |
670 | 670 | ||
671 | + LIB3270_EXPORT const char * lib3270_connection_state_get_name(const LIB3270_CSTATE cstate); | ||
672 | + | ||
671 | /** | 673 | /** |
672 | * @brief Pretend that a sequence of keys was entered at the keyboard. | 674 | * @brief Pretend that a sequence of keys was entered at the keyboard. |
673 | * | 675 | * |