Download raw body.
const inpcb
Hi,
Having const struct inpcb * makes argueing about socket lock easier.
We know where read-only access is. I have already converted most
of them, these functions were missed.
ok?
bluhm
Index: netinet/in_pcb.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/in_pcb.c,v
diff -u -p -r1.283 in_pcb.c
--- netinet/in_pcb.c 1 Jan 2024 22:16:51 -0000 1.283
+++ netinet/in_pcb.c 5 Jan 2024 17:28:42 -0000
@@ -133,7 +133,7 @@ uint64_t in_pcblhash(struct inpcbtable *
struct inpcb *in_pcblookup_lock(struct inpcbtable *, struct in_addr, u_int,
struct in_addr, u_int, u_int, int);
-int in_pcbaddrisavail_lock(struct inpcb *, struct sockaddr_in *, int,
+int in_pcbaddrisavail_lock(const struct inpcb *, struct sockaddr_in *, int,
struct proc *, int);
int in_pcbpickport(u_int16_t *, const void *, int, const struct inpcb *,
struct proc *);
@@ -365,8 +365,8 @@ in_pcbbind(struct inpcb *inp, struct mbu
}
int
-in_pcbaddrisavail_lock(struct inpcb *inp, struct sockaddr_in *sin, int wild,
- struct proc *p, int lock)
+in_pcbaddrisavail_lock(const struct inpcb *inp, struct sockaddr_in *sin,
+ int wild, struct proc *p, int lock)
{
struct socket *so = inp->inp_socket;
struct inpcbtable *table = inp->inp_table;
@@ -436,8 +436,8 @@ in_pcbaddrisavail_lock(struct inpcb *inp
}
int
-in_pcbaddrisavail(struct inpcb *inp, struct sockaddr_in *sin, int wild,
- struct proc *p)
+in_pcbaddrisavail(const struct inpcb *inp, struct sockaddr_in *sin,
+ int wild, struct proc *p)
{
return in_pcbaddrisavail_lock(inp, sin, wild, p, IN_PCBLOCK_GRAB);
}
@@ -962,7 +962,7 @@ in_pcbselsrc(struct in_addr *insrc, stru
{
struct ip_moptions *mopts = inp->inp_moptions;
struct route *ro = &inp->inp_route;
- struct in_addr *laddr = &inp->inp_laddr;
+ const struct in_addr *laddr = &inp->inp_laddr;
u_int rtableid = inp->inp_rtableid;
struct sockaddr *ip4_source = NULL;
Index: netinet/in_pcb.h
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet/in_pcb.h,v
diff -u -p -r1.147 in_pcb.h
--- netinet/in_pcb.h 3 Jan 2024 11:07:04 -0000 1.147
+++ netinet/in_pcb.h 5 Jan 2024 17:33:14 -0000
@@ -315,7 +315,7 @@ void in_losing(struct inpcb *);
int in_pcballoc(struct socket *, struct inpcbtable *, int);
int in_pcbbind_locked(struct inpcb *, struct mbuf *, struct proc *);
int in_pcbbind(struct inpcb *, struct mbuf *, struct proc *);
-int in_pcbaddrisavail(struct inpcb *, struct sockaddr_in *, int,
+int in_pcbaddrisavail(const struct inpcb *, struct sockaddr_in *, int,
struct proc *);
int in_pcbconnect(struct inpcb *, struct mbuf *);
void in_pcbdetach(struct inpcb *);
@@ -338,9 +338,9 @@ struct inpcb *
struct inpcb *
in6_pcblookup_listen(struct inpcbtable *, struct in6_addr *, u_int,
struct mbuf *, u_int);
-int in6_pcbaddrisavail_lock(struct inpcb *, struct sockaddr_in6 *, int,
- struct proc *, int);
-int in6_pcbaddrisavail(struct inpcb *, struct sockaddr_in6 *, int,
+int in6_pcbaddrisavail_lock(const struct inpcb *, struct sockaddr_in6 *,
+ int, struct proc *, int);
+int in6_pcbaddrisavail(const struct inpcb *, struct sockaddr_in6 *, int,
struct proc *);
int in6_pcbconnect(struct inpcb *, struct mbuf *);
void in6_setsockaddr(struct inpcb *, struct mbuf *);
@@ -370,7 +370,7 @@ struct rtentry *
void in6_pcbnotify(struct inpcbtable *, struct sockaddr_in6 *,
u_int, const struct sockaddr_in6 *, u_int, u_int, int, void *,
void (*)(struct inpcb *, int));
-int in6_selecthlim(struct inpcb *);
+int in6_selecthlim(const struct inpcb *);
int in_pcbset_rtableid(struct inpcb *, u_int);
void in_pcbset_laddr(struct inpcb *, const struct sockaddr *, u_int);
void in_pcbunset_faddr(struct inpcb *);
Index: netinet6/in6_pcb.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/in6_pcb.c,v
diff -u -p -r1.131 in6_pcb.c
--- netinet6/in6_pcb.c 7 Dec 2023 16:08:30 -0000 1.131
+++ netinet6/in6_pcb.c 5 Jan 2024 17:30:55 -0000
@@ -150,8 +150,8 @@ in6_pcbhash(struct inpcbtable *table, u_
}
int
-in6_pcbaddrisavail_lock(struct inpcb *inp, struct sockaddr_in6 *sin6, int wild,
- struct proc *p, int lock)
+in6_pcbaddrisavail_lock(const struct inpcb *inp, struct sockaddr_in6 *sin6,
+ int wild, struct proc *p, int lock)
{
struct socket *so = inp->inp_socket;
struct inpcbtable *table = inp->inp_table;
@@ -240,8 +240,8 @@ in6_pcbaddrisavail_lock(struct inpcb *in
}
int
-in6_pcbaddrisavail(struct inpcb *inp, struct sockaddr_in6 *sin6, int wild,
- struct proc *p)
+in6_pcbaddrisavail(const struct inpcb *inp, struct sockaddr_in6 *sin6,
+ int wild, struct proc *p)
{
return in6_pcbaddrisavail_lock(inp, sin6, wild, p, IN_PCBLOCK_GRAB);
}
Index: netinet6/in6_src.c
===================================================================
RCS file: /data/mirror/openbsd/cvs/src/sys/netinet6/in6_src.c,v
diff -u -p -r1.90 in6_src.c
--- netinet6/in6_src.c 15 Dec 2023 00:24:56 -0000 1.90
+++ netinet6/in6_src.c 5 Jan 2024 17:31:50 -0000
@@ -422,7 +422,7 @@ in6_selectif(struct sockaddr_in6 *dstsoc
}
int
-in6_selecthlim(struct inpcb *inp)
+in6_selecthlim(const struct inpcb *inp)
{
if (inp && inp->inp_hops >= 0)
return (inp->inp_hops);
const inpcb