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

Function at_setsockopt

components/net/at/at_socket/at_socket.c:1297–1350  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1295}
1296
1297int at_setsockopt(int socket, int level, int optname, const void *optval, socklen_t optlen)
1298{
1299 struct at_socket *sock;
1300
1301 if (optval == RT_NULL)
1302 {
1303 LOG_E("AT setsockopt input option value error!");
1304 rt_set_errno(EFAULT);
1305 return -1;
1306 }
1307
1308 sock = at_get_socket(socket);
1309 if (sock == RT_NULL)
1310 {
1311 rt_set_errno(ENXIO);
1312 return -1;
1313 }
1314
1315 switch (level)
1316 {
1317 case SOL_SOCKET:
1318 switch (optname)
1319 {
1320 case SO_RCVTIMEO:
1321 sock->recv_timeout = ((const struct timeval *) optval)->tv_sec * 1000
1322 + ((const struct timeval *) optval)->tv_usec / 1000;
1323 break;
1324
1325 case SO_SNDTIMEO:
1326 sock->send_timeout = ((const struct timeval *) optval)->tv_sec * 1000
1327 + ((const struct timeval *) optval)->tv_usec / 1000;
1328 break;
1329
1330 default:
1331 LOG_E("AT socket (%d) not support option name : %d.", socket, optname);
1332 rt_set_errno(EPERM);
1333 return -1;
1334 }
1335 break;
1336 case IPPROTO_TCP:
1337 switch (optname)
1338 {
1339 case TCP_NODELAY:
1340 break;
1341 }
1342 break;
1343 default:
1344 LOG_E("AT socket (%d) not support option level : %d.", socket, level);
1345 rt_set_errno(EPERM);
1346 return -1;
1347 }
1348
1349 return 0;
1350}
1351
1352static uint32_t ipstr_atol(const char* nptr)
1353{

Callers

nothing calls this directly

Calls 2

rt_set_errnoFunction · 0.85
at_get_socketFunction · 0.85

Tested by

no test coverage detected