summaryrefslogtreecommitdiff
path: root/openwrt/package/ppp/patches/106-debian_pppoatm_fix_mtu.patch
blob: ef28b5cf2b16b3fdf533594659440716769c30ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
diff -ruNp ppp-2.4.3.orig/pppd/plugins/pppoatm/pppoatm.c ppp-2.4.3/pppd/plugins/pppoatm/pppoatm.c
--- ppp-2.4.3.orig/pppd/plugins/pppoatm/pppoatm.c	2005-05-04 02:00:28.000000000 +0200
+++ ppp-2.4.3/pppd/plugins/pppoatm/pppoatm.c	2005-05-04 01:59:11.000000000 +0200
@@ -183,8 +183,11 @@ static void send_config_pppoa(int mtu,
 	int sock;
 	struct ifreq ifr;
 
-	if (mtu > pppoatm_max_mtu)
-		error("Couldn't increase MTU to %d", mtu);
+	if (pppoatm_max_mtu && mtu > pppoatm_max_mtu) {
+		warn("Couldn't increase MTU to %d. Using %d",
+			mtu, pppoatm_max_mtu);
+		mtu = pppoatm_max_mtu;
+	}
 
 	sock = socket(AF_INET, SOCK_DGRAM, 0);
 	if (sock < 0)
@@ -202,8 +205,11 @@ static void recv_config_pppoa(int mru,
 			      int pcomp,
 			      int accomp)
 {
-	if (mru > pppoatm_max_mru)
-		error("Couldn't increase MRU to %d", mru);
+	if (pppoatm_max_mru && mru > pppoatm_max_mru) {
+		warn("Couldn't increase MRU to %d. Using %d",
+			mru, pppoatm_max_mru);
+		mru = pppoatm_max_mru;
+	}
 }
 
 void plugin_init(void)