MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / sal_setsockopt

Function sal_setsockopt

components/net/sal/src/sal_socket.c:840–885  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

838}
839
840int sal_setsockopt(int socket, int level, int optname, const void *optval, socklen_t optlen)
841{
842 struct sal_socket *sock;
843 struct sal_proto_family *pf;
844
845 /* get the socket object by socket descriptor */
846 SAL_SOCKET_OBJ_GET(sock, socket);
847
848 /* check the network interface socket opreation */
849 SAL_NETDEV_SOCKETOPS_VALID(sock->netdev, pf, setsockopt);
850
851#ifdef SAL_USING_TLS
852 if (level == SOL_TLS)
853 {
854 switch (optname)
855 {
856 case TLS_CRET_LIST:
857 SAL_SOCKOPT_PROTO_TLS_EXEC(sock, set_cret_list, optval, optlen);
858 break;
859
860 case TLS_CIPHERSUITE_LIST:
861 SAL_SOCKOPT_PROTO_TLS_EXEC(sock, set_ciphersurite, optval, optlen);
862 break;
863
864 case TLS_PEER_VERIFY:
865 SAL_SOCKOPT_PROTO_TLS_EXEC(sock, set_peer_verify, optval, optlen);
866 break;
867
868 case TLS_DTLS_ROLE:
869 SAL_SOCKOPT_PROTO_TLS_EXEC(sock, set_dtls_role, optval, optlen);
870 break;
871
872 default:
873 return -1;
874 }
875
876 return 0;
877 }
878 else
879 {
880 return pf->skt_ops->setsockopt((int)sock->user_data, level, optname, optval, optlen);
881 }
882#else
883 return pf->skt_ops->setsockopt((int)(size_t)sock->user_data, level, optname, optval, optlen);
884#endif /* SAL_USING_TLS */
885}
886
887int sal_connect(int socket, const struct sockaddr *name, socklen_t namelen)
888{

Callers 3

setsockoptFunction · 0.85
set_socket_timeoutFunction · 0.85
create_test_socketFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected