Skip to content

Commit d9367f8

Browse files
author
Cruz Monrreal
authored
Merge pull request #7832 from juhaylinen/fix-nanostack-setsockoptions
Nanostack: Fix return code for unsupported socket options
2 parents 5c50ead + b8a7e25 commit d9367f8

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

features/nanostack/nanostack-interface/Nanostack.cpp

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -793,12 +793,15 @@ nsapi_error_t Nanostack::setsockopt(void *handle, int level, int optname, const
793793
break;
794794
}
795795
default:
796-
return NSAPI_ERROR_PARAMETER;
796+
return NSAPI_ERROR_UNSUPPORTED;
797797
}
798798
}
799799

800-
if (::socket_setsockopt(socket->socket_id, level, optname, optval, optlen) == 0) {
800+
int retcode = ::socket_setsockopt(socket->socket_id, level, optname, optval, optlen);
801+
if (retcode == 0) {
801802
return NSAPI_ERROR_OK;
803+
} else if (retcode == -2) {
804+
return NSAPI_ERROR_UNSUPPORTED;
802805
} else {
803806
return NSAPI_ERROR_PARAMETER;
804807
}
@@ -812,19 +815,19 @@ nsapi_error_t Nanostack::getsockopt(void *handle, int level, int optname, void *
812815
return NSAPI_ERROR_NO_SOCKET;
813816
}
814817

815-
nsapi_error_t ret;
816-
817818
NanostackLockGuard lock;
818819

819820
uint16_t optlen16 = *optlen;
820-
if (::socket_getsockopt(socket->socket_id, level, optname, optval, &optlen16) == 0) {
821-
ret = NSAPI_ERROR_OK;
821+
822+
int retcode = ::socket_getsockopt(socket->socket_id, level, optname, optval, &optlen16);
823+
if (retcode == 0) {
822824
*optlen = optlen16;
825+
return NSAPI_ERROR_OK;
826+
} else if (retcode == -2) {
827+
return NSAPI_ERROR_UNSUPPORTED;
823828
} else {
824-
ret = NSAPI_ERROR_PARAMETER;
829+
return NSAPI_ERROR_PARAMETER;
825830
}
826-
827-
return ret;
828831
}
829832

830833
nsapi_error_t Nanostack::socket_listen(void *handle, int backlog)

0 commit comments

Comments
 (0)