mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-10-05 22:29:49 +00:00
Reformat sockets.c using astylerc
This commit is contained in:
parent
fa33db1448
commit
438cfd3f14
@ -117,7 +117,7 @@
|
||||
#endif /* 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)) || \
|
||||
((namelen) == sizeof(struct sockaddr_in6)))
|
||||
@ -226,7 +226,7 @@ union sockaddr_aligned {
|
||||
a socket is closed */
|
||||
struct lwip_socket_multicast_pair {
|
||||
/** the socket */
|
||||
struct lwip_sock* sock;
|
||||
struct lwip_sock *sock;
|
||||
/** the interface address */
|
||||
ip4_addr_t if_addr;
|
||||
/** the group address */
|
||||
@ -245,7 +245,7 @@ static void lwip_socket_drop_registered_memberships(int s);
|
||||
a socket is closed */
|
||||
struct lwip_socket_multicast_mld6_pair {
|
||||
/** the socket */
|
||||
struct lwip_sock* sock;
|
||||
struct lwip_sock *sock;
|
||||
/** the interface index */
|
||||
u8_t if_idx;
|
||||
/** the group address */
|
||||
@ -304,13 +304,13 @@ static void free_socket(struct lwip_sock *sock, int is_tcp);
|
||||
|
||||
#if LWIP_IPV4 && LWIP_IPV6
|
||||
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) {
|
||||
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;
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
@ -385,7 +385,7 @@ tryget_socket_unconn_nouse(int fd)
|
||||
return &sockets[s];
|
||||
}
|
||||
|
||||
struct lwip_sock*
|
||||
struct lwip_sock *
|
||||
lwip_socket_dbg_get_socket(int fd)
|
||||
{
|
||||
return tryget_socket_unconn_nouse(fd);
|
||||
@ -590,7 +590,7 @@ lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen)
|
||||
|
||||
if (newconn->callback) {
|
||||
LOCK_TCPIP_CORE();
|
||||
while(recvevent > 0) {
|
||||
while (recvevent > 0) {
|
||||
recvevent--;
|
||||
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;
|
||||
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. */
|
||||
if (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. */
|
||||
err = netconn_recv_tcp_pbuf_flags(sock->conn, &p, apiflags);
|
||||
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 (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
|
||||
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;
|
||||
|
||||
@ -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.
|
||||
We store the pbuf but hide/free the consumed data: */
|
||||
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 {
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -1028,7 +1028,7 @@ lwip_recvfrom_udp_raw(struct lwip_sock *sock, int flags, struct msghdr *msg, u16
|
||||
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. */
|
||||
buf = sock->lastdata.netbuf;
|
||||
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. */
|
||||
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",
|
||||
err, (void*)buf));
|
||||
err, (void *)buf));
|
||||
|
||||
if (err != ERR_OK) {
|
||||
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
|
||||
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);
|
||||
}
|
||||
|
||||
@ -1080,7 +1080,7 @@ lwip_recvfrom_udp_raw(struct lwip_sock *sock, int flags, struct msghdr *msg, u16
|
||||
/* Initialize flag output */
|
||||
msg->msg_flags = 0;
|
||||
|
||||
if (msg->msg_control){
|
||||
if (msg->msg_control) {
|
||||
u8_t wrote_msg = 0;
|
||||
#if LWIP_NETBUF_RECVINFO
|
||||
/* Check if packet info was recorded */
|
||||
@ -1210,7 +1210,7 @@ lwip_recvmsg(int s, struct msghdr *message, int flags)
|
||||
int i;
|
||||
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: unsupported flags", ((flags == 0) || (flags == MSG_PEEK)),
|
||||
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;);
|
||||
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;);
|
||||
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;);
|
||||
|
||||
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_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;);
|
||||
|
||||
/* initialize chain buffer with destination */
|
||||
@ -1429,7 +1429,7 @@ lwip_sendmsg(int s, const struct msghdr *msg, int flags)
|
||||
/* flatten the IO vectors */
|
||||
size_t offset = 0;
|
||||
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;
|
||||
}
|
||||
#if LWIP_CHECKSUM_ON_COPY
|
||||
@ -1626,7 +1626,7 @@ lwip_socket(int domain, int type, int protocol)
|
||||
break;
|
||||
case SOCK_DGRAM:
|
||||
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);
|
||||
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_socket(%s, SOCK_DGRAM, %d) = ",
|
||||
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);
|
||||
sock = tryget_socket_unconn(i);
|
||||
if (sock != NULL) {
|
||||
void* lastdata = sock->lastdata.pbuf;
|
||||
void *lastdata = sock->lastdata.pbuf;
|
||||
s16_t rcvevent = sock->rcvevent;
|
||||
u16_t sendevent = sock->sendevent;
|
||||
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",
|
||||
maxfdp1, (void *)readset, (void *) writeset, (void *) exceptset,
|
||||
timeout ? (s32_t)timeout->tv_sec : (s32_t)-1,
|
||||
timeout ? (s32_t)timeout->tv_usec : (s32_t)-1));
|
||||
timeout ? (s32_t)timeout->tv_sec : (s32_t) - 1,
|
||||
timeout ? (s32_t)timeout->tv_usec : (s32_t) - 1));
|
||||
|
||||
if ((maxfdp1 < 0) || (maxfdp1 > (FD_SETSIZE + LWIP_SOCKET_OFFSET))) {
|
||||
set_errno(EINVAL);
|
||||
@ -1973,7 +1973,7 @@ lwip_select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
|
||||
/* Wait forever */
|
||||
msectimeout = 0;
|
||||
} 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) {
|
||||
/* Wait 1ms at least (0 means wait forever) */
|
||||
msectimeout = 1;
|
||||
@ -2408,7 +2408,7 @@ lwip_getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen)
|
||||
done_socket(sock);
|
||||
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 */
|
||||
*optlen = LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).optlen;
|
||||
@ -2436,7 +2436,7 @@ lwip_getsockopt_callback(void *arg)
|
||||
{
|
||||
struct lwip_setgetsockopt_data *data;
|
||||
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,
|
||||
#if LWIP_MPU_COMPATIBLE
|
||||
@ -2446,7 +2446,7 @@ lwip_getsockopt_callback(void *arg)
|
||||
#endif /* LWIP_MPU_COMPATIBLE */
|
||||
&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 */
|
||||
|
||||
@ -2464,7 +2464,7 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
|
||||
|
||||
switch (level) {
|
||||
|
||||
/* Level: SOL_SOCKET */
|
||||
/* Level: SOL_SOCKET */
|
||||
case SOL_SOCKET:
|
||||
switch (optname) {
|
||||
|
||||
@ -2476,9 +2476,9 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
|
||||
return ENOPROTOOPT;
|
||||
}
|
||||
if ((sock->conn->pcb.tcp != NULL) && (sock->conn->pcb.tcp->state == LISTEN)) {
|
||||
*(int*)optval = 1;
|
||||
*(int *)optval = 1;
|
||||
} else {
|
||||
*(int*)optval = 0;
|
||||
*(int *)optval = 0;
|
||||
}
|
||||
break;
|
||||
#endif /* LWIP_TCP */
|
||||
@ -2495,25 +2495,25 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
|
||||
return ENOPROTOOPT;
|
||||
}
|
||||
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",
|
||||
s, optname, (*(int*)optval?"on":"off")));
|
||||
s, optname, (*(int *)optval ? "on" : "off")));
|
||||
break;
|
||||
|
||||
case SO_TYPE:
|
||||
LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, *optlen, int);
|
||||
switch (NETCONNTYPE_GROUP(netconn_type(sock->conn))) {
|
||||
case NETCONN_RAW:
|
||||
*(int*)optval = SOCK_RAW;
|
||||
*(int *)optval = SOCK_RAW;
|
||||
break;
|
||||
case NETCONN_TCP:
|
||||
*(int*)optval = SOCK_STREAM;
|
||||
*(int *)optval = SOCK_STREAM;
|
||||
break;
|
||||
case NETCONN_UDP:
|
||||
*(int*)optval = SOCK_DGRAM;
|
||||
*(int *)optval = SOCK_DGRAM;
|
||||
break;
|
||||
default: /* unrecognized socket type */
|
||||
*(int*)optval = netconn_type(sock->conn);
|
||||
*(int *)optval = netconn_type(sock->conn);
|
||||
LWIP_DEBUGF(SOCKETS_DEBUG,
|
||||
("lwip_getsockopt(%d, SOL_SOCKET, SO_TYPE): unrecognized socket type %d\n",
|
||||
s, *(int *)optval));
|
||||
@ -2548,10 +2548,9 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
|
||||
break;
|
||||
#endif /* LWIP_SO_RCVBUF */
|
||||
#if LWIP_SO_LINGER
|
||||
case SO_LINGER:
|
||||
{
|
||||
case SO_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);
|
||||
conn_linger = sock->conn->linger;
|
||||
if (conn_linger >= 0) {
|
||||
@ -2574,7 +2573,7 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
|
||||
return EAFNOSUPPORT;
|
||||
}
|
||||
#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;
|
||||
#endif /* LWIP_UDP*/
|
||||
default:
|
||||
@ -2585,18 +2584,18 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
|
||||
} /* switch (optname) */
|
||||
break;
|
||||
|
||||
/* Level: IPPROTO_IP */
|
||||
/* Level: IPPROTO_IP */
|
||||
case IPPROTO_IP:
|
||||
switch (optname) {
|
||||
case IP_TTL:
|
||||
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",
|
||||
s, *(int *)optval));
|
||||
break;
|
||||
case IP_TOS:
|
||||
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",
|
||||
s, *(int *)optval));
|
||||
break;
|
||||
@ -2607,7 +2606,7 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
|
||||
done_socket(sock);
|
||||
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",
|
||||
s, *(int *)optval));
|
||||
break;
|
||||
@ -2617,16 +2616,16 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
|
||||
done_socket(sock);
|
||||
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",
|
||||
s, *(u32_t *)optval));
|
||||
break;
|
||||
case IP_MULTICAST_LOOP:
|
||||
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, *optlen, u8_t);
|
||||
if ((sock->conn->pcb.udp->flags & UDP_FLAGS_MULTICAST_LOOP) != 0) {
|
||||
*(u8_t*)optval = 1;
|
||||
*(u8_t *)optval = 1;
|
||||
} else {
|
||||
*(u8_t*)optval = 0;
|
||||
*(u8_t *)optval = 0;
|
||||
}
|
||||
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_IP, IP_MULTICAST_LOOP) = %d\n",
|
||||
s, *(int *)optval));
|
||||
@ -2641,7 +2640,7 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
|
||||
break;
|
||||
|
||||
#if LWIP_TCP
|
||||
/* Level: IPPROTO_TCP */
|
||||
/* Level: IPPROTO_TCP */
|
||||
case IPPROTO_TCP:
|
||||
/* Special case: all IPPROTO_TCP option take an int */
|
||||
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) {
|
||||
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",
|
||||
s, (*(int*)optval)?"on":"off") );
|
||||
s, (*(int *)optval) ? "on" : "off") );
|
||||
break;
|
||||
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",
|
||||
s, *(int *)optval));
|
||||
break;
|
||||
|
||||
#if LWIP_TCP_KEEPALIVE
|
||||
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",
|
||||
s, *(int *)optval));
|
||||
break;
|
||||
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",
|
||||
s, *(int *)optval));
|
||||
break;
|
||||
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",
|
||||
s, *(int *)optval));
|
||||
break;
|
||||
@ -2688,12 +2687,12 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
|
||||
#endif /* LWIP_TCP */
|
||||
|
||||
#if LWIP_IPV6
|
||||
/* Level: IPPROTO_IPV6 */
|
||||
/* Level: IPPROTO_IPV6 */
|
||||
case IPPROTO_IPV6:
|
||||
switch (optname) {
|
||||
case IPV6_V6ONLY:
|
||||
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",
|
||||
s, *(int *)optval));
|
||||
break;
|
||||
@ -2718,14 +2717,14 @@ lwip_getsockopt_impl(int s, int level, int optname, void *optval, socklen_t *opt
|
||||
}
|
||||
switch (optname) {
|
||||
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",
|
||||
s, (*(int*)optval)) );
|
||||
s, (*(int *)optval)) );
|
||||
break;
|
||||
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",
|
||||
s, (*(int*)optval)) );
|
||||
s, (*(int *)optval)) );
|
||||
break;
|
||||
default:
|
||||
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;
|
||||
}
|
||||
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_getsockopt(%d, IPPROTO_RAW, IPV6_CHECKSUM) = %d\n",
|
||||
s, (*(int*)optval)) );
|
||||
s, (*(int *)optval)) );
|
||||
break;
|
||||
#endif /* LWIP_IPV6 && LWIP_RAW */
|
||||
default:
|
||||
@ -2813,7 +2812,7 @@ lwip_setsockopt(int s, int level, int optname, const void *optval, socklen_t opt
|
||||
#if LWIP_MPU_COMPATIBLE
|
||||
MEMCPY(LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).optval, optval, optlen);
|
||||
#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 */
|
||||
LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).err = 0;
|
||||
#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);
|
||||
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 */
|
||||
err = LWIP_SETGETSOCKOPT_DATA_VAR_REF(data).err;
|
||||
@ -2849,7 +2848,7 @@ lwip_setsockopt_callback(void *arg)
|
||||
{
|
||||
struct lwip_setgetsockopt_data *data;
|
||||
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,
|
||||
#if LWIP_MPU_COMPATIBLE
|
||||
@ -2859,7 +2858,7 @@ lwip_setsockopt_callback(void *arg)
|
||||
#endif /* LWIP_MPU_COMPATIBLE */
|
||||
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 */
|
||||
|
||||
@ -2877,7 +2876,7 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
|
||||
|
||||
switch (level) {
|
||||
|
||||
/* Level: SOL_SOCKET */
|
||||
/* Level: SOL_SOCKET */
|
||||
case SOL_SOCKET:
|
||||
switch (optname) {
|
||||
|
||||
@ -2895,21 +2894,20 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
|
||||
return ENOPROTOOPT;
|
||||
}
|
||||
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);
|
||||
} else {
|
||||
ip_reset_option(sock->conn->pcb.ip, optname);
|
||||
}
|
||||
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;
|
||||
|
||||
/* SO_TYPE is get-only */
|
||||
/* SO_ERROR is get-only */
|
||||
|
||||
#if LWIP_SO_SNDTIMEO
|
||||
case SO_SNDTIMEO:
|
||||
{
|
||||
case SO_SNDTIMEO: {
|
||||
long ms_long;
|
||||
LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, optlen, LWIP_SO_SNDRCVTIMEO_OPTTYPE);
|
||||
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 */
|
||||
#if LWIP_SO_RCVTIMEO
|
||||
case SO_RCVTIMEO:
|
||||
{
|
||||
case SO_RCVTIMEO: {
|
||||
long ms_long;
|
||||
LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, optlen, LWIP_SO_SNDRCVTIMEO_OPTTYPE);
|
||||
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
|
||||
case SO_RCVBUF:
|
||||
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;
|
||||
#endif /* LWIP_SO_RCVBUF */
|
||||
#if LWIP_SO_LINGER
|
||||
case SO_LINGER:
|
||||
{
|
||||
const struct linger* linger = (const struct linger*)optval;
|
||||
case SO_LINGER: {
|
||||
const struct linger *linger = (const struct linger *)optval;
|
||||
LWIP_SOCKOPT_CHECK_OPTLEN_CONN(sock, optlen, struct linger);
|
||||
if (linger->l_onoff) {
|
||||
int lingersec = linger->l_linger;
|
||||
@ -2972,21 +2968,20 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
|
||||
return EAFNOSUPPORT;
|
||||
}
|
||||
#endif /* LWIP_UDPLITE */
|
||||
if (*(const int*)optval) {
|
||||
if (*(const int *)optval) {
|
||||
udp_set_flags(sock->conn->pcb.udp, UDP_FLAGS_NOCHKSUM);
|
||||
} else {
|
||||
udp_clear_flags(sock->conn->pcb.udp, UDP_FLAGS_NOCHKSUM);
|
||||
}
|
||||
break;
|
||||
#endif /* LWIP_UDP */
|
||||
case SO_BINDTODEVICE:
|
||||
{
|
||||
case SO_BINDTODEVICE: {
|
||||
const struct ifreq *iface;
|
||||
struct netif* n = NULL;
|
||||
struct netif *n = NULL;
|
||||
|
||||
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) {
|
||||
n = netif_find(iface->ifr_name);
|
||||
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
|
||||
case NETCONN_TCP:
|
||||
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) */
|
||||
break;
|
||||
|
||||
/* Level: IPPROTO_IP */
|
||||
/* Level: IPPROTO_IP */
|
||||
case IPPROTO_IP:
|
||||
switch (optname) {
|
||||
case IP_TTL:
|
||||
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",
|
||||
s, sock->conn->pcb.ip->ttl));
|
||||
break;
|
||||
case IP_TOS:
|
||||
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",
|
||||
s, sock->conn->pcb.ip->tos));
|
||||
break;
|
||||
#if LWIP_NETBUF_RECVINFO
|
||||
case IP_PKTINFO:
|
||||
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;
|
||||
} else {
|
||||
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
|
||||
case IP_MULTICAST_TTL:
|
||||
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;
|
||||
case IP_MULTICAST_IF:
|
||||
{
|
||||
case IP_MULTICAST_IF: {
|
||||
ip4_addr_t if_addr;
|
||||
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);
|
||||
}
|
||||
break;
|
||||
case IP_MULTICAST_LOOP:
|
||||
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);
|
||||
} else {
|
||||
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 */
|
||||
#if LWIP_IGMP
|
||||
case IP_ADD_MEMBERSHIP:
|
||||
case IP_DROP_MEMBERSHIP:
|
||||
{
|
||||
case IP_DROP_MEMBERSHIP: {
|
||||
/* If this is a TCP or a RAW socket, ignore these options. */
|
||||
err_t igmp_err;
|
||||
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;
|
||||
|
||||
#if LWIP_TCP
|
||||
/* Level: IPPROTO_TCP */
|
||||
/* Level: IPPROTO_TCP */
|
||||
case IPPROTO_TCP:
|
||||
/* Special case: all IPPROTO_TCP option take an int */
|
||||
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) {
|
||||
case TCP_NODELAY:
|
||||
if (*(const int*)optval) {
|
||||
if (*(const int *)optval) {
|
||||
tcp_nagle_disable(sock->conn->pcb.tcp);
|
||||
} else {
|
||||
tcp_nagle_enable(sock->conn->pcb.tcp);
|
||||
}
|
||||
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;
|
||||
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",
|
||||
s, sock->conn->pcb.tcp->keep_idle));
|
||||
break;
|
||||
|
||||
#if LWIP_TCP_KEEPALIVE
|
||||
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",
|
||||
s, sock->conn->pcb.tcp->keep_idle));
|
||||
break;
|
||||
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",
|
||||
s, sock->conn->pcb.tcp->keep_intvl));
|
||||
break;
|
||||
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",
|
||||
s, sock->conn->pcb.tcp->keep_cnt));
|
||||
break;
|
||||
@ -3163,12 +3155,12 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
|
||||
#endif /* LWIP_TCP*/
|
||||
|
||||
#if LWIP_IPV6
|
||||
/* Level: IPPROTO_IPV6 */
|
||||
/* Level: IPPROTO_IPV6 */
|
||||
case IPPROTO_IPV6:
|
||||
switch (optname) {
|
||||
case IPV6_V6ONLY:
|
||||
LWIP_SOCKOPT_CHECK_OPTLEN_CONN_PCB(sock, optlen, int);
|
||||
if (*(const int*)optval) {
|
||||
if (*(const int *)optval) {
|
||||
netconn_set_ipv6only(sock->conn, 1);
|
||||
} else {
|
||||
netconn_set_ipv6only(sock->conn, 0);
|
||||
@ -3178,8 +3170,7 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
|
||||
break;
|
||||
#if LWIP_IPV6_MLD
|
||||
case IPV6_JOIN_GROUP:
|
||||
case IPV6_LEAVE_GROUP:
|
||||
{
|
||||
case IPV6_LEAVE_GROUP: {
|
||||
/* If this is a TCP or a RAW socket, ignore these options. */
|
||||
err_t mld6_err;
|
||||
struct netif *netif;
|
||||
@ -3233,24 +3224,24 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
|
||||
}
|
||||
switch (optname) {
|
||||
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! */
|
||||
sock->conn->pcb.udp->chksum_len_tx = 8;
|
||||
} 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",
|
||||
s, (*(const int*)optval)) );
|
||||
s, (*(const int *)optval)) );
|
||||
break;
|
||||
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! */
|
||||
sock->conn->pcb.udp->chksum_len_rx = 8;
|
||||
} 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",
|
||||
s, (*(const int*)optval)) );
|
||||
s, (*(const int *)optval)) );
|
||||
break;
|
||||
default:
|
||||
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:
|
||||
/* It should not be possible to disable the checksum generation with ICMPv6
|
||||
* 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);
|
||||
return EINVAL;
|
||||
}
|
||||
@ -3281,7 +3272,7 @@ lwip_setsockopt_impl(int s, int level, int optname, const void *optval, socklen_
|
||||
return EINVAL;
|
||||
} else {
|
||||
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",
|
||||
s, sock->conn->pcb.raw->chksum_reqd));
|
||||
@ -3331,15 +3322,15 @@ lwip_ioctl(int s, long cmd, void *argp)
|
||||
struct netbuf *nb;
|
||||
if (sock->lastdata.netbuf) {
|
||||
nb = sock->lastdata.netbuf;
|
||||
*((int*)argp) = nb->p->tot_len;
|
||||
*((int *)argp) = nb->p->tot_len;
|
||||
} else {
|
||||
struct netbuf *rxbuf;
|
||||
err_t err = netconn_recv_udp_raw_netbuf_flags(sock->conn, &rxbuf, NETCONN_DONTBLOCK);
|
||||
if (err != ERR_OK) {
|
||||
*((int*)argp) = 0;
|
||||
*((int *)argp) = 0;
|
||||
} else {
|
||||
sock->lastdata.netbuf = rxbuf;
|
||||
*((int*)argp) = rxbuf->p->tot_len;
|
||||
*((int *)argp) = rxbuf->p->tot_len;
|
||||
}
|
||||
}
|
||||
done_socket(sock);
|
||||
@ -3362,9 +3353,9 @@ lwip_ioctl(int s, long cmd, void *argp)
|
||||
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);
|
||||
done_socket(sock);
|
||||
return 0;
|
||||
@ -3375,7 +3366,7 @@ lwip_ioctl(int s, long cmd, void *argp)
|
||||
|
||||
case (long)FIONBIO:
|
||||
val = 0;
|
||||
if (argp && *(int*)argp) {
|
||||
if (argp && *(int *)argp) {
|
||||
val = 1;
|
||||
}
|
||||
netconn_set_nonblocking(sock->conn, val);
|
||||
@ -3425,7 +3416,7 @@ lwip_fcntl(int s, int cmd, int val)
|
||||
#endif
|
||||
#if LWIP_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;
|
||||
}
|
||||
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 */
|
||||
ret |= (op_mode == (O_RDONLY|O_WRONLY)) ? O_RDWR : op_mode;
|
||||
ret |= (op_mode == (O_RDONLY | O_WRONLY)) ? O_RDWR : op_mode;
|
||||
|
||||
break;
|
||||
case F_SETFL:
|
||||
/* 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) {
|
||||
/* only O_NONBLOCK, all other bits are zero */
|
||||
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) {
|
||||
#if LWIP_IPV4
|
||||
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) {
|
||||
set_errno(ENOSPC);
|
||||
}
|
||||
@ -3501,7 +3492,7 @@ lwip_inet_ntop(int af, const void *src, char *dst, socklen_t size)
|
||||
#endif
|
||||
#if LWIP_IPV6
|
||||
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) {
|
||||
set_errno(ENOSPC);
|
||||
}
|
||||
@ -3521,12 +3512,11 @@ lwip_inet_pton(int af, const char *src, void *dst)
|
||||
switch (af) {
|
||||
#if LWIP_IPV4
|
||||
case AF_INET:
|
||||
err = ip4addr_aton(src, (ip4_addr_t*)dst);
|
||||
err = ip4addr_aton(src, (ip4_addr_t *)dst);
|
||||
break;
|
||||
#endif
|
||||
#if LWIP_IPV6
|
||||
case AF_INET6:
|
||||
{
|
||||
case AF_INET6: {
|
||||
/* convert into temporary variable since ip6_addr_t might be larger
|
||||
than in6_addr when scopes are enabled */
|
||||
ip6_addr_t addr;
|
||||
|
Loading…
Reference in New Issue
Block a user