Commit 00e068eb59837b299adaaf34805a47dfc94bf58a
1 parent
f9358460
tcp_modbus_accept mustn't close socket on error (closes #333)
The socket management belongs to the application. The return code was missing in modbus_tcp_pi_accept().
Showing
1 changed file
with
2 additions
and
4 deletions
src/modbus-tcp.c
| @@ -661,8 +661,6 @@ int modbus_tcp_accept(modbus_t *ctx, int *s) | @@ -661,8 +661,6 @@ int modbus_tcp_accept(modbus_t *ctx, int *s) | ||
| 661 | #endif | 661 | #endif |
| 662 | 662 | ||
| 663 | if (ctx->s == -1) { | 663 | if (ctx->s == -1) { |
| 664 | - close(*s); | ||
| 665 | - *s = -1; | ||
| 666 | return -1; | 664 | return -1; |
| 667 | } | 665 | } |
| 668 | 666 | ||
| @@ -691,9 +689,9 @@ int modbus_tcp_pi_accept(modbus_t *ctx, int *s) | @@ -691,9 +689,9 @@ int modbus_tcp_pi_accept(modbus_t *ctx, int *s) | ||
| 691 | #else | 689 | #else |
| 692 | ctx->s = accept(*s, (struct sockaddr *)&addr, &addrlen); | 690 | ctx->s = accept(*s, (struct sockaddr *)&addr, &addrlen); |
| 693 | #endif | 691 | #endif |
| 692 | + | ||
| 694 | if (ctx->s == -1) { | 693 | if (ctx->s == -1) { |
| 695 | - close(*s); | ||
| 696 | - *s = -1; | 694 | + return -1; |
| 697 | } | 695 | } |
| 698 | 696 | ||
| 699 | if (ctx->debug) { | 697 | if (ctx->debug) { |