diff --git a/include/nuttx/net/net.h b/include/nuttx/net/net.h index 2fcdf612aeb..a319b5d345e 100644 --- a/include/nuttx/net/net.h +++ b/include/nuttx/net/net.h @@ -162,7 +162,7 @@ struct sock_intf_s CODE int (*si_poll)(FAR struct socket *psock, FAR struct pollfd *fds, bool setup); CODE ssize_t (*si_sendmsg)(FAR struct socket *psock, - FAR struct msghdr *msg, int flags); + FAR const struct msghdr *msg, int flags); CODE ssize_t (*si_recvmsg)(FAR struct socket *psock, FAR struct msghdr *msg, int flags); CODE int (*si_close)(FAR struct socket *psock); @@ -880,7 +880,7 @@ int psock_connect(FAR struct socket *psock, FAR const struct sockaddr *addr, * ****************************************************************************/ -ssize_t psock_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, +ssize_t psock_sendmsg(FAR struct socket *psock, FAR const struct msghdr *msg, int flags); /**************************************************************************** diff --git a/include/sys/socket.h b/include/sys/socket.h index ead113a62ef..3cdb3ce75b8 100644 --- a/include/sys/socket.h +++ b/include/sys/socket.h @@ -412,7 +412,7 @@ static inline FAR struct cmsghdr *__cmsg_nxthdr(FAR void *__ctl, return __ptr; } -static inline FAR struct cmsghdr *cmsg_nxthdr(FAR struct msghdr *__msg, +static inline FAR struct cmsghdr *cmsg_nxthdr(FAR const struct msghdr *__msg, FAR struct cmsghdr *__cmsg) { return __cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg); @@ -462,7 +462,7 @@ int getpeername(int sockfd, FAR struct sockaddr *addr, FAR socklen_t *addrlen); ssize_t recvmsg(int sockfd, FAR struct msghdr *msg, int flags); -ssize_t sendmsg(int sockfd, FAR struct msghdr *msg, int flags); +ssize_t sendmsg(int sockfd, FAR const struct msghdr *msg, int flags); #if CONFIG_FORTIFY_SOURCE > 0 fortify_function(send) ssize_t send(int sockfd, FAR const void *buf, diff --git a/net/bluetooth/bluetooth.h b/net/bluetooth/bluetooth.h index c45c4333238..1494b5b80d6 100644 --- a/net/bluetooth/bluetooth.h +++ b/net/bluetooth/bluetooth.h @@ -387,8 +387,8 @@ void bluetooth_poll(FAR struct net_driver_s *dev, * ****************************************************************************/ -ssize_t bluetooth_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, - int flags); +ssize_t bluetooth_sendmsg(FAR struct socket *psock, + FAR const struct msghdr *msg, int flags); /**************************************************************************** * Name: bluetooth_container_initialize diff --git a/net/bluetooth/bluetooth_sendmsg.c b/net/bluetooth/bluetooth_sendmsg.c index da4df8cc5b4..8259d590018 100644 --- a/net/bluetooth/bluetooth_sendmsg.c +++ b/net/bluetooth/bluetooth_sendmsg.c @@ -549,8 +549,8 @@ static ssize_t bluetooth_send(FAR struct socket *psock, FAR const void *buf, * ****************************************************************************/ -ssize_t bluetooth_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, - int flags) +ssize_t bluetooth_sendmsg(FAR struct socket *psock, + FAR const struct msghdr *msg, int flags) { FAR const void *buf = msg->msg_iov->iov_base; size_t len = msg->msg_iov->iov_len; diff --git a/net/can/can.h b/net/can/can.h index 3a7a50165d0..5ab14a0e50d 100644 --- a/net/can/can.h +++ b/net/can/can.h @@ -354,7 +354,7 @@ int psock_can_cansend(FAR struct socket *psock); * ****************************************************************************/ -ssize_t can_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, +ssize_t can_sendmsg(FAR struct socket *psock, FAR const struct msghdr *msg, int flags); /**************************************************************************** diff --git a/net/can/can_sendmsg.c b/net/can/can_sendmsg.c index 1f3054618a7..023b653e258 100644 --- a/net/can/can_sendmsg.c +++ b/net/can/can_sendmsg.c @@ -166,7 +166,7 @@ end_wait: * ****************************************************************************/ -ssize_t can_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, +ssize_t can_sendmsg(FAR struct socket *psock, FAR const struct msghdr *msg, int flags) { FAR struct net_driver_s *dev; diff --git a/net/icmp/icmp.h b/net/icmp/icmp.h index eaf82f7abfb..0d615ac0f46 100644 --- a/net/icmp/icmp.h +++ b/net/icmp/icmp.h @@ -315,7 +315,7 @@ void icmp_poll(FAR struct net_driver_s *dev, FAR struct icmp_conn_s *conn); ****************************************************************************/ #ifdef CONFIG_NET_ICMP_SOCKET -ssize_t icmp_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, +ssize_t icmp_sendmsg(FAR struct socket *psock, FAR const struct msghdr *msg, int flags); #endif diff --git a/net/icmp/icmp_sendmsg.c b/net/icmp/icmp_sendmsg.c index 0aaeacdf438..14cfd15cecb 100644 --- a/net/icmp/icmp_sendmsg.c +++ b/net/icmp/icmp_sendmsg.c @@ -265,7 +265,7 @@ end_wait: * ****************************************************************************/ -ssize_t icmp_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, +ssize_t icmp_sendmsg(FAR struct socket *psock, FAR const struct msghdr *msg, int flags) { FAR const void *buf = msg->msg_iov->iov_base; diff --git a/net/icmpv6/icmpv6.h b/net/icmpv6/icmpv6.h index 6c3b6eb6763..ef2f24579e8 100644 --- a/net/icmpv6/icmpv6.h +++ b/net/icmpv6/icmpv6.h @@ -663,8 +663,8 @@ int icmpv6_foreach(icmpv6_callback_t callback, FAR void *arg); ****************************************************************************/ #ifdef CONFIG_NET_ICMPv6_SOCKET -ssize_t icmpv6_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, - int flags); +ssize_t icmpv6_sendmsg(FAR struct socket *psock, + FAR const struct msghdr *msg, int flags); #endif /**************************************************************************** diff --git a/net/icmpv6/icmpv6_sendmsg.c b/net/icmpv6/icmpv6_sendmsg.c index 60e678f220f..0250e9ac5a4 100644 --- a/net/icmpv6/icmpv6_sendmsg.c +++ b/net/icmpv6/icmpv6_sendmsg.c @@ -262,8 +262,8 @@ end_wait: * ****************************************************************************/ -ssize_t icmpv6_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, - int flags) +ssize_t icmpv6_sendmsg(FAR struct socket *psock, + FAR const struct msghdr *msg, int flags) { FAR const void *buf = msg->msg_iov->iov_base; size_t len = msg->msg_iov->iov_len; diff --git a/net/ieee802154/ieee802154.h b/net/ieee802154/ieee802154.h index 2864ba7989c..bbb648354a4 100644 --- a/net/ieee802154/ieee802154.h +++ b/net/ieee802154/ieee802154.h @@ -401,8 +401,8 @@ void ieee802154_poll(FAR struct net_driver_s *dev, * ****************************************************************************/ -ssize_t ieee802154_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, - int flags); +ssize_t ieee802154_sendmsg(FAR struct socket *psock, + FAR const struct msghdr *msg, int flags); /**************************************************************************** * Name: ieee802154_container_initialize diff --git a/net/ieee802154/ieee802154_sendmsg.c b/net/ieee802154/ieee802154_sendmsg.c index 7da627aea14..c9c83673570 100644 --- a/net/ieee802154/ieee802154_sendmsg.c +++ b/net/ieee802154/ieee802154_sendmsg.c @@ -627,8 +627,8 @@ static ssize_t ieee802154_send(FAR struct socket *psock, FAR const void *buf, * ****************************************************************************/ -ssize_t ieee802154_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, - int flags) +ssize_t ieee802154_sendmsg(FAR struct socket *psock, + FAR const struct msghdr *msg, int flags) { FAR const void *buf = msg->msg_iov->iov_base; size_t len = msg->msg_iov->iov_len; diff --git a/net/inet/inet_sockif.c b/net/inet/inet_sockif.c index 208fa3f2c36..b63df5bc599 100644 --- a/net/inet/inet_sockif.c +++ b/net/inet/inet_sockif.c @@ -95,7 +95,7 @@ static ssize_t inet_sendto(FAR struct socket *psock, FAR const void *buf, FAR const struct sockaddr *to, socklen_t tolen); static ssize_t inet_sendmsg(FAR struct socket *psock, - FAR struct msghdr *msg, int flags); + FAR const struct msghdr *msg, int flags); static ssize_t inet_recvmsg(FAR struct socket *psock, FAR struct msghdr *msg, int flags); static int inet_ioctl(FAR struct socket *psock, @@ -1867,7 +1867,7 @@ static ssize_t inet_sendto(FAR struct socket *psock, FAR const void *buf, ****************************************************************************/ static ssize_t inet_sendmsg(FAR struct socket *psock, - FAR struct msghdr *msg, int flags) + FAR const struct msghdr *msg, int flags) { FAR void *buf = msg->msg_iov->iov_base; size_t len = msg->msg_iov->iov_len; diff --git a/net/local/local.h b/net/local/local.h index bdeb14bd4c3..3b79a39f224 100644 --- a/net/local/local.h +++ b/net/local/local.h @@ -473,7 +473,7 @@ int local_accept(FAR struct socket *psock, FAR struct sockaddr *addr, * ****************************************************************************/ -ssize_t local_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, +ssize_t local_sendmsg(FAR struct socket *psock, FAR const struct msghdr *msg, int flags); /**************************************************************************** diff --git a/net/local/local_sendmsg.c b/net/local/local_sendmsg.c index c74a2ec5435..b4a5d25301a 100644 --- a/net/local/local_sendmsg.c +++ b/net/local/local_sendmsg.c @@ -71,7 +71,7 @@ static void local_freectl(FAR struct local_conn_s *conn, int count) } static int local_sendctl(FAR struct local_conn_s *conn, - FAR struct msghdr *msg) + FAR const struct msghdr *msg) { FAR struct local_conn_s *peer; FAR struct file *filep; @@ -410,7 +410,7 @@ errout_with_lock: * ****************************************************************************/ -ssize_t local_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, +ssize_t local_sendmsg(FAR struct socket *psock, FAR const struct msghdr *msg, int flags) { FAR const struct sockaddr *to = msg->msg_name; diff --git a/net/netlink/netlink_sockif.c b/net/netlink/netlink_sockif.c index 1366914a021..eb17bc19191 100644 --- a/net/netlink/netlink_sockif.c +++ b/net/netlink/netlink_sockif.c @@ -67,7 +67,7 @@ static int netlink_connect(FAR struct socket *psock, static int netlink_poll(FAR struct socket *psock, FAR struct pollfd *fds, bool setup); static ssize_t netlink_sendmsg(FAR struct socket *psock, - FAR struct msghdr *msg, int flags); + FAR const struct msghdr *msg, int flags); static ssize_t netlink_recvmsg(FAR struct socket *psock, FAR struct msghdr *msg, int flags); static int netlink_close(FAR struct socket *psock); @@ -575,7 +575,7 @@ static int netlink_poll(FAR struct socket *psock, FAR struct pollfd *fds, ****************************************************************************/ static ssize_t netlink_sendmsg(FAR struct socket *psock, - FAR struct msghdr *msg, int flags) + FAR const struct msghdr *msg, int flags) { FAR const void *buf = msg->msg_iov->iov_base; FAR const struct sockaddr *to = msg->msg_name; diff --git a/net/pkt/pkt.h b/net/pkt/pkt.h index 3753d110093..63d946dafa2 100644 --- a/net/pkt/pkt.h +++ b/net/pkt/pkt.h @@ -397,7 +397,7 @@ int pkt_pollteardown(FAR struct socket *psock, FAR struct pollfd *fds); * ****************************************************************************/ -ssize_t pkt_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, +ssize_t pkt_sendmsg(FAR struct socket *psock, FAR const struct msghdr *msg, int flags); #ifdef CONFIG_NET_PKTPROTO_OPTIONS diff --git a/net/pkt/pkt_sendmsg_unbuffered.c b/net/pkt/pkt_sendmsg_unbuffered.c index 039a4a99410..b6ddfa56acc 100644 --- a/net/pkt/pkt_sendmsg_unbuffered.c +++ b/net/pkt/pkt_sendmsg_unbuffered.c @@ -180,7 +180,7 @@ end_wait: * ****************************************************************************/ -ssize_t pkt_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, +ssize_t pkt_sendmsg(FAR struct socket *psock, FAR const struct msghdr *msg, int flags) { FAR const void *buf = msg->msg_iov->iov_base; diff --git a/net/rpmsg/rpmsg_sockif.c b/net/rpmsg/rpmsg_sockif.c index 502053921be..0386ffc5408 100644 --- a/net/rpmsg/rpmsg_sockif.c +++ b/net/rpmsg/rpmsg_sockif.c @@ -171,7 +171,8 @@ static int rpmsg_socket_accept(FAR struct socket *psock, static int rpmsg_socket_poll(FAR struct socket *psock, FAR struct pollfd *fds, bool setup); static ssize_t rpmsg_socket_sendmsg(FAR struct socket *psock, - FAR struct msghdr *msg, int flags); + FAR const struct msghdr *msg, + int flags); static ssize_t rpmsg_socket_recvmsg(FAR struct socket *psock, FAR struct msghdr *msg, int flags); static int rpmsg_socket_close(FAR struct socket *psock); @@ -1182,7 +1183,7 @@ static ssize_t rpmsg_socket_send_single(FAR struct socket *psock, } static ssize_t rpmsg_socket_sendmsg(FAR struct socket *psock, - FAR struct msghdr *msg, int flags) + FAR const struct msghdr *msg, int flags) { FAR struct rpmsg_socket_conn_s *conn = psock->s_conn; FAR const struct iovec *buf = msg->msg_iov; diff --git a/net/socket/sendmsg.c b/net/socket/sendmsg.c index 7cf4b23c8aa..b20f9409327 100644 --- a/net/socket/sendmsg.c +++ b/net/socket/sendmsg.c @@ -69,7 +69,7 @@ * ****************************************************************************/ -ssize_t psock_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, +ssize_t psock_sendmsg(FAR struct socket *psock, FAR const struct msghdr *msg, int flags) { /* Verify that non-NULL pointers were passed */ @@ -140,7 +140,7 @@ ssize_t psock_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, * ****************************************************************************/ -ssize_t sendmsg(int sockfd, FAR struct msghdr *msg, int flags) +ssize_t sendmsg(int sockfd, FAR const struct msghdr *msg, int flags) { FAR struct socket *psock; FAR struct file *filep; diff --git a/net/usrsock/usrsock.h b/net/usrsock/usrsock.h index 9f9e05f78a8..e7f2e8e09ff 100644 --- a/net/usrsock/usrsock.h +++ b/net/usrsock/usrsock.h @@ -495,8 +495,8 @@ int usrsock_poll(FAR struct socket *psock, FAR struct pollfd *fds, * ****************************************************************************/ -ssize_t usrsock_sendmsg(FAR struct socket *psock, FAR struct msghdr *msg, - int flags); +ssize_t usrsock_sendmsg(FAR struct socket *psock, + FAR const struct msghdr *msg, int flags); /**************************************************************************** * Name: usrsock_recvmsg diff --git a/net/usrsock/usrsock_sendmsg.c b/net/usrsock/usrsock_sendmsg.c index 084806c9318..dfa8f9dc4ea 100644 --- a/net/usrsock/usrsock_sendmsg.c +++ b/net/usrsock/usrsock_sendmsg.c @@ -136,18 +136,19 @@ static uint32_t sendto_event(FAR struct net_driver_s *dev, ****************************************************************************/ static int do_sendto_request(FAR struct usrsock_conn_s *conn, - FAR struct msghdr *msg, int flags) + FAR const struct msghdr *msg, int flags) { struct usrsock_request_sendto_s req = { }; struct iovec bufs[2 + msg->msg_iovlen]; + socklen_t msg_namelen = msg->msg_namelen; int i; - if (msg->msg_namelen > UINT16_MAX) + if (msg_namelen > UINT16_MAX) { - msg->msg_namelen = UINT16_MAX; + msg_namelen = UINT16_MAX; } /* Prepare request for daemon to read. */ @@ -155,7 +156,7 @@ static int do_sendto_request(FAR struct usrsock_conn_s *conn, req.head.reqid = USRSOCK_REQUEST_SENDTO; req.usockid = conn->usockid; req.flags = flags; - req.addrlen = msg->msg_namelen; + req.addrlen = msg_namelen; for (i = 0; i < msg->msg_iovlen; i++) { @@ -170,7 +171,7 @@ static int do_sendto_request(FAR struct usrsock_conn_s *conn, bufs[0].iov_base = (FAR void *)&req; bufs[0].iov_len = sizeof(req); bufs[1].iov_base = msg->msg_name; - bufs[1].iov_len = msg->msg_namelen; + bufs[1].iov_len = msg_namelen; memcpy(&bufs[2], msg->msg_iov, sizeof(struct iovec) * msg->msg_iovlen); @@ -202,7 +203,7 @@ static int do_sendto_request(FAR struct usrsock_conn_s *conn, ****************************************************************************/ ssize_t usrsock_sendmsg(FAR struct socket *psock, - FAR struct msghdr *msg, int flags) + FAR const struct msghdr *msg, int flags) { FAR struct usrsock_conn_s *conn = psock->s_conn; struct usrsock_reqstate_s state = diff --git a/syscall/syscall.csv b/syscall/syscall.csv index 3fe9675905d..f4a403fafec 100644 --- a/syscall/syscall.csv +++ b/syscall/syscall.csv @@ -155,7 +155,7 @@ "select","sys/select.h","","int","int","FAR fd_set *","FAR fd_set *","FAR fd_set *","FAR struct timeval *" "send","sys/socket.h","defined(CONFIG_NET)","ssize_t","int","FAR const void *","size_t","int" "sendfile","sys/sendfile.h","","ssize_t","int","int","FAR off_t *","size_t" -"sendmsg","sys/socket.h","defined(CONFIG_NET)","ssize_t","int","FAR struct msghdr *","int" +"sendmsg","sys/socket.h","defined(CONFIG_NET)","ssize_t","int","FAR const struct msghdr *","int" "sendto","sys/socket.h","defined(CONFIG_NET)","ssize_t","int","FAR const void *","size_t","int","FAR const struct sockaddr *","socklen_t" "setegid","unistd.h","defined(CONFIG_SCHED_USER_IDENTITY)","int","gid_t" "setenv","stdlib.h","!defined(CONFIG_DISABLE_ENVIRON)","int","FAR const char *","FAR const char *","int"