projects
/
l2tpns.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'common-cvs-git-upstream' into fdn-mods
[l2tpns.git]
/
ppp.c
diff --git
a/ppp.c
b/ppp.c
index
ed12040
..
4d01e90
100644
(file)
--- a/
ppp.c
+++ b/
ppp.c
@@
-819,6
+819,10
@@
void processlcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
break;
break;
+ case Closing:
+ sessionshutdown(s, "LCP: ConfigReq in state Closing. This should not happen. Killing session.", CDN_ADMIN_DISC, TERM_LOST_SERVICE);
+ break;
+
default:
LOG(2, s, t, "LCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.lcp));
return;
default:
LOG(2, s, t, "LCP: ignoring %s in state %s\n", ppp_code(*p), ppp_state(session[s].ppp.lcp));
return;
@@
-1534,7
+1538,7
@@
void processipv6cp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
uint8_t *o = p + 4;
int length = l - 4;
int gotip = 0;
uint8_t *o = p + 4;
int length = l - 4;
int gotip = 0;
- uint
8_t ident[8
];
+ uint
32_t ident[2
];
while (length > 2)
{
while (length > 2)
{
@@
-1546,12
+1550,12
@@
void processipv6cp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
gotip++; // seen address
if (o[1] != 10) return;
gotip++; // seen address
if (o[1] != 10) return;
-
*(uint32_t *) ident
= htonl(session[s].ip);
-
*(uint32_t *) (ident + 4)
= 0;
+
ident[0]
= htonl(session[s].ip);
+
ident[1]
= 0;
if (memcmp(o + 2, ident, sizeof(ident)))
{
if (memcmp(o + 2, ident, sizeof(ident)))
{
- q = ppp_conf_nak(s, b, sizeof(b), PPPIPV6CP, &response, q, p, o, ident, sizeof(ident));
+ q = ppp_conf_nak(s, b, sizeof(b), PPPIPV6CP, &response, q, p, o,
(uint8_t *)
ident, sizeof(ident));
if (!q) return;
}
if (!q) return;
}