Skip to content
This repository was archived by the owner on Jun 5, 2019. It is now read-only.

Commit df70151

Browse files
committed
Merge pull request #317 from mortezag/fixLingerOpt
Set error on LINGER and DONTLINGER socket options
2 parents 633fa9a + 7a65b30 commit df70151

File tree

1 file changed

+10
-19
lines changed

1 file changed

+10
-19
lines changed

DeviceCode/pal/lwip_1_4_1_os/SocketsDriver/lwIP__Sockets.cpp

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -563,22 +563,13 @@ int LWIP_SOCKETS_Driver::SetSockOpt( SOCK_SOCKET socket, int level, int optname,
563563

564564
switch(optname)
565565
{
566-
// LINGER is not implemented in LWIP
566+
// LINGER and DONTLINGER are not implemented in LWIP
567567
case SOCK_SOCKO_LINGER:
568-
if (*(int*)optval)
569-
{
570-
errno = SOCK_ENOPROTOOPT;
571-
return SOCK_SOCKET_ERROR;
572-
}
573-
return 0;
568+
errno = SOCK_ENOPROTOOPT;
569+
return SOCK_SOCKET_ERROR;
574570
case SOCK_SOCKO_DONTLINGER:
575-
if (!*(int*)optval)
576-
{
577-
errno = SOCK_ENOPROTOOPT;
578-
return SOCK_SOCKET_ERROR;
579-
}
580-
return 0;
581-
571+
errno = SOCK_ENOPROTOOPT;
572+
return SOCK_SOCKET_ERROR;
582573
// ignore this item to enable http to work
583574
case SOCK_SOCKO_REUSEADDRESS:
584575
return 0;
@@ -627,13 +618,13 @@ int LWIP_SOCKETS_Driver::GetSockOpt( SOCK_SOCKET socket, int level, int optname,
627618
nativeOptionName = GetNativeSockOption(optname);
628619
switch(optname)
629620
{
630-
// LINGER is not implemented in LWIP
621+
// LINGER and DONTLINGER are not implemented in LWIP
631622
case SOCK_SOCKO_LINGER:
632-
*optval = 0;
633-
return 0;
623+
errno = SOCK_ENOPROTOOPT;
624+
return SOCK_SOCKET_ERROR;
634625
case SOCK_SOCKO_DONTLINGER:
635-
*optval = 1;
636-
return 0;
626+
errno = SOCK_ENOPROTOOPT;
627+
return SOCK_SOCKET_ERROR;
637628
default:
638629
break;
639630
}

0 commit comments

Comments
 (0)