1From ec8dcc7faf13c57f5f6d785e4429818f1239a058 Mon Sep 17 00:00:00 2001
2From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
3Date: Sun, 8 Jan 2023 20:50:18 +0100
4Subject: [PATCH] drop decnet
5
6Drop decnet as it has been removed since kernel 6.1 and
7https://github.com/torvalds/linux/commit/1202cdd665315c525b5237e96e0bedc76d7e754f
8resulting in the following build failure:
9
10net/proto-decnet.c:5:10: fatal error: linux/dn.h: No such file or directory
11    5 | #include <linux/dn.h>
12      |          ^~~~~~~~~~~~
13
14Fixes:
15 - http://autobuild.buildroot.org/results/47e0a5e0b6fcf33ab4f9848d5d8c2be9e5283950
16
17Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
18[Upstream status: https://github.com/kernelslacker/trinity/pull/41]
19---
20 include/net.h      |  1 -
21 net/proto-decnet.c | 59 ----------------------------------------------
22 net/proto-unix.c   |  1 -
23 net/protocols.c    |  1 -
24 4 files changed, 62 deletions(-)
25 delete mode 100644 net/proto-decnet.c
26
27diff --git a/include/net.h b/include/net.h
28index 99d55363..791e8090 100644
29--- a/include/net.h
30+++ b/include/net.h
31@@ -80,7 +80,6 @@ extern const struct netproto proto_atmpvc;
32 extern const struct netproto proto_atmsvc;
33 extern const struct netproto proto_x25;
34 extern const struct netproto proto_rose;
35-extern const struct netproto proto_decnet;
36 extern const struct netproto proto_llc;
37 extern const struct netproto proto_netlink;
38 extern const struct netproto proto_packet;
39diff --git a/net/proto-decnet.c b/net/proto-decnet.c
40deleted file mode 100644
41index 7711cf00..00000000
42--- a/net/proto-decnet.c
43+++ /dev/null
44@@ -1,59 +0,0 @@
45-#include <sys/types.h>
46-#include <sys/socket.h>
47-#include <sys/un.h>
48-#include <netinet/in.h>
49-#include <linux/dn.h>
50-#include <stdlib.h>
51-#include "net.h"
52-#include "random.h"
53-#include "utils.h"	// RAND_ARRAY
54-#include "compat.h"
55-
56-static void decnet_gen_sockaddr(struct sockaddr **addr, socklen_t *addrlen)
57-{
58-	struct sockaddr_dn *dn;
59-	unsigned int i;
60-
61-	dn = zmalloc(sizeof(struct sockaddr_dn));
62-
63-	dn->sdn_family = PF_DECnet;
64-	dn->sdn_flags = rnd();
65-	dn->sdn_objnum = rnd();
66-	dn->sdn_objnamel = rnd() % 16;
67-	for (i = 0; i < dn->sdn_objnamel; i++)
68-		dn->sdn_objname[i] = rnd();
69-	dn->sdn_add.a_len = RAND_BOOL();
70-	dn->sdn_add.a_addr[0] = rnd();
71-	dn->sdn_add.a_addr[1] = rnd();
72-	*addr = (struct sockaddr *) dn;
73-	*addrlen = sizeof(struct sockaddr_dn);
74-}
75-
76-static const unsigned int decnet_opts[] = {
77-	SO_CONDATA, SO_CONACCESS, SO_PROXYUSR, SO_LINKINFO,
78-	DSO_CONDATA, DSO_DISDATA, DSO_CONACCESS, DSO_ACCEPTMODE,
79-	DSO_CONACCEPT, DSO_CONREJECT, DSO_LINKINFO, DSO_STREAM,
80-	DSO_SEQPACKET, DSO_MAXWINDOW, DSO_NODELAY, DSO_CORK,
81-	DSO_SERVICES, DSO_INFO
82-};
83-
84-static void decnet_setsockopt(struct sockopt *so, __unused__ struct socket_triplet *triplet)
85-{
86-	so->level = SOL_DECNET;
87-	so->optname = RAND_ARRAY(decnet_opts);
88-
89-	// TODO: set optlen correctly
90-}
91-
92-static struct socket_triplet decnet_triplets[] = {
93-	{ .family = PF_DECnet, .protocol = DNPROTO_NSP, .type = SOCK_SEQPACKET },
94-	{ .family = PF_DECnet, .protocol = DNPROTO_NSP, .type = SOCK_STREAM },
95-};
96-
97-const struct netproto proto_decnet = {
98-	.name = "decnet",
99-	.setsockopt = decnet_setsockopt,
100-	.gen_sockaddr = decnet_gen_sockaddr,
101-	.valid_triplets = decnet_triplets,
102-	.nr_triplets = ARRAY_SIZE(decnet_triplets),
103-};
104diff --git a/net/proto-unix.c b/net/proto-unix.c
105index f7427a22..119c1429 100644
106--- a/net/proto-unix.c
107+++ b/net/proto-unix.c
108@@ -2,7 +2,6 @@
109 #include <sys/socket.h>
110 #include <sys/un.h>
111 #include <netinet/in.h>
112-#include <linux/dn.h>
113 #include <stdlib.h>
114 #include "net.h"
115 #include "random.h"
116diff --git a/net/protocols.c b/net/protocols.c
117index ea64d5f5..278f08b5 100644
118--- a/net/protocols.c
119+++ b/net/protocols.c
120@@ -18,7 +18,6 @@ const struct protoptr net_protocols[TRINITY_PF_MAX] = {
121 #ifdef USE_IPV6
122 	[PF_INET6] = { .proto = &proto_inet6 },
123 #endif
124-	[PF_DECnet] = { .proto = &proto_decnet },
125 	[PF_PACKET] = { .proto = &proto_packet },
126 #ifdef USE_NETECONET
127 	[PF_ECONET] = { .proto = &proto_econet },
128--
1292.39.0
130
131