forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/net/ppp/pptp.c
....@@ -1,13 +1,8 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * Point-to-Point Tunneling Protocol for Linux
34 *
45 * Authors: Dmitry Kozlov <xeb@mail.ru>
5
- *
6
- * This program is free software; you can redistribute it and/or
7
- * modify it under the terms of the GNU General Public License
8
- * as published by the Free Software Foundation; either version
9
- * 2 of the License, or (at your option) any later version.
10
- *
116 */
127
138 #include <linux/string.h>
....@@ -160,7 +155,7 @@
160155 opt->dst_addr.sin_addr.s_addr,
161156 opt->src_addr.sin_addr.s_addr,
162157 0, 0, IPPROTO_GRE,
163
- RT_TOS(0), 0);
158
+ RT_TOS(0), sk->sk_bound_dev_if);
164159 if (IS_ERR(rt))
165160 goto tx_error;
166161
....@@ -243,7 +238,7 @@
243238 skb_dst_drop(skb);
244239 skb_dst_set(skb, &rt->dst);
245240
246
- nf_reset(skb);
241
+ nf_reset_ct(skb);
247242
248243 skb->ip_summed = CHECKSUM_NONE;
249244 ip_select_ident(net, skb, NULL);
....@@ -363,7 +358,7 @@
363358 po = lookup_chan(htons(header->call_id), iph->saddr);
364359 if (po) {
365360 skb_dst_drop(skb);
366
- nf_reset(skb);
361
+ nf_reset_ct(skb);
367362 return sk_receive_skb(sk_pppox(po), skb, 0);
368363 }
369364 drop:
....@@ -449,7 +444,8 @@
449444 opt->dst_addr.sin_addr.s_addr,
450445 opt->src_addr.sin_addr.s_addr,
451446 0, 0,
452
- IPPROTO_GRE, RT_CONN_FLAGS(sk), 0);
447
+ IPPROTO_GRE, RT_CONN_FLAGS(sk),
448
+ sk->sk_bound_dev_if);
453449 if (IS_ERR(rt)) {
454450 error = -EHOSTUNREACH;
455451 goto end;
....@@ -622,8 +618,6 @@
622618 .getname = pptp_getname,
623619 .listen = sock_no_listen,
624620 .shutdown = sock_no_shutdown,
625
- .setsockopt = sock_no_setsockopt,
626
- .getsockopt = sock_no_getsockopt,
627621 .sendmsg = sock_no_sendmsg,
628622 .recvmsg = sock_no_recvmsg,
629623 .mmap = sock_no_mmap,