Commit 2dca04230e21987586aacd280d97fc8026e82447

Authored by Stéphane Raimbault
1 parent be4b215d

Return value of _modbus_tcp_pi_connect() on failure (closes #61)

src/modbus-tcp.c
@@ -349,8 +349,9 @@ static int _modbus_tcp_pi_connect(modbus_t *ctx) @@ -349,8 +349,9 @@ static int _modbus_tcp_pi_connect(modbus_t *ctx)
349 &ai_hints, &ai_list); 349 &ai_hints, &ai_list);
350 if (rc != 0) { 350 if (rc != 0) {
351 if (ctx->debug) { 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 return -1; 355 return -1;
355 } 356 }
356 357
@@ -518,8 +519,13 @@ int modbus_tcp_pi_listen(modbus_t *ctx, int nb_connection) @@ -518,8 +519,13 @@ int modbus_tcp_pi_listen(modbus_t *ctx, int nb_connection)
518 519
519 ai_list = NULL; 520 ai_list = NULL;
520 rc = getaddrinfo(node, service, &ai_hints, &ai_list); 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 return -1; 527 return -1;
  528 + }
523 529
524 new_socket = -1; 530 new_socket = -1;
525 for (ai_ptr = ai_list; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next) { 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,8 +82,7 @@ int main(int argc, char *argv[])
82 } 82 }
83 83
84 if (modbus_connect(ctx) == -1) { 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 modbus_free(ctx); 86 modbus_free(ctx);
88 return -1; 87 return -1;
89 } 88 }