[patch 11/14] fix handling of the mtu option in the pppoatm plugin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



While debugging the PPPoATM issues of a Debian user, I determined that
when the error() function is called by a send_config function like
send_config_pppoa of the pppoatm.c plugin then lcp_lowerup() exits
earlier and does not raise the lower layer, and pppd just hangs without
sending any LCP request.
I do not understand who is wrong and should bail out, but I'm attaching
the patch used by Red Hat to work around this bug (I see that the PPPoE
plugin alrady uses warn() for this case).

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)

-- 
ciao,
Marco

-
To unsubscribe from this list: send the line "unsubscribe linux-ppp" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Audio Users]     [Linux for Hams]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Fedora Users]

  Powered by Linux