Commit 2dca04230e21987586aacd280d97fc8026e82447
1 parent
be4b215d
Return value of _modbus_tcp_pi_connect() on failure (closes #61)
Showing
2 changed files
with
9 additions
and
4 deletions
src/modbus-tcp.c
| ... | ... | @@ -349,8 +349,9 @@ static int _modbus_tcp_pi_connect(modbus_t *ctx) |
| 349 | 349 | &ai_hints, &ai_list); |
| 350 | 350 | if (rc != 0) { |
| 351 | 351 | if (ctx->debug) { |
| 352 | - printf("Error returned by getaddrinfo: %d\n", rc); | |
| 352 | + fprintf(stderr, "Error returned by getaddrinfo: %s\n", gai_strerror(rc)); | |
| 353 | 353 | } |
| 354 | + errno = ECONNREFUSED; | |
| 354 | 355 | return -1; |
| 355 | 356 | } |
| 356 | 357 | |
| ... | ... | @@ -518,8 +519,13 @@ int modbus_tcp_pi_listen(modbus_t *ctx, int nb_connection) |
| 518 | 519 | |
| 519 | 520 | ai_list = NULL; |
| 520 | 521 | rc = getaddrinfo(node, service, &ai_hints, &ai_list); |
| 521 | - if (rc != 0) | |
| 522 | + if (rc != 0) { | |
| 523 | + if (ctx->debug) { | |
| 524 | + fprintf(stderr, "Error returned by getaddrinfo: %s\n", gai_strerror(rc)); | |
| 525 | + } | |
| 526 | + errno = ECONNREFUSED; | |
| 522 | 527 | return -1; |
| 528 | + } | |
| 523 | 529 | |
| 524 | 530 | new_socket = -1; |
| 525 | 531 | for (ai_ptr = ai_list; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next) { | ... | ... |
tests/unit-test-client.c
| ... | ... | @@ -82,8 +82,7 @@ int main(int argc, char *argv[]) |
| 82 | 82 | } |
| 83 | 83 | |
| 84 | 84 | if (modbus_connect(ctx) == -1) { |
| 85 | - fprintf(stderr, "Connection failed: %s\n", | |
| 86 | - modbus_strerror(errno)); | |
| 85 | + fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno)); | |
| 87 | 86 | modbus_free(ctx); |
| 88 | 87 | return -1; |
| 89 | 88 | } | ... | ... |