Reformat sockets.c using astylerc

This commit is contained in:
Dirk Ziegelmeier 2017-09-17 17:47:47 +02:00
parent fa33db1448
commit 438cfd3f14

View File

@ -117,7 +117,7 @@
#endif /* LWIP_IPV6 */ #endif /* LWIP_IPV6 */
#if LWIP_IPV4 && LWIP_IPV6 #if LWIP_IPV4 && LWIP_IPV6
static void sockaddr_to_ipaddr_port(const struct sockaddr* sockaddr, ip_addr_t* ipaddr, u16_t* port); static void sockaddr_to_ipaddr_port(const struct sockaddr *sockaddr, ip_addr_t *ipaddr, u16_t *port);
#define IS_SOCK_ADDR_LEN_VALID(namelen) (((namelen) == sizeof(struct sockaddr_in)) || \ #define IS_SOCK_ADDR_LEN_VALID(namelen) (((namelen) == sizeof(struct sockaddr_in)) || \
((namelen) == sizeof(struct sockaddr_in6))) ((namelen) == sizeof(struct sockaddr_in6)))
@ -226,7 +226,7 @@ union sockaddr_aligned {
a socket is closed */ a socket is closed */
struct lwip_socket_multicast_pair { struct lwip_socket_multicast_pair {
/** the socket */ /** the socket */
struct lwip_sock* sock; struct lwip_sock *sock;
/** the interface address */ /** the interface address */
ip4_addr_t if_addr; ip4_addr_t if_addr;
/** the group address */ /** the group address */
@ -245,7 +245,7 @@ static void lwip_socket_drop_registered_memberships(int s);
a socket is closed */ a socket is closed */
struct lwip_socket_multicast_mld6_pair { struct lwip_socket_multicast_mld6_pair {
/** the socket */ /** the socket */
struct lwip_sock* sock; struct lwip_sock *sock;
/** the interface index */ /** the interface index */
u8_t if_idx; u8_t if_idx;
/** the group address */ /** the group address */
@ -304,13 +304,13 @@ static void free_socket(struct lwip_sock *sock, int is_tcp);
#if LWIP_IPV4 && LWIP_IPV6 #if LWIP_IPV4 && LWIP_IPV6
static void static void
sockaddr_to_ipaddr_port(const struct sockaddr* sockaddr, ip_addr_t* ipaddr, u16_t* port) sockaddr_to_ipaddr_port(const struct sockaddr *sockaddr, ip_addr_t *ipaddr, u16_t *port)
{ {
if ((sockaddr->sa_family) == AF_INET6) { if ((sockaddr->sa_family) == AF_INET6) {
SOCKADDR6_TO_IP6ADDR_PORT((const struct sockaddr_in6*)(const void*)(sockaddr), ipaddr, *port); SOCKADDR6_TO_IP6ADDR_PORT((const struct sockaddr_in6 *)(const void *)(sockaddr), ipaddr, *port);
ipaddr->type = IPADDR_TYPE_V6; ipaddr->type = IPADDR_TYPE_V6;
} else { } else {
SOCKADDR4_TO_IP4ADDR_PORT((const struct sockaddr_in*)(const void*)(sockaddr), ipaddr, *port); SOCKADDR4_TO_IP4ADDR_PORT((const struct sockaddr_in *)(const void *)(sockaddr), ipaddr, *port);
ipaddr->type = IPADDR_TYPE_V4; ipaddr->type = IPADDR_TYPE_V4;
} }
} }
@ -385,7 +385,7 @@ tryget_socket_unconn_nouse(int fd)
return &sockets[s]; return &sockets[s];
} }
struct lwip_sock* struct lwip_sock *
lwip_socket_dbg_get_socket(int fd) lwip_socket_dbg_get_socket(int fd)
{ {
return tryget_socket_unconn_nouse(fd); return tryget_socket_unconn_nouse(fd);
@ -590,7 +590,7 @@ lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen)
if (newconn->callback) { if (newconn->callback) {
LOCK_TCPIP_CORE(); LOCK_TCPIP_CORE();
while(recvevent > 0) { while (recvevent > 0) {
recvevent--; recvevent--;
newconn->callback(newconn, NETCONN_EVT_RCVPLUS, 0); newconn->callback(newconn, NETCONN_EVT_RCVPLUS, 0);
} }
@ -853,7 +853,7 @@ lwip_recv_tcp(struct lwip_sock *sock, void *mem, size_t len, int flags)
err_t err; err_t err;
u16_t copylen; u16_t copylen;
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recv_tcp: top while sock->lastdata=%p\n", (void*)sock->lastdata.pbuf)); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recv_tcp: top while sock->lastdata=%p\n", (void *)sock->lastdata.pbuf));
/* Check if there is data left from the last recv operation. */ /* Check if there is data left from the last recv operation. */
if (sock->lastdata.pbuf) { if (sock->lastdata.pbuf) {
p = sock->lastdata.pbuf; p = sock->lastdata.pbuf;
@ -862,7 +862,7 @@ lwip_recv_tcp(struct lwip_sock *sock, void *mem, size_t len, int flags)
some from the network. */ some from the network. */
err = netconn_recv_tcp_pbuf_flags(sock->conn, &p, apiflags); err = netconn_recv_tcp_pbuf_flags(sock->conn, &p, apiflags);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recv_tcp: netconn_recv err=%d, pbuf=%p\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recv_tcp: netconn_recv err=%d, pbuf=%p\n",
err, (void*)p)); err, (void *)p));
if (err != ERR_OK) { if (err != ERR_OK) {
if (recvd > 0) { if (recvd > 0) {
@ -907,7 +907,7 @@ lwip_recv_tcp(struct lwip_sock *sock, void *mem, size_t len, int flags)
/* copy the contents of the received buffer into /* copy the contents of the received buffer into
the supplied memory pointer mem */ the supplied memory pointer mem */
pbuf_copy_partial(p, (u8_t*)mem + recvd, copylen, 0); pbuf_copy_partial(p, (u8_t *)mem + recvd, copylen, 0);
recvd += copylen; recvd += copylen;
@ -923,10 +923,10 @@ lwip_recv_tcp(struct lwip_sock *sock, void *mem, size_t len, int flags)
/* If so, it should be saved in the sock structure for the next recv call. /* If so, it should be saved in the sock structure for the next recv call.
We store the pbuf but hide/free the consumed data: */ We store the pbuf but hide/free the consumed data: */
sock->lastdata.pbuf = pbuf_free_header(p, copylen); sock->lastdata.pbuf = pbuf_free_header(p, copylen);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recv_tcp: lastdata now pbuf=%p\n", (void*)sock->lastdata.pbuf)); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recv_tcp: lastdata now pbuf=%p\n", (void *)sock->lastdata.pbuf));
} else { } else {
sock->lastdata.pbuf = NULL; sock->lastdata.pbuf = NULL;
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recv_tcp: deleting pbuf=%p\n", (void*)p)); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recv_tcp: deleting pbuf=%p\n", (void *)p));
pbuf_free(p); pbuf_free(p);
} }
} }
@ -1028,7 +1028,7 @@ lwip_recvfrom_udp_raw(struct lwip_sock *sock, int flags, struct msghdr *msg, u16
apiflags = 0; apiflags = 0;
} }
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom_udp_raw[UDP/RAW]: top sock->lastdata=%p\n", (void*)sock->lastdata.netbuf)); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom_udp_raw[UDP/RAW]: top sock->lastdata=%p\n", (void *)sock->lastdata.netbuf));
/* Check if there is data left from the last recv operation. */ /* Check if there is data left from the last recv operation. */
buf = sock->lastdata.netbuf; buf = sock->lastdata.netbuf;
if (buf == NULL) { if (buf == NULL) {
@ -1036,7 +1036,7 @@ lwip_recvfrom_udp_raw(struct lwip_sock *sock, int flags, struct msghdr *msg, u16
some from the network. */ some from the network. */
err = netconn_recv_udp_raw_netbuf_flags(sock->conn, &buf, apiflags); err = netconn_recv_udp_raw_netbuf_flags(sock->conn, &buf, apiflags);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom_udp_raw[UDP/RAW]: netconn_recv err=%d, netbuf=%p\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvfrom_udp_raw[UDP/RAW]: netconn_recv err=%d, netbuf=%p\n",
err, (void*)buf)); err, (void *)buf));
if (err != ERR_OK) { if (err != ERR_OK) {
return err; return err;
@ -1059,7 +1059,7 @@ lwip_recvfrom_udp_raw(struct lwip_sock *sock, int flags, struct msghdr *msg, u16
/* copy the contents of the received buffer into /* copy the contents of the received buffer into
the supplied memory buffer */ the supplied memory buffer */
pbuf_copy_partial(buf->p, (u8_t*)msg->msg_iov[i].iov_base, copylen, copied); pbuf_copy_partial(buf->p, (u8_t *)msg->msg_iov[i].iov_base, copylen, copied);
copied = (u16_t)(copied + copylen); copied = (u16_t)(copied + copylen);
} }
@ -1080,7 +1080,7 @@ lwip_recvfrom_udp_raw(struct lwip_sock *sock, int flags, struct msghdr *msg, u16
/* Initialize flag output */ /* Initialize flag output */
msg->msg_flags = 0; msg->msg_flags = 0;
if (msg->msg_control){ if (msg->msg_control) {
u8_t wrote_msg = 0; u8_t wrote_msg = 0;
#if LWIP_NETBUF_RECVINFO #if LWIP_NETBUF_RECVINFO
/* Check if packet info was recorded */ /* Check if packet info was recorded */
@ -1210,7 +1210,7 @@ lwip_recvmsg(int s, struct msghdr *message, int flags)
int i; int i;
ssize_t buflen; ssize_t buflen;
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvmsg(%d, message=%p, flags=0x%x)\n", s, (void*)message, flags)); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_recvmsg(%d, message=%p, flags=0x%x)\n", s, (void *)message, flags));
LWIP_ERROR("lwip_recvmsg: invalid message pointer", message != NULL, return ERR_ARG;); LWIP_ERROR("lwip_recvmsg: invalid message pointer", message != NULL, return ERR_ARG;);
LWIP_ERROR("lwip_recvmsg: unsupported flags", ((flags == 0) || (flags == MSG_PEEK)), LWIP_ERROR("lwip_recvmsg: unsupported flags", ((flags == 0) || (flags == MSG_PEEK)),
set_errno(EOPNOTSUPP); return -1;); set_errno(EOPNOTSUPP); return -1;);
@ -1366,7 +1366,7 @@ lwip_sendmsg(int s, const struct msghdr *msg, int flags)
sock_set_errno(sock, err_to_errno(ERR_ARG)); done_socket(sock); return -1;); sock_set_errno(sock, err_to_errno(ERR_ARG)); done_socket(sock); return -1;);
LWIP_ERROR("lwip_sendmsg: maximum iovs exceeded", (msg->msg_iovlen > 0) && (msg->msg_iovlen <= IOV_MAX), LWIP_ERROR("lwip_sendmsg: maximum iovs exceeded", (msg->msg_iovlen > 0) && (msg->msg_iovlen <= IOV_MAX),
sock_set_errno(sock, EMSGSIZE); done_socket(sock); return -1;); sock_set_errno(sock, EMSGSIZE); done_socket(sock); return -1;);
LWIP_ERROR("lwip_sendmsg: unsupported flags", (flags & ~(MSG_DONTWAIT|MSG_MORE)) == 0, LWIP_ERROR("lwip_sendmsg: unsupported flags", (flags & ~(MSG_DONTWAIT | MSG_MORE)) == 0,
sock_set_errno(sock, EOPNOTSUPP); done_socket(sock); return -1;); sock_set_errno(sock, EOPNOTSUPP); done_socket(sock); return -1;);
LWIP_UNUSED_ARG(msg->msg_control); LWIP_UNUSED_ARG(msg->msg_control);
@ -1400,7 +1400,7 @@ lwip_sendmsg(int s, const struct msghdr *msg, int flags)
LWIP_UNUSED_ARG(flags); LWIP_UNUSED_ARG(flags);
LWIP_ERROR("lwip_sendmsg: invalid msghdr name", (((msg->msg_name == NULL) && (msg->msg_namelen == 0)) || LWIP_ERROR("lwip_sendmsg: invalid msghdr name", (((msg->msg_name == NULL) && (msg->msg_namelen == 0)) ||
IS_SOCK_ADDR_LEN_VALID(msg->msg_namelen)) , IS_SOCK_ADDR_LEN_VALID(msg->msg_namelen)),
sock_set_errno(sock, err_to_errno(ERR_ARG)); done_socket(sock); return -1;); sock_set_errno(sock, err_to_errno(ERR_ARG)); done_socket(sock); return -1;);
/* initialize chain buffer with destination */ /* initialize chain buffer with destination */
@ -1429,7 +1429,7 @@ lwip_sendmsg(int s, const struct msghdr *msg, int flags)
/* flatten the IO vectors */ /* flatten the IO vectors */
size_t offset = 0; size_t offset = 0;
for (i = 0; i < msg->msg_iovlen; i++) { for (i = 0; i < msg->msg_iovlen; i++) {
MEMCPY(&((u8_t*)chain_buf.p->payload)[offset], msg->msg_iov[i].iov_base, msg->msg_iov[i].iov_len); MEMCPY(&((u8_t *)chain_buf.p->payload)[offset], msg->msg_iov[i].iov_base, msg->msg_iov[i].iov_len);
offset += msg->msg_iov[i].iov_len; offset += msg->msg_iov[i].iov_len;
} }
#if LWIP_CHECKSUM_ON_COPY #if LWIP_CHECKSUM_ON_COPY
@ -1626,7 +1626,7 @@ lwip_socket(int domain, int type, int protocol)
break; break;
case SOCK_DGRAM: case SOCK_DGRAM:
conn = netconn_new_with_callback(DOMAIN_TO_NETCONN_TYPE(domain, conn = netconn_new_with_callback(DOMAIN_TO_NETCONN_TYPE(domain,
((protocol == IPPROTO_UDPLITE) ? NETCONN_UDPLITE : NETCONN_UDP)) , ((protocol == IPPROTO_UDPLITE) ? NETCONN_UDPLITE : NETCONN_UDP)),
DEFAULT_SOCKET_EVENTCB); DEFAULT_SOCKET_EVENTCB);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_socket(%s, SOCK_DGRAM, %d) = ", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_socket(%s, SOCK_DGRAM, %d) = ",
domain == PF_INET ? "PF_INET" : "UNKNOWN", protocol)); domain == PF_INET ? "PF_INET" : "UNKNOWN", protocol));
@ -1733,7 +1733,7 @@ lwip_selscan(int maxfdp1, fd_set *readset_in, fd_set *writeset_in, fd_set *excep
SYS_ARCH_PROTECT(lev); SYS_ARCH_PROTECT(lev);
sock = tryget_socket_unconn(i); sock = tryget_socket_unconn(i);
if (sock != NULL) { if (sock != NULL) {
void* lastdata = sock->lastdata.pbuf; void *lastdata = sock->lastdata.pbuf;
s16_t rcvevent = sock->rcvevent; s16_t rcvevent = sock->rcvevent;
u16_t sendevent = sock->sendevent; u16_t sendevent = sock->sendevent;
u16_t errevent = sock->errevent; u16_t errevent = sock->errevent;
@ -1857,8 +1857,8 @@ lwip_select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_select(%d, %p, %p, %p, tvsec=%"S32_F" tvusec=%"S32_F")\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_select(%d, %p, %p, %p, tvsec=%"S32_F" tvusec=%"S32_F")\n",
maxfdp1, (void *)readset, (void *) writeset, (void *) exceptset, maxfdp1, (void *)readset, (void *) writeset, (void *) exceptset,
timeout ? (s32_t)timeout->tv_sec : (s32_t)-1, timeout ? (s32_t)timeout->tv_sec : (s32_t) - 1,
timeout ? (s32_t)timeout->tv_usec : (s32_t)-1)); timeout ? (s32_t)timeout->tv_usec : (s32_t) - 1));
if ((maxfdp1 < 0) || (maxfdp1 > (FD_SETSIZE + LWIP_SOCKET_OFFSET))) { if ((maxfdp1 < 0) || (maxfdp1 > (FD_SETSIZE + LWIP_SOCKET_OFFSET))) {
set_errno(EINVAL); set_errno(EINVAL);
@ -1973,7 +1973,7 @@ lwip_select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
/* Wait forever */ /* Wait forever */
msectimeout = 0; msectimeout = 0;
} else { } else {
long msecs_long = ((timeout->tv_sec * 1000) + ((timeout->tv_usec + 500)/1000)); long msecs_long = ((timeout->tv_sec * 1000) + ((timeout->tv_usec + 500) / 1000));
if (msecs_long <= 0) { if (msecs_long <= 0) {
/* Wait 1ms at least (0 means wait forever) */ /* Wait 1ms at least (0 means wait forever) */
msectimeout = 1; msectimeout = 1;
@ -2408,7 +2408,7 @@ lwip_getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen)
done_socket(sock); done_socket(sock);
return -1; return -1;
} }
sys_arch_sem_wait((sys_sem_t*)(LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).completed_sem), 0); sys_arch_sem_wait((sys_sem_t *)(LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).completed_sem), 0);
/* write back optlen and optval */ /* write back optlen and optval */
*optlen = LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).optlen; *optlen = LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).optlen;
@ -2436,7 +2436,7 @@ lwip_getsockopt_callback(void *arg)
{ {
struct lwip_setgetsockopt_data *data; struct lwip_setgetsockopt_data *data;
LWIP_ASSERT("arg != NULL", arg != NULL); LWIP_ASSERT("arg != NULL", arg != NULL);
data = (struct lwip_setgetsockopt_data*)arg; data = (struct lwip_setgetsockopt_data *)arg;
data->err = lwip_getsockopt_impl(data->s, data->level, data->optname, data->err = lwip_getsockopt_impl(data->s, data->level, data->optname,
#if LWIP_MPU_COMPATIBLE #if LWIP_MPU_COMPATIBLE
@ -2446,7 +2446,7 @@ lwip_getsockopt_callback(void *arg)
#endif /* LWIP_MPU_COMPATIBLE */ #endif /* LWIP_MPU_COMPATIBLE */
&data->optlen); &data->optlen);
sys_sem_signal((sys_sem_t*)(data->completed_sem)); sys_sem_signal((sys_sem_t *)(data->completed_sem));
} }
#endif /* LWIP_TCPIP_CORE_LOCKING */ #endif /* LWIP_TCPIP_CORE_LOCKING */
@ -2464,7 +2464,7 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
switch (level) { switch (level) {
/* Level: SOL_SOCKET */ /* Level: SOL_SOCKET */
case SOL_SOCKET: case SOL_SOCKET:
switch (optname) { switch (optname) {
@ -2476,9 +2476,9 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
return ENOPROTOOPT; return ENOPROTOOPT;
} }
if ((sock->conn->pcb.tcp != NULL) && (sock->conn->pcb.tcp->state == LISTEN)) { if ((sock->conn->pcb.tcp != NULL) && (sock->conn->pcb.tcp->state == LISTEN)) {
*(int*)optval = 1; *(int *)optval = 1;
} else { } else {
*(int*)optval = 0; *(int *)optval = 0;
} }
break; break;
#endif /* LWIP_TCP */ #endif /* LWIP_TCP */
@ -2495,25 +2495,25 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
return ENOPROTOOPT; return ENOPROTOOPT;
} }
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, *optlen, int); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, *optlen, int);
*(int*)optval = ip_get_option(sock->conn->pcb.ip, optname); *(int *)optval = ip_get_option(sock->conn->pcb.ip, optname);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, SOL_SOCKET, optname=0x%x, ..) = %s\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, SOL_SOCKET, optname=0x%x, ..) = %s\n",
s, optname, (*(int*)optval?"on":"off"))); s, optname, (*(int *)optval ? "on" : "off")));
break; break;
case SO_TYPE: case SO_TYPE:
LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, *optlen, int); LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, *optlen, int);
switch (NETCONNTYPE_GROUP(netconn_type(sock->conn))) { switch (NETCONNTYPE_GROUP(netconn_type(sock->conn))) {
case NETCONN_RAW: case NETCONN_RAW:
*(int*)optval = SOCK_RAW; *(int *)optval = SOCK_RAW;
break; break;
case NETCONN_TCP: case NETCONN_TCP:
*(int*)optval = SOCK_STREAM; *(int *)optval = SOCK_STREAM;
break; break;
case NETCONN_UDP: case NETCONN_UDP:
*(int*)optval = SOCK_DGRAM; *(int *)optval = SOCK_DGRAM;
break; break;
default: /* unrecognized socket type */ default: /* unrecognized socket type */
*(int*)optval = netconn_type(sock->conn); *(int *)optval = netconn_type(sock->conn);
LWIP_DEBUGF(SOCKETS_DEBUG, LWIP_DEBUGF(SOCKETS_DEBUG,
("lwip_getsockopt(%d, SOL_SOCKET, SO_TYPE): unrecognized socket type %d\n", ("lwip_getsockopt(%d, SOL_SOCKET, SO_TYPE): unrecognized socket type %d\n",
s, *(int *)optval)); s, *(int *)optval));
@ -2548,10 +2548,9 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
break; break;
#endif /* LWIP_SO_RCVBUF */ #endif /* LWIP_SO_RCVBUF */
#if LWIP_SO_LINGER #if LWIP_SO_LINGER
case SO_LINGER: case SO_LINGER: {
{
s16_t conn_linger; s16_t conn_linger;
struct linger* linger = (struct linger*)optval; struct linger *linger = (struct linger *)optval;
LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, *optlen, struct linger); LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, *optlen, struct linger);
conn_linger = sock->conn->linger; conn_linger = sock->conn->linger;
if (conn_linger >= 0) { if (conn_linger >= 0) {
@ -2574,7 +2573,7 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
return EAFNOSUPPORT; return EAFNOSUPPORT;
} }
#endif /* LWIP_UDPLITE */ #endif /* LWIP_UDPLITE */
*(int*)optval = (udp_flags(sock->conn->pcb.udp) & UDP_FLAGS_NOCHKSUM) ? 1 : 0; *(int *)optval = (udp_flags(sock->conn->pcb.udp) & UDP_FLAGS_NOCHKSUM) ? 1 : 0;
break; break;
#endif /* LWIP_UDP*/ #endif /* LWIP_UDP*/
default: default:
@ -2585,18 +2584,18 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
} /* switch (optname) */ } /* switch (optname) */
break; break;
/* Level: IPPROTO_IP */ /* Level: IPPROTO_IP */
case IPPROTO_IP: case IPPROTO_IP:
switch (optname) { switch (optname) {
case IP_TTL: case IP_TTL:
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, *optlen, int); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, *optlen, int);
*(int*)optval = sock->conn->pcb.ip->ttl; *(int *)optval = sock->conn->pcb.ip->ttl;
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_TTL) = %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_TTL) = %d\n",
s, *(int *)optval)); s, *(int *)optval));
break; break;
case IP_TOS: case IP_TOS:
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, *optlen, int); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, *optlen, int);
*(int*)optval = sock->conn->pcb.ip->tos; *(int *)optval = sock->conn->pcb.ip->tos;
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_TOS) = %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_TOS) = %d\n",
s, *(int *)optval)); s, *(int *)optval));
break; break;
@ -2607,7 +2606,7 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
done_socket(sock); done_socket(sock);
return ENOPROTOOPT; return ENOPROTOOPT;
} }
*(u8_t*)optval = udp_get_multicast_ttl(sock->conn->pcb.udp); *(u8_t *)optval = udp_get_multicast_ttl(sock->conn->pcb.udp);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_MULTICAST_TTL) = %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_MULTICAST_TTL) = %d\n",
s, *(int *)optval)); s, *(int *)optval));
break; break;
@ -2617,16 +2616,16 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
done_socket(sock); done_socket(sock);
return ENOPROTOOPT; return ENOPROTOOPT;
} }
inet_addr_from_ip4addr((struct in_addr*)optval, udp_get_multicast_netif_addr(sock->conn->pcb.udp)); inet_addr_from_ip4addr((struct in_addr *)optval, udp_get_multicast_netif_addr(sock->conn->pcb.udp));
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_MULTICAST_IF) = 0x%"X32_F"\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_MULTICAST_IF) = 0x%"X32_F"\n",
s, *(u32_t *)optval)); s, *(u32_t *)optval));
break; break;
case IP_MULTICAST_LOOP: case IP_MULTICAST_LOOP:
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, *optlen, u8_t); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, *optlen, u8_t);
if ((sock->conn->pcb.udp->flags & UDP_FLAGS_MULTICAST_LOOP) != 0) { if ((sock->conn->pcb.udp->flags & UDP_FLAGS_MULTICAST_LOOP) != 0) {
*(u8_t*)optval = 1; *(u8_t *)optval = 1;
} else { } else {
*(u8_t*)optval = 0; *(u8_t *)optval = 0;
} }
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_MULTICAST_LOOP) = %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_MULTICAST_LOOP) = %d\n",
s, *(int *)optval)); s, *(int *)optval));
@ -2641,7 +2640,7 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
break; break;
#if LWIP_TCP #if LWIP_TCP
/* Level: IPPROTO_TCP */ /* Level: IPPROTO_TCP */
case IPPROTO_TCP: case IPPROTO_TCP:
/* Special case: all IPPROTO_TCP option take an int */ /* Special case: all IPPROTO_TCP option take an int */
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE(sock, *optlen, int, NETCONN_TCP); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE(sock, *optlen, int, NETCONN_TCP);
@ -2651,29 +2650,29 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
} }
switch (optname) { switch (optname) {
case TCP_NODELAY: case TCP_NODELAY:
*(int*)optval = tcp_nagle_disabled(sock->conn->pcb.tcp); *(int *)optval = tcp_nagle_disabled(sock->conn->pcb.tcp);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_TCP, TCP_NODELAY) = %s\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_TCP, TCP_NODELAY) = %s\n",
s, (*(int*)optval)?"on":"off") ); s, (*(int *)optval) ? "on" : "off") );
break; break;
case TCP_KEEPALIVE: case TCP_KEEPALIVE:
*(int*)optval = (int)sock->conn->pcb.tcp->keep_idle; *(int *)optval = (int)sock->conn->pcb.tcp->keep_idle;
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_TCP, TCP_KEEPALIVE) = %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_TCP, TCP_KEEPALIVE) = %d\n",
s, *(int *)optval)); s, *(int *)optval));
break; break;
#if LWIP_TCP_KEEPALIVE #if LWIP_TCP_KEEPALIVE
case TCP_KEEPIDLE: case TCP_KEEPIDLE:
*(int*)optval = (int)(sock->conn->pcb.tcp->keep_idle/1000); *(int *)optval = (int)(sock->conn->pcb.tcp->keep_idle / 1000);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_TCP, TCP_KEEPIDLE) = %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_TCP, TCP_KEEPIDLE) = %d\n",
s, *(int *)optval)); s, *(int *)optval));
break; break;
case TCP_KEEPINTVL: case TCP_KEEPINTVL:
*(int*)optval = (int)(sock->conn->pcb.tcp->keep_intvl/1000); *(int *)optval = (int)(sock->conn->pcb.tcp->keep_intvl / 1000);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_TCP, TCP_KEEPINTVL) = %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_TCP, TCP_KEEPINTVL) = %d\n",
s, *(int *)optval)); s, *(int *)optval));
break; break;
case TCP_KEEPCNT: case TCP_KEEPCNT:
*(int*)optval = (int)sock->conn->pcb.tcp->keep_cnt; *(int *)optval = (int)sock->conn->pcb.tcp->keep_cnt;
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_TCP, TCP_KEEPCNT) = %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_TCP, TCP_KEEPCNT) = %d\n",
s, *(int *)optval)); s, *(int *)optval));
break; break;
@ -2688,12 +2687,12 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
#endif /* LWIP_TCP */ #endif /* LWIP_TCP */
#if LWIP_IPV6 #if LWIP_IPV6
/* Level: IPPROTO_IPV6 */ /* Level: IPPROTO_IPV6 */
case IPPROTO_IPV6: case IPPROTO_IPV6:
switch (optname) { switch (optname) {
case IPV6_V6ONLY: case IPV6_V6ONLY:
LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, *optlen, int); LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, *optlen, int);
*(int*)optval = (netconn_get_ipv6only(sock->conn) ? 1 : 0); *(int *)optval = (netconn_get_ipv6only(sock->conn) ? 1 : 0);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IPV6, IPV6_V6ONLY) = %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IPV6, IPV6_V6ONLY) = %d\n",
s, *(int *)optval)); s, *(int *)optval));
break; break;
@ -2718,14 +2717,14 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
} }
switch (optname) { switch (optname) {
case UDPLITE_SEND_CSCOV: case UDPLITE_SEND_CSCOV:
*(int*)optval = sock->conn->pcb.udp->chksum_len_tx; *(int *)optval = sock->conn->pcb.udp->chksum_len_tx;
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV) = %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV) = %d\n",
s, (*(int*)optval)) ); s, (*(int *)optval)) );
break; break;
case UDPLITE_RECV_CSCOV: case UDPLITE_RECV_CSCOV:
*(int*)optval = sock->conn->pcb.udp->chksum_len_rx; *(int *)optval = sock->conn->pcb.udp->chksum_len_rx;
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV) = %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV) = %d\n",
s, (*(int*)optval)) ); s, (*(int *)optval)) );
break; break;
default: default:
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_UDPLITE, UNIMPL: optname=0x%x, ..)\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_UDPLITE, UNIMPL: optname=0x%x, ..)\n",
@ -2747,7 +2746,7 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
*(int *)optval = sock->conn->pcb.raw->chksum_offset; *(int *)optval = sock->conn->pcb.raw->chksum_offset;
} }
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_RAW, IPV6_CHECKSUM) = %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_RAW, IPV6_CHECKSUM) = %d\n",
s, (*(int*)optval)) ); s, (*(int *)optval)) );
break; break;
#endif /* LWIP_IPV6 && LWIP_RAW */ #endif /* LWIP_IPV6 && LWIP_RAW */
default: default:
@ -2813,7 +2812,7 @@ lwip_setsockopt(int s, int level, int optname, const void *optval, socklen_t opt
#if LWIP_MPU_COMPATIBLE #if LWIP_MPU_COMPATIBLE
MEMCPY(LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).optval, optval, optlen); MEMCPY(LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).optval, optval, optlen);
#else /* LWIP_MPU_COMPATIBLE */ #else /* LWIP_MPU_COMPATIBLE */
LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).optval.pc = (const void*)optval; LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).optval.pc = (const void *)optval;
#endif /* LWIP_MPU_COMPATIBLE */ #endif /* LWIP_MPU_COMPATIBLE */
LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).err = 0; LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).err = 0;
#if LWIP_NETCONN_SEM_PER_THREAD #if LWIP_NETCONN_SEM_PER_THREAD
@ -2828,7 +2827,7 @@ lwip_setsockopt(int s, int level, int optname, const void *optval, socklen_t opt
done_socket(sock); done_socket(sock);
return -1; return -1;
} }
sys_arch_sem_wait((sys_sem_t*)(LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).completed_sem), 0); sys_arch_sem_wait((sys_sem_t *)(LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).completed_sem), 0);
/* maybe lwip_getsockopt_internal has changed err */ /* maybe lwip_getsockopt_internal has changed err */
err = LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).err; err = LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).err;
@ -2849,7 +2848,7 @@ lwip_setsockopt_callback(void *arg)
{ {
struct lwip_setgetsockopt_data *data; struct lwip_setgetsockopt_data *data;
LWIP_ASSERT("arg != NULL", arg != NULL); LWIP_ASSERT("arg != NULL", arg != NULL);
data = (struct lwip_setgetsockopt_data*)arg; data = (struct lwip_setgetsockopt_data *)arg;
data->err = lwip_setsockopt_impl(data->s, data->level, data->optname, data->err = lwip_setsockopt_impl(data->s, data->level, data->optname,
#if LWIP_MPU_COMPATIBLE #if LWIP_MPU_COMPATIBLE
@ -2859,7 +2858,7 @@ lwip_setsockopt_callback(void *arg)
#endif /* LWIP_MPU_COMPATIBLE */ #endif /* LWIP_MPU_COMPATIBLE */
data->optlen); data->optlen);
sys_sem_signal((sys_sem_t*)(data->completed_sem)); sys_sem_signal((sys_sem_t *)(data->completed_sem));
} }
#endif /* LWIP_TCPIP_CORE_LOCKING */ #endif /* LWIP_TCPIP_CORE_LOCKING */
@ -2877,7 +2876,7 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
switch (level) { switch (level) {
/* Level: SOL_SOCKET */ /* Level: SOL_SOCKET */
case SOL_SOCKET: case SOL_SOCKET:
switch (optname) { switch (optname) {
@ -2895,21 +2894,20 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
return ENOPROTOOPT; return ENOPROTOOPT;
} }
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, optlen, int); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, optlen, int);
if (*(const int*)optval) { if (*(const int *)optval) {
ip_set_option(sock->conn->pcb.ip, optname); ip_set_option(sock->conn->pcb.ip, optname);
} else { } else {
ip_reset_option(sock->conn->pcb.ip, optname); ip_reset_option(sock->conn->pcb.ip, optname);
} }
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, SOL_SOCKET, optname=0x%x, ..) -> %s\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, SOL_SOCKET, optname=0x%x, ..) -> %s\n",
s, optname, (*(const int*)optval?"on":"off"))); s, optname, (*(const int *)optval ? "on" : "off")));
break; break;
/* SO_TYPE is get-only */ /* SO_TYPE is get-only */
/* SO_ERROR is get-only */ /* SO_ERROR is get-only */
#if LWIP_SO_SNDTIMEO #if LWIP_SO_SNDTIMEO
case SO_SNDTIMEO: case SO_SNDTIMEO: {
{
long ms_long; long ms_long;
LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, optlen, LWIP_SO_SNDRCVTIMEO_OPTTYPE); LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, optlen, LWIP_SO_SNDRCVTIMEO_OPTTYPE);
ms_long = LWIP_SO_SNDRCVTIMEO_GET_MS(optval); ms_long = LWIP_SO_SNDRCVTIMEO_GET_MS(optval);
@ -2922,8 +2920,7 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
} }
#endif /* LWIP_SO_SNDTIMEO */ #endif /* LWIP_SO_SNDTIMEO */
#if LWIP_SO_RCVTIMEO #if LWIP_SO_RCVTIMEO
case SO_RCVTIMEO: case SO_RCVTIMEO: {
{
long ms_long; long ms_long;
LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, optlen, LWIP_SO_SNDRCVTIMEO_OPTTYPE); LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, optlen, LWIP_SO_SNDRCVTIMEO_OPTTYPE);
ms_long = LWIP_SO_SNDRCVTIMEO_GET_MS(optval); ms_long = LWIP_SO_SNDRCVTIMEO_GET_MS(optval);
@ -2938,13 +2935,12 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
#if LWIP_SO_RCVBUF #if LWIP_SO_RCVBUF
case SO_RCVBUF: case SO_RCVBUF:
LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, optlen, int); LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, optlen, int);
netconn_set_recvbufsize(sock->conn, *(const int*)optval); netconn_set_recvbufsize(sock->conn, *(const int *)optval);
break; break;
#endif /* LWIP_SO_RCVBUF */ #endif /* LWIP_SO_RCVBUF */
#if LWIP_SO_LINGER #if LWIP_SO_LINGER
case SO_LINGER: case SO_LINGER: {
{ const struct linger *linger = (const struct linger *)optval;
const struct linger* linger = (const struct linger*)optval;
LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, optlen, struct linger); LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, optlen, struct linger);
if (linger->l_onoff) { if (linger->l_onoff) {
int lingersec = linger->l_linger; int lingersec = linger->l_linger;
@ -2972,21 +2968,20 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
return EAFNOSUPPORT; return EAFNOSUPPORT;
} }
#endif /* LWIP_UDPLITE */ #endif /* LWIP_UDPLITE */
if (*(const int*)optval) { if (*(const int *)optval) {
udp_set_flags(sock->conn->pcb.udp, UDP_FLAGS_NOCHKSUM); udp_set_flags(sock->conn->pcb.udp, UDP_FLAGS_NOCHKSUM);
} else { } else {
udp_clear_flags(sock->conn->pcb.udp, UDP_FLAGS_NOCHKSUM); udp_clear_flags(sock->conn->pcb.udp, UDP_FLAGS_NOCHKSUM);
} }
break; break;
#endif /* LWIP_UDP */ #endif /* LWIP_UDP */
case SO_BINDTODEVICE: case SO_BINDTODEVICE: {
{
const struct ifreq *iface; const struct ifreq *iface;
struct netif* n = NULL; struct netif *n = NULL;
LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, optlen, struct ifreq); LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, optlen, struct ifreq);
iface = (const struct ifreq*)optval; iface = (const struct ifreq *)optval;
if (iface->ifr_name[0] != 0) { if (iface->ifr_name[0] != 0) {
n = netif_find(iface->ifr_name); n = netif_find(iface->ifr_name);
if (n == NULL) { if (n == NULL) {
@ -2995,8 +2990,7 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
} }
} }
switch (NETCONNTYPE_GROUP(netconn_type(sock->conn))) switch (NETCONNTYPE_GROUP(netconn_type(sock->conn))) {
{
#if LWIP_TCP #if LWIP_TCP
case NETCONN_TCP: case NETCONN_TCP:
tcp_bind_netif(sock->conn->pcb.tcp, n); tcp_bind_netif(sock->conn->pcb.tcp, n);
@ -3026,25 +3020,25 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
} /* switch (optname) */ } /* switch (optname) */
break; break;
/* Level: IPPROTO_IP */ /* Level: IPPROTO_IP */
case IPPROTO_IP: case IPPROTO_IP:
switch (optname) { switch (optname) {
case IP_TTL: case IP_TTL:
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, optlen, int); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, optlen, int);
sock->conn->pcb.ip->ttl = (u8_t)(*(const int*)optval); sock->conn->pcb.ip->ttl = (u8_t)(*(const int *)optval);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_IP, IP_TTL, ..) -> %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_IP, IP_TTL, ..) -> %d\n",
s, sock->conn->pcb.ip->ttl)); s, sock->conn->pcb.ip->ttl));
break; break;
case IP_TOS: case IP_TOS:
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, optlen, int); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, optlen, int);
sock->conn->pcb.ip->tos = (u8_t)(*(const int*)optval); sock->conn->pcb.ip->tos = (u8_t)(*(const int *)optval);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_IP, IP_TOS, ..)-> %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_IP, IP_TOS, ..)-> %d\n",
s, sock->conn->pcb.ip->tos)); s, sock->conn->pcb.ip->tos));
break; break;
#if LWIP_NETBUF_RECVINFO #if LWIP_NETBUF_RECVINFO
case IP_PKTINFO: case IP_PKTINFO:
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE(sock, optlen, int, NETCONN_UDP); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE(sock, optlen, int, NETCONN_UDP);
if (*(const int*)optval) { if (*(const int *)optval) {
sock->conn->flags |= NETCONN_FLAG_PKTINFO; sock->conn->flags |= NETCONN_FLAG_PKTINFO;
} else { } else {
sock->conn->flags &= ~NETCONN_FLAG_PKTINFO; sock->conn->flags &= ~NETCONN_FLAG_PKTINFO;
@ -3054,19 +3048,18 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
#if LWIP_IPV4 && LWIP_MULTICAST_TX_OPTIONS && LWIP_UDP #if LWIP_IPV4 && LWIP_MULTICAST_TX_OPTIONS && LWIP_UDP
case IP_MULTICAST_TTL: case IP_MULTICAST_TTL:
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE(sock, optlen, u8_t, NETCONN_UDP); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE(sock, optlen, u8_t, NETCONN_UDP);
udp_set_multicast_ttl(sock->conn->pcb.udp, (u8_t)(*(const u8_t*)optval)); udp_set_multicast_ttl(sock->conn->pcb.udp, (u8_t)(*(const u8_t *)optval));
break; break;
case IP_MULTICAST_IF: case IP_MULTICAST_IF: {
{
ip4_addr_t if_addr; ip4_addr_t if_addr;
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE(sock, optlen, struct in_addr, NETCONN_UDP); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE(sock, optlen, struct in_addr, NETCONN_UDP);
inet_addr_to_ip4addr(&if_addr, (const struct in_addr*)optval); inet_addr_to_ip4addr(&if_addr, (const struct in_addr *)optval);
udp_set_multicast_netif_addr(sock->conn->pcb.udp, &if_addr); udp_set_multicast_netif_addr(sock->conn->pcb.udp, &if_addr);
} }
break; break;
case IP_MULTICAST_LOOP: case IP_MULTICAST_LOOP:
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE(sock, optlen, u8_t, NETCONN_UDP); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE(sock, optlen, u8_t, NETCONN_UDP);
if (*(const u8_t*)optval) { if (*(const u8_t *)optval) {
udp_set_flags(sock->conn->pcb.udp, UDP_FLAGS_MULTICAST_LOOP); udp_set_flags(sock->conn->pcb.udp, UDP_FLAGS_MULTICAST_LOOP);
} else { } else {
udp_clear_flags(sock->conn->pcb.udp, UDP_FLAGS_MULTICAST_LOOP); udp_clear_flags(sock->conn->pcb.udp, UDP_FLAGS_MULTICAST_LOOP);
@ -3075,8 +3068,7 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
#endif /* LWIP_IPV4 && LWIP_MULTICAST_TX_OPTIONS && LWIP_UDP */ #endif /* LWIP_IPV4 && LWIP_MULTICAST_TX_OPTIONS && LWIP_UDP */
#if LWIP_IGMP #if LWIP_IGMP
case IP_ADD_MEMBERSHIP: case IP_ADD_MEMBERSHIP:
case IP_DROP_MEMBERSHIP: case IP_DROP_MEMBERSHIP: {
{
/* If this is a TCP or a RAW socket, ignore these options. */ /* If this is a TCP or a RAW socket, ignore these options. */
err_t igmp_err; err_t igmp_err;
const struct ip_mreq *imr = (const struct ip_mreq *)optval; const struct ip_mreq *imr = (const struct ip_mreq *)optval;
@ -3112,7 +3104,7 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
break; break;
#if LWIP_TCP #if LWIP_TCP
/* Level: IPPROTO_TCP */ /* Level: IPPROTO_TCP */
case IPPROTO_TCP: case IPPROTO_TCP:
/* Special case: all IPPROTO_TCP option take an int */ /* Special case: all IPPROTO_TCP option take an int */
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE(sock, optlen, int, NETCONN_TCP); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB_TYPE(sock, optlen, int, NETCONN_TCP);
@ -3122,33 +3114,33 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
} }
switch (optname) { switch (optname) {
case TCP_NODELAY: case TCP_NODELAY:
if (*(const int*)optval) { if (*(const int *)optval) {
tcp_nagle_disable(sock->conn->pcb.tcp); tcp_nagle_disable(sock->conn->pcb.tcp);
} else { } else {
tcp_nagle_enable(sock->conn->pcb.tcp); tcp_nagle_enable(sock->conn->pcb.tcp);
} }
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_NODELAY) -> %s\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_NODELAY) -> %s\n",
s, (*(const int *)optval)?"on":"off") ); s, (*(const int *)optval) ? "on" : "off") );
break; break;
case TCP_KEEPALIVE: case TCP_KEEPALIVE:
sock->conn->pcb.tcp->keep_idle = (u32_t)(*(const int*)optval); sock->conn->pcb.tcp->keep_idle = (u32_t)(*(const int *)optval);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_KEEPALIVE) -> %"U32_F"\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_KEEPALIVE) -> %"U32_F"\n",
s, sock->conn->pcb.tcp->keep_idle)); s, sock->conn->pcb.tcp->keep_idle));
break; break;
#if LWIP_TCP_KEEPALIVE #if LWIP_TCP_KEEPALIVE
case TCP_KEEPIDLE: case TCP_KEEPIDLE:
sock->conn->pcb.tcp->keep_idle = 1000*(u32_t)(*(const int*)optval); sock->conn->pcb.tcp->keep_idle = 1000 * (u32_t)(*(const int *)optval);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_KEEPIDLE) -> %"U32_F"\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_KEEPIDLE) -> %"U32_F"\n",
s, sock->conn->pcb.tcp->keep_idle)); s, sock->conn->pcb.tcp->keep_idle));
break; break;
case TCP_KEEPINTVL: case TCP_KEEPINTVL:
sock->conn->pcb.tcp->keep_intvl = 1000*(u32_t)(*(const int*)optval); sock->conn->pcb.tcp->keep_intvl = 1000 * (u32_t)(*(const int *)optval);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_KEEPINTVL) -> %"U32_F"\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_KEEPINTVL) -> %"U32_F"\n",
s, sock->conn->pcb.tcp->keep_intvl)); s, sock->conn->pcb.tcp->keep_intvl));
break; break;
case TCP_KEEPCNT: case TCP_KEEPCNT:
sock->conn->pcb.tcp->keep_cnt = (u32_t)(*(const int*)optval); sock->conn->pcb.tcp->keep_cnt = (u32_t)(*(const int *)optval);
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_KEEPCNT) -> %"U32_F"\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_TCP, TCP_KEEPCNT) -> %"U32_F"\n",
s, sock->conn->pcb.tcp->keep_cnt)); s, sock->conn->pcb.tcp->keep_cnt));
break; break;
@ -3163,12 +3155,12 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
#endif /* LWIP_TCP*/ #endif /* LWIP_TCP*/
#if LWIP_IPV6 #if LWIP_IPV6
/* Level: IPPROTO_IPV6 */ /* Level: IPPROTO_IPV6 */
case IPPROTO_IPV6: case IPPROTO_IPV6:
switch (optname) { switch (optname) {
case IPV6_V6ONLY: case IPV6_V6ONLY:
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, optlen, int); LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, optlen, int);
if (*(const int*)optval) { if (*(const int *)optval) {
netconn_set_ipv6only(sock->conn, 1); netconn_set_ipv6only(sock->conn, 1);
} else { } else {
netconn_set_ipv6only(sock->conn, 0); netconn_set_ipv6only(sock->conn, 0);
@ -3178,8 +3170,7 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
break; break;
#if LWIP_IPV6_MLD #if LWIP_IPV6_MLD
case IPV6_JOIN_GROUP: case IPV6_JOIN_GROUP:
case IPV6_LEAVE_GROUP: case IPV6_LEAVE_GROUP: {
{
/* If this is a TCP or a RAW socket, ignore these options. */ /* If this is a TCP or a RAW socket, ignore these options. */
err_t mld6_err; err_t mld6_err;
struct netif *netif; struct netif *netif;
@ -3233,24 +3224,24 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
} }
switch (optname) { switch (optname) {
case UDPLITE_SEND_CSCOV: case UDPLITE_SEND_CSCOV:
if ((*(const int*)optval != 0) && ((*(const int*)optval < 8) || (*(const int*)optval > 0xffff))) { if ((*(const int *)optval != 0) && ((*(const int *)optval < 8) || (*(const int *)optval > 0xffff))) {
/* don't allow illegal values! */ /* don't allow illegal values! */
sock->conn->pcb.udp->chksum_len_tx = 8; sock->conn->pcb.udp->chksum_len_tx = 8;
} else { } else {
sock->conn->pcb.udp->chksum_len_tx = (u16_t)*(const int*)optval; sock->conn->pcb.udp->chksum_len_tx = (u16_t) * (const int *)optval;
} }
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV) -> %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV) -> %d\n",
s, (*(const int*)optval)) ); s, (*(const int *)optval)) );
break; break;
case UDPLITE_RECV_CSCOV: case UDPLITE_RECV_CSCOV:
if ((*(const int*)optval != 0) && ((*(const int*)optval < 8) || (*(const int*)optval > 0xffff))) { if ((*(const int *)optval != 0) && ((*(const int *)optval < 8) || (*(const int *)optval > 0xffff))) {
/* don't allow illegal values! */ /* don't allow illegal values! */
sock->conn->pcb.udp->chksum_len_rx = 8; sock->conn->pcb.udp->chksum_len_rx = 8;
} else { } else {
sock->conn->pcb.udp->chksum_len_rx = (u16_t)*(const int*)optval; sock->conn->pcb.udp->chksum_len_rx = (u16_t) * (const int *)optval;
} }
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV) -> %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV) -> %d\n",
s, (*(const int*)optval)) ); s, (*(const int *)optval)) );
break; break;
default: default:
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_UDPLITE, UNIMPL: optname=0x%x, ..)\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_UDPLITE, UNIMPL: optname=0x%x, ..)\n",
@ -3267,7 +3258,7 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
case IPV6_CHECKSUM: case IPV6_CHECKSUM:
/* It should not be possible to disable the checksum generation with ICMPv6 /* It should not be possible to disable the checksum generation with ICMPv6
* as per RFC 3542 chapter 3.1 */ * as per RFC 3542 chapter 3.1 */
if(sock->conn->pcb.raw->protocol == IPPROTO_ICMPV6) { if (sock->conn->pcb.raw->protocol == IPPROTO_ICMPV6) {
done_socket(sock); done_socket(sock);
return EINVAL; return EINVAL;
} }
@ -3281,7 +3272,7 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
return EINVAL; return EINVAL;
} else { } else {
sock->conn->pcb.raw->chksum_reqd = 1; sock->conn->pcb.raw->chksum_reqd = 1;
sock->conn->pcb.raw->chksum_offset = (u16_t)*(const int *)optval; sock->conn->pcb.raw->chksum_offset = (u16_t) * (const int *)optval;
} }
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_RAW, IPV6_CHECKSUM, ..) -> %d\n", LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_setsockopt(%d, IPPROTO_RAW, IPV6_CHECKSUM, ..) -> %d\n",
s, sock->conn->pcb.raw->chksum_reqd)); s, sock->conn->pcb.raw->chksum_reqd));
@ -3331,15 +3322,15 @@ lwip_ioctl(int s, long cmd, void *argp)
struct netbuf *nb; struct netbuf *nb;
if (sock->lastdata.netbuf) { if (sock->lastdata.netbuf) {
nb = sock->lastdata.netbuf; nb = sock->lastdata.netbuf;
*((int*)argp) = nb->p->tot_len; *((int *)argp) = nb->p->tot_len;
} else { } else {
struct netbuf *rxbuf; struct netbuf *rxbuf;
err_t err = netconn_recv_udp_raw_netbuf_flags(sock->conn, &rxbuf, NETCONN_DONTBLOCK); err_t err = netconn_recv_udp_raw_netbuf_flags(sock->conn, &rxbuf, NETCONN_DONTBLOCK);
if (err != ERR_OK) { if (err != ERR_OK) {
*((int*)argp) = 0; *((int *)argp) = 0;
} else { } else {
sock->lastdata.netbuf = rxbuf; sock->lastdata.netbuf = rxbuf;
*((int*)argp) = rxbuf->p->tot_len; *((int *)argp) = rxbuf->p->tot_len;
} }
} }
done_socket(sock); done_socket(sock);
@ -3362,9 +3353,9 @@ lwip_ioctl(int s, long cmd, void *argp)
recv_avail += sock->lastdata.netbuf->p->tot_len; recv_avail += sock->lastdata.netbuf->p->tot_len;
} }
} }
*((int*)argp) = recv_avail; *((int *)argp) = recv_avail;
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_ioctl(%d, FIONREAD, %p) = %"U16_F"\n", s, argp, *((u16_t*)argp))); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_ioctl(%d, FIONREAD, %p) = %"U16_F"\n", s, argp, *((u16_t *)argp)));
sock_set_errno(sock, 0); sock_set_errno(sock, 0);
done_socket(sock); done_socket(sock);
return 0; return 0;
@ -3375,7 +3366,7 @@ lwip_ioctl(int s, long cmd, void *argp)
case (long)FIONBIO: case (long)FIONBIO:
val = 0; val = 0;
if (argp && *(int*)argp) { if (argp && *(int *)argp) {
val = 1; val = 1;
} }
netconn_set_nonblocking(sock->conn, val); netconn_set_nonblocking(sock->conn, val);
@ -3425,7 +3416,7 @@ lwip_fcntl(int s, int cmd, int val)
#endif #endif
#if LWIP_TCP #if LWIP_TCP
if (sock->conn->pcb.tcp) { if (sock->conn->pcb.tcp) {
if(!(sock->conn->pcb.tcp->flags & TF_RXCLOSED)) { if (!(sock->conn->pcb.tcp->flags & TF_RXCLOSED)) {
op_mode |= O_RDONLY; op_mode |= O_RDONLY;
} }
if (!(sock->conn->pcb.tcp->flags & TF_FIN)) { if (!(sock->conn->pcb.tcp->flags & TF_FIN)) {
@ -3443,12 +3434,12 @@ lwip_fcntl(int s, int cmd, int val)
} }
/* ensure O_RDWR for (O_RDONLY|O_WRONLY) != O_RDWR cases */ /* ensure O_RDWR for (O_RDONLY|O_WRONLY) != O_RDWR cases */
ret |= (op_mode == (O_RDONLY|O_WRONLY)) ? O_RDWR : op_mode; ret |= (op_mode == (O_RDONLY | O_WRONLY)) ? O_RDWR : op_mode;
break; break;
case F_SETFL: case F_SETFL:
/* Bits corresponding to the file access mode and the file creation flags [..] that are set in arg shall be ignored */ /* Bits corresponding to the file access mode and the file creation flags [..] that are set in arg shall be ignored */
val &= ~(O_RDONLY|O_WRONLY|O_RDWR); val &= ~(O_RDONLY | O_WRONLY | O_RDWR);
if ((val & ~O_NONBLOCK) == 0) { if ((val & ~O_NONBLOCK) == 0) {
/* only O_NONBLOCK, all other bits are zero */ /* only O_NONBLOCK, all other bits are zero */
netconn_set_nonblocking(sock->conn, val & O_NONBLOCK); netconn_set_nonblocking(sock->conn, val & O_NONBLOCK);
@ -3493,7 +3484,7 @@ lwip_inet_ntop(int af, const void *src, char *dst, socklen_t size)
switch (af) { switch (af) {
#if LWIP_IPV4 #if LWIP_IPV4
case AF_INET: case AF_INET:
ret = ip4addr_ntoa_r((const ip4_addr_t*)src, dst, size_int); ret = ip4addr_ntoa_r((const ip4_addr_t *)src, dst, size_int);
if (ret == NULL) { if (ret == NULL) {
set_errno(ENOSPC); set_errno(ENOSPC);
} }
@ -3501,7 +3492,7 @@ lwip_inet_ntop(int af, const void *src, char *dst, socklen_t size)
#endif #endif
#if LWIP_IPV6 #if LWIP_IPV6
case AF_INET6: case AF_INET6:
ret = ip6addr_ntoa_r((const ip6_addr_t*)src, dst, size_int); ret = ip6addr_ntoa_r((const ip6_addr_t *)src, dst, size_int);
if (ret == NULL) { if (ret == NULL) {
set_errno(ENOSPC); set_errno(ENOSPC);
} }
@ -3521,12 +3512,11 @@ lwip_inet_pton(int af, const char *src, void *dst)
switch (af) { switch (af) {
#if LWIP_IPV4 #if LWIP_IPV4
case AF_INET: case AF_INET:
err = ip4addr_aton(src, (ip4_addr_t*)dst); err = ip4addr_aton(src, (ip4_addr_t *)dst);
break; break;
#endif #endif
#if LWIP_IPV6 #if LWIP_IPV6
case AF_INET6: case AF_INET6: {
{
/* convert into temporary variable since ip6_addr_t might be larger /* convert into temporary variable since ip6_addr_t might be larger
than in6_addr when scopes are enabled */ than in6_addr when scopes are enabled */
ip6_addr_t addr; ip6_addr_t addr;