Page MenuHomeFreeBSD

D59018.id184535.diff
No OneTemporary

D59018.id184535.diff

diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -989,6 +989,13 @@
struct socket *so;
int error;
+#ifdef COMPAT_FREEBSD15
+ /* divert(4) historically abuses PF_INET. Use PF_DIVERT instead. */
+ if (__predict_false(dom == PF_INET && type == SOCK_RAW &&
+ proto == __IPPROTO_DIVERT))
+ dom = PF_DIVERT;
+#endif
+
prp = pffindproto(dom, type, proto);
if (prp == NULL) {
/* No support for domain. */
diff --git a/sys/netinet/in.h b/sys/netinet/in.h
--- a/sys/netinet/in.h
+++ b/sys/netinet/in.h
@@ -253,6 +253,8 @@
/* last return value of *_input(), meaning "all job for this pkt is done". */
#define IPPROTO_DONE 257
+#define __IPPROTO_DIVERT 258 /* Deprecated, use PF_DIVERT */
+
/* Only used internally, so can be outside the range of valid IP protocols. */
#define IPPROTO_SEND 259 /* SeND pseudo-protocol */

File Metadata

Mime Type
text/plain
Expires
Fri, Aug 28, 6:23 AM (7 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37151007
Default Alt Text
D59018.id184535.diff (915 B)

Event Timeline