Commit c4569a308c2240d6f2bed0cc10f1e1f0082af751
1 parent
97072052
Exists in
master
and in
3 other branches
Better error codes when the session is connected.
Showing
8 changed files
with
15 additions
and
23 deletions
Show diff stats
src/include/api.h
src/include/lib3270.h
| ... | ... | @@ -595,7 +595,7 @@ |
| 595 | 595 | * @param h Session handle. |
| 596 | 596 | * @param seconds Seconds to wait for connection. |
| 597 | 597 | * |
| 598 | - * @return 0 for success, EAGAIN if auto-reconnect is in progress, EBUSY if connected, ENOTCONN if connection has failed, -1 on unexpected failure. | |
| 598 | + * @return 0 for success, non zero if fails (sets errno). | |
| 599 | 599 | * |
| 600 | 600 | */ |
| 601 | 601 | LIB3270_EXPORT int lib3270_reconnect(H3270 *h,int seconds); | ... | ... |
src/lib3270/connect.c
src/lib3270/ctlr.c
| ... | ... | @@ -252,7 +252,7 @@ int lib3270_set_model(H3270 *hSession, const char *model) |
| 252 | 252 | int model_number; |
| 253 | 253 | |
| 254 | 254 | if(hSession->cstate != LIB3270_NOT_CONNECTED) |
| 255 | - return errno = EBUSY; | |
| 255 | + return errno = EISCONN; | |
| 256 | 256 | |
| 257 | 257 | strncpy(hSession->full_model_name,"IBM-",LIB3270_FULL_MODEL_NAME_LENGTH); |
| 258 | 258 | hSession->model_name = &hSession->full_model_name[4]; | ... | ... |
src/lib3270/ft.c
| ... | ... | @@ -153,7 +153,7 @@ static void set_ft_state(H3270FT *session, LIB3270_FT_STATE state); |
| 153 | 153 | } |
| 154 | 154 | |
| 155 | 155 | if(!force) |
| 156 | - return EBUSY; | |
| 156 | + return errno = EBUSY; | |
| 157 | 157 | |
| 158 | 158 | // Impatient user or hung host -- just clean up. |
| 159 | 159 | ft_failed(ft, N_("Cancelled by user") ); | ... | ... |
src/lib3270/options.c
| ... | ... | @@ -97,7 +97,7 @@ LIB3270_EXPORT int lib3270_set_color_type(H3270 *hSession, int colortype) |
| 97 | 97 | CHECK_SESSION_HANDLE(hSession); |
| 98 | 98 | |
| 99 | 99 | if(hSession->cstate != LIB3270_NOT_CONNECTED) |
| 100 | - return errno = EBUSY; | |
| 100 | + return errno = EISCONN; | |
| 101 | 101 | |
| 102 | 102 | switch(colortype) |
| 103 | 103 | { | ... | ... |
src/lib3270/private.h
| ... | ... | @@ -669,10 +669,10 @@ LIB3270_INTERNAL int check_online_session(H3270 *hSession); |
| 669 | 669 | LIB3270_INTERNAL int check_offline_session(H3270 *hSession); |
| 670 | 670 | |
| 671 | 671 | /// @brief Returns -1 if the session is invalid or not online (sets errno). |
| 672 | -#define FAIL_IF_NOT_ONLINE(x) if(check_online_session(x)) return -1; | |
| 672 | +#define FAIL_IF_NOT_ONLINE(x) if(check_online_session(x)) return errno; | |
| 673 | 673 | |
| 674 | 674 | /// @brief Returns -1 if the session is invalid or online (sets errno). |
| 675 | -#define FAIL_IF_ONLINE(x) if(check_offline_session(x)) return -1; | |
| 675 | +#define FAIL_IF_ONLINE(x) if(check_offline_session(x)) return errno; | |
| 676 | 676 | |
| 677 | 677 | LIB3270_INTERNAL int non_blocking(H3270 *session, Boolean on); |
| 678 | 678 | ... | ... |
src/lib3270/session.c
| ... | ... | @@ -432,17 +432,11 @@ LIB3270_INTERNAL int check_online_session(H3270 *hSession) { |
| 432 | 432 | |
| 433 | 433 | // Is the session valid? |
| 434 | 434 | if(!hSession) |
| 435 | - { | |
| 436 | - errno = EINVAL; | |
| 437 | - return -1; | |
| 438 | - } | |
| 435 | + return errno = EINVAL; | |
| 439 | 436 | |
| 440 | 437 | // Is it connected? |
| 441 | 438 | if((int) hSession->cstate < (int)LIB3270_CONNECTED_INITIAL) |
| 442 | - { | |
| 443 | - errno = ENOTCONN; | |
| 444 | - return -1; | |
| 445 | - } | |
| 439 | + return errno = ENOTCONN; | |
| 446 | 440 | |
| 447 | 441 | return 0; |
| 448 | 442 | } |
| ... | ... | @@ -451,17 +445,11 @@ LIB3270_INTERNAL int check_offline_session(H3270 *hSession) { |
| 451 | 445 | |
| 452 | 446 | // Is the session valid? |
| 453 | 447 | if(!hSession) |
| 454 | - { | |
| 455 | - errno = EINVAL; | |
| 456 | - return -1; | |
| 457 | - } | |
| 448 | + return errno = EINVAL; | |
| 458 | 449 | |
| 459 | 450 | // Is it connected? |
| 460 | 451 | if((int) hSession->cstate >= (int)LIB3270_CONNECTED_INITIAL) |
| 461 | - { | |
| 462 | - errno = EBUSY; | |
| 463 | - return -1; | |
| 464 | - } | |
| 452 | + return errno = EISCONN; | |
| 465 | 453 | |
| 466 | 454 | return 0; |
| 467 | 455 | } | ... | ... |