ensure MRU is sane
This commit is contained in:
parent
e1f961edee
commit
6c71960bcf
1 changed files with 13 additions and 2 deletions
15
ppp.c
15
ppp.c
|
|
@ -1,6 +1,6 @@
|
||||||
// L2TPNS PPP Stuff
|
// L2TPNS PPP Stuff
|
||||||
|
|
||||||
char const *cvs_id_ppp = "$Id: ppp.c,v 1.85 2005-11-04 14:41:50 bodea Exp $";
|
char const *cvs_id_ppp = "$Id: ppp.c,v 1.86 2005-11-17 05:24:17 bodea Exp $";
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
@ -575,7 +575,18 @@ void processlcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case 1: // Maximum-Receive-Unit
|
case 1: // Maximum-Receive-Unit
|
||||||
session[s].mru = ntohs(*(uint16_t *)(o + 2));
|
{
|
||||||
|
uint16_t mru = ntohs(*(uint16_t *)(o + 2));
|
||||||
|
if (mru >= 576)
|
||||||
|
{
|
||||||
|
session[s].mru = mru;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
LOG(3, s, t, " Remote requesting MRU of %u. Rejecting.\n", mru);
|
||||||
|
mru = htons(MRU);
|
||||||
|
q = ppp_conf_nak(s, b, sizeof(b), PPPLCP, &response, q, p, o, (uint8_t *) &mru, sizeof(mru));
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2: // Async-Control-Character-Map
|
case 2: // Async-Control-Character-Map
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue