# HG changeset patch
# User Maxim Dounin <mdou...@mdounin.ru>
# Date 1748209475 -10800
#      Mon May 26 00:44:35 2025 +0300
# Node ID 4eed7851024b4ca5d77107676025e84324e23c74
# Parent  38f1f374523ff2630e59f6a722fd6f9d7f70ac01
Cleaned up iov_base, msg_name, msg_control type casts.

In old OSes iov_base, msg_name, and msg_control fields were caddr_t
("char *" in case of iov_base), though later were changed to "void *".
In particular, in FreeBSD this change happened around FreeBSD 4.0.

With newer "void *" type no type casts are needed, but with caddr_t
type casts were required in most cases.

Previously, casts were used inconsistently across the code: to caddr_t,
to "void *", or no casts at all in some recent code.  With this change,
casts to "void *" are consistently used in all relevant places.

diff --git a/src/event/ngx_event_udp.c b/src/event/ngx_event_udp.c
--- a/src/event/ngx_event_udp.c
+++ b/src/event/ngx_event_udp.c
@@ -70,14 +70,14 @@ ngx_event_recvmsg(ngx_event_t *ev)
         iov[0].iov_base = (void *) buffer;
         iov[0].iov_len = sizeof(buffer);
 
-        msg.msg_name = &sa;
+        msg.msg_name = (void *) &sa;
         msg.msg_namelen = sizeof(ngx_sockaddr_t);
         msg.msg_iov = iov;
         msg.msg_iovlen = 1;
 
 #if (NGX_HAVE_ADDRINFO_CMSG)
         if (ls->wildcard) {
-            msg.msg_control = &msg_control;
+            msg.msg_control = (void *) &msg_control;
             msg.msg_controllen = sizeof(msg_control);
 
             ngx_memzero(&msg_control, sizeof(msg_control));
@@ -108,7 +108,7 @@ ngx_event_recvmsg(ngx_event_t *ev)
         }
 #endif
 
-        sockaddr = msg.msg_name;
+        sockaddr = (void *) msg.msg_name;
         socklen = msg.msg_namelen;
 
         if (socklen > (socklen_t) sizeof(ngx_sockaddr_t)) {
diff --git a/src/event/quic/ngx_event_quic_output.c 
b/src/event/quic/ngx_event_quic_output.c
--- a/src/event/quic/ngx_event_quic_output.c
+++ b/src/event/quic/ngx_event_quic_output.c
@@ -410,16 +410,16 @@ ngx_quic_send_segments(ngx_connection_t 
     ngx_memzero(&msg, sizeof(struct msghdr));
     ngx_memzero(msg_control, sizeof(msg_control));
 
+    iov.iov_base = (void *) buf;
     iov.iov_len = len;
-    iov.iov_base = buf;
 
     msg.msg_iov = &iov;
     msg.msg_iovlen = 1;
 
-    msg.msg_name = sockaddr;
+    msg.msg_name = (void *) sockaddr;
     msg.msg_namelen = socklen;
 
-    msg.msg_control = msg_control;
+    msg.msg_control = (void *) msg_control;
     msg.msg_controllen = sizeof(msg_control);
 
     cmsg = CMSG_FIRSTHDR(&msg);
@@ -698,19 +698,19 @@ ngx_quic_send(ngx_connection_t *c, u_cha
 
     ngx_memzero(&msg, sizeof(struct msghdr));
 
+    iov.iov_base = (void *) buf;
     iov.iov_len = len;
-    iov.iov_base = buf;
 
     msg.msg_iov = &iov;
     msg.msg_iovlen = 1;
 
-    msg.msg_name = sockaddr;
+    msg.msg_name = (void *) sockaddr;
     msg.msg_namelen = socklen;
 
 #if (NGX_HAVE_ADDRINFO_CMSG)
     if (c->listening && c->listening->wildcard && c->local_sockaddr) {
 
-        msg.msg_control = msg_control;
+        msg.msg_control = (void *) msg_control;
         msg.msg_controllen = sizeof(msg_control);
         ngx_memzero(msg_control, sizeof(msg_control));
 
diff --git a/src/event/quic/ngx_event_quic_udp.c 
b/src/event/quic/ngx_event_quic_udp.c
--- a/src/event/quic/ngx_event_quic_udp.c
+++ b/src/event/quic/ngx_event_quic_udp.c
@@ -68,14 +68,14 @@ ngx_quic_recvmsg(ngx_event_t *ev)
         iov[0].iov_base = (void *) buffer;
         iov[0].iov_len = sizeof(buffer);
 
-        msg.msg_name = &sa;
+        msg.msg_name = (void *) &sa;
         msg.msg_namelen = sizeof(ngx_sockaddr_t);
         msg.msg_iov = iov;
         msg.msg_iovlen = 1;
 
 #if (NGX_HAVE_ADDRINFO_CMSG)
         if (ls->wildcard) {
-            msg.msg_control = &msg_control;
+            msg.msg_control = (void *) &msg_control;
             msg.msg_controllen = sizeof(msg_control);
 
             ngx_memzero(&msg_control, sizeof(msg_control));
@@ -106,7 +106,7 @@ ngx_quic_recvmsg(ngx_event_t *ev)
         }
 #endif
 
-        sockaddr = msg.msg_name;
+        sockaddr = (void *) msg.msg_name;
         socklen = msg.msg_namelen;
 
         if (socklen > (socklen_t) sizeof(ngx_sockaddr_t)) {
diff --git a/src/os/unix/ngx_channel.c b/src/os/unix/ngx_channel.c
--- a/src/os/unix/ngx_channel.c
+++ b/src/os/unix/ngx_channel.c
@@ -31,7 +31,7 @@ ngx_write_channel(ngx_socket_t s, ngx_ch
         msg.msg_controllen = 0;
 
     } else {
-        msg.msg_control = (caddr_t) &cmsg;
+        msg.msg_control = (void *) &cmsg;
         msg.msg_controllen = sizeof(cmsg);
 
         ngx_memzero(&cmsg, sizeof(cmsg));
@@ -68,7 +68,7 @@ ngx_write_channel(ngx_socket_t s, ngx_ch
 
 #endif
 
-    iov[0].iov_base = (char *) ch;
+    iov[0].iov_base = (void *) ch;
     iov[0].iov_len = size;
 
     msg.msg_name = NULL;
@@ -109,7 +109,7 @@ ngx_read_channel(ngx_socket_t s, ngx_cha
     int                 fd;
 #endif
 
-    iov[0].iov_base = (char *) ch;
+    iov[0].iov_base = (void *) ch;
     iov[0].iov_len = size;
 
     msg.msg_name = NULL;
@@ -118,7 +118,7 @@ ngx_read_channel(ngx_socket_t s, ngx_cha
     msg.msg_iovlen = 1;
 
 #if (NGX_HAVE_MSGHDR_MSG_CONTROL)
-    msg.msg_control = (caddr_t) &cmsg;
+    msg.msg_control = (void *) &cmsg;
     msg.msg_controllen = sizeof(cmsg);
 #else
     msg.msg_accrights = (caddr_t) &fd;
diff --git a/src/os/unix/ngx_udp_sendmsg_chain.c 
b/src/os/unix/ngx_udp_sendmsg_chain.c
--- a/src/os/unix/ngx_udp_sendmsg_chain.c
+++ b/src/os/unix/ngx_udp_sendmsg_chain.c
@@ -216,7 +216,7 @@ ngx_sendmsg_vec(ngx_connection_t *c, ngx
     ngx_memzero(&msg, sizeof(struct msghdr));
 
     if (c->socklen) {
-        msg.msg_name = c->sockaddr;
+        msg.msg_name = (void *) c->sockaddr;
         msg.msg_namelen = c->socklen;
     }
 
@@ -226,7 +226,7 @@ ngx_sendmsg_vec(ngx_connection_t *c, ngx
 #if (NGX_HAVE_ADDRINFO_CMSG)
     if (c->listening && c->listening->wildcard && c->local_sockaddr) {
 
-        msg.msg_control = msg_control;
+        msg.msg_control = (void *) msg_control;
         msg.msg_controllen = sizeof(msg_control);
         ngx_memzero(msg_control, sizeof(msg_control));
 

Reply via email to