Merge pull request #6697 from francois-berder-imgtec/awalwm2m
posix: sockets: Small fixes for listen and recvfrom functions
This commit is contained in:
commit
4a51d1b433
@ -752,7 +752,7 @@ int listen(int socket, int backlog)
|
|||||||
bf_unset(_sock_pool_used, _get_sock_idx(sock));
|
bf_unset(_sock_pool_used, _get_sock_idx(sock));
|
||||||
mutex_unlock(&_socket_pool_mutex);
|
mutex_unlock(&_socket_pool_mutex);
|
||||||
}
|
}
|
||||||
return -res;
|
return res;
|
||||||
#else
|
#else
|
||||||
(void)socket;
|
(void)socket;
|
||||||
(void)backlog;
|
(void)backlog;
|
||||||
@ -786,8 +786,7 @@ ssize_t recvfrom(int socket, void *restrict buffer, size_t length, int flags,
|
|||||||
#endif
|
#endif
|
||||||
/* bind implicitly */
|
/* bind implicitly */
|
||||||
if ((res = _bind_connect(s, NULL, 0)) < 0) {
|
if ((res = _bind_connect(s, NULL, 0)) < 0) {
|
||||||
errno = -res;
|
return res;
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
switch (s->type) {
|
switch (s->type) {
|
||||||
@ -814,7 +813,7 @@ ssize_t recvfrom(int socket, void *restrict buffer, size_t length, int flags,
|
|||||||
#ifdef MODULE_SOCK_UDP
|
#ifdef MODULE_SOCK_UDP
|
||||||
case SOCK_DGRAM:
|
case SOCK_DGRAM:
|
||||||
/* TODO: apply configured timeout */
|
/* TODO: apply configured timeout */
|
||||||
if ((res = sock_udp_recv(&s->sock->udp, buffer, length, 0,
|
if ((res = sock_udp_recv(&s->sock->udp, buffer, length, SOCK_NO_TIMEOUT,
|
||||||
&ep)) < 0) {
|
&ep)) < 0) {
|
||||||
errno = -res;
|
errno = -res;
|
||||||
res = -1;
|
res = -1;
|
||||||
@ -826,7 +825,7 @@ ssize_t recvfrom(int socket, void *restrict buffer, size_t length, int flags,
|
|||||||
res = -1;
|
res = -1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((res == 0) && (address != NULL) && (address_len != 0)) {
|
if ((res >= 0) && (address != NULL) && (address_len != 0)) {
|
||||||
switch (s->type) {
|
switch (s->type) {
|
||||||
#ifdef MODULE_SOCK_TCP
|
#ifdef MODULE_SOCK_TCP
|
||||||
case SOCK_STREAM:
|
case SOCK_STREAM:
|
||||||
@ -873,8 +872,7 @@ ssize_t sendto(int socket, const void *buffer, size_t length, int flags,
|
|||||||
#endif
|
#endif
|
||||||
/* bind implicitly */
|
/* bind implicitly */
|
||||||
if ((res = _bind_connect(s, NULL, 0)) < 0) {
|
if ((res = _bind_connect(s, NULL, 0)) < 0) {
|
||||||
errno = -res;
|
return res;
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if defined(MODULE_SOCK_IP) || defined(MODULE_SOCK_UDP)
|
#if defined(MODULE_SOCK_IP) || defined(MODULE_SOCK_UDP)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user