Browse Source

fixed bug #35928 BSD sockets functions must set errno for POSIX-compliance (patch by Mason)

STABLE-2_1_x
Simon Goldschmidt 12 years ago
parent
commit
c065427ebe
  1. 4
      CHANGELOG
  2. 6
      src/api/sockets.c
  3. 7
      src/include/lwip/opt.h

4
CHANGELOG

@ -96,6 +96,10 @@ HISTORY
++ Bugfixes:
2014-03-11: Simon Goldschmidt (patch by Mason)
* opt.h, sockets.c: fixed bug #35928 BSD sockets functions must set errno for
POSIX-compliance
2014-02-27: Simon Goldschmidt
* dhcp.c: fixed bug #40303 DHCP xid renewed when sending a DHCPREQUEST

6
src/api/sockets.c

@ -223,13 +223,13 @@ static const int err_to_errno_table[] = {
((unsigned)(-(err)) < ERR_TO_ERRNO_TABLE_SIZE ? \
err_to_errno_table[-(err)] : EIO)
#ifdef ERRNO
#if LWIP_SOCKET_SET_ERRNO
#ifndef set_errno
#define set_errno(err) do { if (err) { errno = (err); } } while(0)
#endif
#else /* ERRNO */
#else /* LWIP_SOCKET_SET_ERRNO */
#define set_errno(err)
#endif /* ERRNO */
#endif /* LWIP_SOCKET_SET_ERRNO */
#define sock_set_errno(sk, e) do { \
sk->err = (e); \

7
src/include/lwip/opt.h

@ -1493,6 +1493,13 @@
#define LWIP_SOCKET 1
#endif
/* LWIP_SOCKET_SET_ERRNO==1: Set errno when socket functions cannot complete
* successfully, as required by POSIX. Default is POSIX-compliant.
*/
#ifndef LWIP_SOCKET_SET_ERRNO
#define LWIP_SOCKET_SET_ERRNO 1
#endif
/**
* LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
* (only used if you use sockets.c)

Loading…
Cancel
Save