Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Feb 2025 23:31:04 GMT
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: bafe022b1f31 - main - inpcb: add const qualifiers on functions that select address/port
Message-ID:  <202502172331.51HNV45E067205@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by glebius:

URL: https://cgit.FreeBSD.org/src/commit/?id=bafe022b1f31c6b61aedc1a36a416270038bd971

commit bafe022b1f31c6b61aedc1a36a416270038bd971
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2025-02-17 23:28:52 +0000
Commit:     Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2025-02-17 23:28:52 +0000

    inpcb: add const qualifiers on functions that select address/port
    
    There are several functions that keep database locked and do address
    and port selection before a caller commits the changes to the inpcb.
    Mark the inpcb argument with a good documenting const.
---
 sys/netinet/in_pcb.c     | 11 ++++++-----
 sys/netinet/in_pcb.h     |  6 +++---
 sys/netinet/in_pcb_var.h |  2 +-
 3 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c
index c34b4594c9b9..9d174dce9024 100644
--- a/sys/netinet/in_pcb.c
+++ b/sys/netinet/in_pcb.c
@@ -754,8 +754,9 @@ in_pcbbind(struct inpcb *inp, struct sockaddr_in *sin, int flags,
  * lsa can be NULL for IPv6.
  */
 int
-in_pcb_lport_dest(struct inpcb *inp, struct sockaddr *lsa, u_short *lportp,
-    struct sockaddr *fsa, u_short fport, struct ucred *cred, int lookupflags)
+in_pcb_lport_dest(const struct inpcb *inp, struct sockaddr *lsa,
+    u_short *lportp, struct sockaddr *fsa, u_short fport, struct ucred *cred,
+    int lookupflags)
 {
 	struct inpcbinfo *pcbinfo;
 	struct inpcb *tmpinp;
@@ -1143,8 +1144,8 @@ in_pcbconnect(struct inpcb *inp, struct sockaddr_in *sin, struct ucred *cred)
  * of connect. Take jails into account as well.
  */
 int
-in_pcbladdr(struct inpcb *inp, struct in_addr *faddr, struct in_addr *laddr,
-    struct ucred *cred)
+in_pcbladdr(const struct inpcb *inp, struct in_addr *faddr,
+    struct in_addr *laddr, struct ucred *cred)
 {
 	struct ifaddr *ifa;
 	struct sockaddr *sa;
@@ -1360,7 +1361,7 @@ done:
  * and port. These are not updated in the error case.
  */
 int
-in_pcbconnect_setup(struct inpcb *inp, struct sockaddr_in *sin,
+in_pcbconnect_setup(const struct inpcb *inp, struct sockaddr_in *sin,
     in_addr_t *laddrp, u_short *lportp, in_addr_t *faddrp, u_short *fportp,
     struct ucred *cred)
 {
diff --git a/sys/netinet/in_pcb.h b/sys/netinet/in_pcb.h
index dae34e94d6f9..b0c64cfbd7ea 100644
--- a/sys/netinet/in_pcb.h
+++ b/sys/netinet/in_pcb.h
@@ -645,13 +645,13 @@ int	in_pcbbind(struct inpcb *, struct sockaddr_in *, int, struct ucred *);
 int	in_pcbbind_setup(struct inpcb *, struct sockaddr_in *, in_addr_t *,
 	    u_short *, int, struct ucred *);
 int	in_pcbconnect(struct inpcb *, struct sockaddr_in *, struct ucred *);
-int	in_pcbconnect_setup(struct inpcb *, struct sockaddr_in *, in_addr_t *,
-	    u_short *, in_addr_t *, u_short *, struct ucred *);
+int	in_pcbconnect_setup(const struct inpcb *, struct sockaddr_in *,
+	    in_addr_t *, u_short *, in_addr_t *, u_short *, struct ucred *);
 void	in_pcbdisconnect(struct inpcb *);
 void	in_pcbdrop(struct inpcb *);
 void	in_pcbfree(struct inpcb *);
 int	in_pcbinshash(struct inpcb *);
-int	in_pcbladdr(struct inpcb *, struct in_addr *, struct in_addr *,
+int	in_pcbladdr(const struct inpcb *, struct in_addr *, struct in_addr *,
 	    struct ucred *);
 int	in_pcblbgroup_numa(struct inpcb *, int arg);
 void	in_pcblisten(struct inpcb *);
diff --git a/sys/netinet/in_pcb_var.h b/sys/netinet/in_pcb_var.h
index 1101199f6b64..e2b0ca386e7f 100644
--- a/sys/netinet/in_pcb_var.h
+++ b/sys/netinet/in_pcb_var.h
@@ -50,7 +50,7 @@ int	inp_trylock(struct inpcb *inp, const inp_lookup_t lock);
 bool	inp_smr_lock(struct inpcb *, const inp_lookup_t);
 int	in_pcb_lport(struct inpcb *, struct in_addr *, u_short *,
 	    struct ucred *, int);
-int	in_pcb_lport_dest(struct inpcb *inp, struct sockaddr *lsa,
+int	in_pcb_lport_dest(const struct inpcb *inp, struct sockaddr *lsa,
             u_short *lportp, struct sockaddr *fsa, u_short fport,
             struct ucred *cred, int lookupflags);
 struct inpcb *in_pcblookup_local(struct inpcbinfo *, struct in_addr, u_short,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202502172331.51HNV45E067205>