summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2006-12-11 16:31:36 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2006-12-11 16:31:36 +0000
commit7ccdcd3c5ea86264604d56b0d8b94ac6cc5d3e68 (patch)
tree41d6ecb2d6f1df3addc39470ea93e84da099ab78
parent6a7bb2c07326f91cbb8a1c0874495dccf321b47c (diff)
If the peer rejects my MRU request and our request is smaller then what
the peer accepts, set the MRU anyway. Smaller packets are always accepted. From brian@FreeBSD via brad@ ok canacar@
-rw-r--r--usr.sbin/ppp/ppp/lcp.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/usr.sbin/ppp/ppp/lcp.c b/usr.sbin/ppp/ppp/lcp.c
index d06b60500e9..ceb578c79e1 100644
--- a/usr.sbin/ppp/ppp/lcp.c
+++ b/usr.sbin/ppp/ppp/lcp.c
@@ -25,7 +25,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $OpenBSD: lcp.c,v 1.41 2005/07/17 19:13:24 brad Exp $
+ * $OpenBSD: lcp.c,v 1.42 2006/12/11 16:31:35 claudio Exp $
*/
#include <sys/param.h>
@@ -790,6 +790,9 @@ LcpDecodeConfig(struct fsm *fp, u_char *cp, u_char *end, int mode_type,
break;
case MODE_REJ:
lcp->his_reject |= (1 << opt->hdr.id);
+ /* Set the MRU to what we want anyway - the peer won't care! */
+ if (lcp->his_mru > lcp->want_mru)
+ lcp->his_mru = lcp->want_mru;
break;
}
break;