[nginx] Cleaned up iov_base, msg_name, msg_control type casts.

Maxim Dounin mdounin at mdounin.ru
Wed Jun 4 23:45:29 UTC 2025


details:   http://freenginx.org/hg/nginx/rev/c106f096c950
branches:  
changeset: 9370:c106f096c950
user:      Maxim Dounin <mdounin at mdounin.ru>
date:      Thu Jun 05 02:37:30 2025 +0300
description:
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.

diffstat:

 src/event/ngx_event_udp.c              |   6 +++---
 src/event/quic/ngx_event_quic_output.c |  12 ++++++------
 src/event/quic/ngx_event_quic_udp.c    |   6 +++---
 src/os/unix/ngx_channel.c              |   8 ++++----
 src/os/unix/ngx_udp_sendmsg_chain.c    |   4 ++--
 5 files changed, 18 insertions(+), 18 deletions(-)

diffs (164 lines):

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));
 


More information about the nginx-devel mailing list