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 | 127 | { |
| 128 | 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 | 137 | // Salve old states. |
| 131 | 138 | int connected = lib3270_is_connected(hSession); |
| 132 | 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 | 745 | |
| 746 | 746 | } |
| 747 | 747 | |
| 748 | - | |
| 749 | 748 | /* |
| 750 | 749 | * set16 |
| 751 | 750 | * Put a 16-bit value in a buffer. |
| ... | ... | @@ -786,8 +785,6 @@ static void send_naws(H3270 *hSession) |
| 786 | 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 | 789 | /// @brief Advance 'try_lu' to the next desired LU name. |
| 793 | 790 | /// |
| ... | ... | @@ -797,11 +794,11 @@ static void next_lu(H3270 *hSession) |
| 797 | 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 | 802 | static int telnet_fsm(H3270 *hSession, unsigned char c) |
| 806 | 803 | { |
| 807 | 804 | #if defined(X3270_ANSI) /*[*/ |
| ... | ... | @@ -2043,18 +2040,9 @@ static void do_lnext(H3270 *hSession, char c) |
| 2043 | 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 | 2047 | "unconnected", |
| 2060 | 2048 | "resolving", |
| ... | ... | @@ -2067,7 +2055,23 @@ static void check_in3270(H3270 *hSession) |
| 2067 | 2055 | "TN3270E SSCP-LU", |
| 2068 | 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 | 2076 | #if defined(X3270_TN3270E) /*[*/ |
| 2073 | 2077 | if (hSession->myopts[TELOPT_TN3270E]) { |
| ... | ... | @@ -2142,7 +2146,7 @@ static void check_in3270(H3270 *hSession) |
| 2142 | 2146 | hSession->tn3270e_bound = 0; |
| 2143 | 2147 | } |
| 2144 | 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 | 2150 | host_in3270(hSession,new_cstate); |
| 2147 | 2151 | } |
| 2148 | 2152 | } | ... | ... |
src/include/lib3270.h
| ... | ... | @@ -668,6 +668,8 @@ |
| 668 | 668 | */ |
| 669 | 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 | 674 | * @brief Pretend that a sequence of keys was entered at the keyboard. |
| 673 | 675 | * | ... | ... |