projects
/
l2tpns.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove openssl crypto lib
[l2tpns.git]
/
ppp.c
diff --git
a/ppp.c
b/ppp.c
index
c28a1d6
..
1d59e33
100644
(file)
--- a/
ppp.c
+++ b/
ppp.c
@@
-1,6
+1,6
@@
// L2TPNS PPP Stuff
// L2TPNS PPP Stuff
-char const *cvs_id_ppp = "$Id: ppp.c,v 1.
69 2005/08/11 05:50:49
bodea Exp $";
+char const *cvs_id_ppp = "$Id: ppp.c,v 1.
72 2005/08/12 08:18:46
bodea Exp $";
#include <stdio.h>
#include <string.h>
#include <stdio.h>
#include <string.h>
@@
-85,8
+85,7
@@
void processpap(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
LOG(3, s, t, "PAP login %s/%s\n", user, pass);
}
LOG(3, s, t, "PAP login %s/%s\n", user, pass);
}
- r = radiusnew(s);
- if (session[s].ip || !r)
+ if (session[s].ip || !(r = radiusnew(s)))
{
// respond now, either no RADIUS available or already authenticated
uint8_t b[MAXCONTROL];
{
// respond now, either no RADIUS available or already authenticated
uint8_t b[MAXCONTROL];
@@
-341,6
+340,8
@@
void lcp_open(sessionidt s, tunnelidt t)
// transition to Authentication or Network phase:
session[s].ppp.phase = sess_local[s].lcp_authtype ? Authenticate : Network;
// transition to Authentication or Network phase:
session[s].ppp.phase = sess_local[s].lcp_authtype ? Authenticate : Network;
+ LOG(3, s, t, "LCP: Opened, phase %s\n", ppp_phase(session[s].ppp.phase));
+
// LCP now Opened
change_state(s, lcp, Opened);
// LCP now Opened
change_state(s, lcp, Opened);
@@
-765,6
+766,10
@@
void processlcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
if (!response) return;
*response = TerminateAck;
*((uint16_t *) (response + 2)) = htons(l = 4);
if (!response) return;
*response = TerminateAck;
*((uint16_t *) (response + 2)) = htons(l = 4);
+
+ LOG(3, s, t, "LCP: send %s\n", ppp_code(*response));
+ if (config->debug > 3) dumplcp(response, l);
+
tunnelsend(b, l + (response - b), t);
}
break;
tunnelsend(b, l + (response - b), t);
}
break;
@@
-795,6
+800,10
@@
void processlcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
*p = TerminateAck; // close
q = makeppp(b, sizeof(b), p, l, s, t, PPPLCP);
if (!q) return;
*p = TerminateAck; // close
q = makeppp(b, sizeof(b), p, l, s, t, PPPLCP);
if (!q) return;
+
+ LOG(3, s, t, "LCP: send %s\n", ppp_code(*q));
+ if (config->debug > 3) dumplcp(q, l);
+
tunnelsend(b, l + (q - b), t); // send it
sessionshutdown(s, "Remote end closed connection.", 3, 0);
}
tunnelsend(b, l + (q - b), t); // send it
sessionshutdown(s, "Remote end closed connection.", 3, 0);
}
@@
-822,6
+831,10
@@
void processlcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
*(uint32_t *) (p + 4) = htonl(session[s].magic); // our magic number
q = makeppp(b, sizeof(b), p, l, s, t, PPPLCP);
if (!q) return;
*(uint32_t *) (p + 4) = htonl(session[s].magic); // our magic number
q = makeppp(b, sizeof(b), p, l, s, t, PPPLCP);
if (!q) return;
+
+ LOG(4, s, t, "LCP: send %s\n", ppp_code(*q));
+ if (config->debug > 3) dumplcp(q, l);
+
tunnelsend(b, l + (q - b), t); // send it
}
else if (*p == EchoReply)
tunnelsend(b, l + (q - b), t); // send it
}
else if (*p == EchoReply)
@@
-841,7
+854,10
@@
void processlcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
q = makeppp(b, sizeof(b), p, l, s, t, PPPLCP);
if (!q) return;
q = makeppp(b, sizeof(b), p, l, s, t, PPPLCP);
if (!q) return;
- LOG(3, s, t, "Unexpected LCP code %s\n", ppp_code(code));
+ LOG(2, s, t, "Unexpected LCP code %s\n", ppp_code(code));
+ LOG(3, s, t, "LCP: send %s\n", ppp_code(*q));
+ if (config->debug > 3) dumplcp(q, l);
+
tunnelsend(b, l + (q - b), t);
}
}
tunnelsend(b, l + (q - b), t);
}
}
@@
-898,6
+914,8
@@
void processipcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
return;
}
return;
}
+ LOG(3, s, t, "IPCP: recv %s\n", ppp_code(*p));
+
if (*p == ConfigAck)
{
switch (session[s].ppp.ipcp)
if (*p == ConfigAck)
{
switch (session[s].ppp.ipcp)
@@
-930,8
+948,6
@@
void processipcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
int gotip = 0;
in_addr_t addr;
int gotip = 0;
in_addr_t addr;
- LOG(3, s, t, "IPCP: ConfigReq received\n");
-
while (length > 2)
{
switch (*o)
while (length > 2)
{
switch (*o)
@@
-1055,15
+1071,15
@@
void processipcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
return;
}
return;
}
- LOG(3, s, t, "IPCP:
Sending
%s\n", ppp_code(*response));
+ LOG(3, s, t, "IPCP:
send
%s\n", ppp_code(*response));
tunnelsend(b, l + (response - b), t);
}
else if (*p == TerminateReq)
{
tunnelsend(b, l + (response - b), t);
}
else if (*p == TerminateReq)
{
- LOG(3, s, t, "IPCP: Received TerminateReq. Sending TerminateAck\n");
*p = TerminateAck;
q = makeppp(b, sizeof(b), p, l, s, t, PPPIPCP);
if (!q) return;
*p = TerminateAck;
q = makeppp(b, sizeof(b), p, l, s, t, PPPIPCP);
if (!q) return;
+ LOG(3, s, t, "IPCP: send %s\n", ppp_code(*q));
tunnelsend(b, l + (q - b), t);
change_state(s, ipcp, Stopped);
}
tunnelsend(b, l + (q - b), t);
change_state(s, ipcp, Stopped);
}
@@
-1080,7
+1096,8
@@
void processipcp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
q = makeppp(b, sizeof(b), p, l, s, t, PPPIPCP);
if (!q) return;
q = makeppp(b, sizeof(b), p, l, s, t, PPPIPCP);
if (!q) return;
- LOG(3, s, t, "Unexpected IPCP code %s\n", ppp_code(code));
+ LOG(2, s, t, "Unexpected IPCP code %s\n", ppp_code(code));
+ LOG(3, s, t, "IPCP: send %s\n", ppp_code(*q));
tunnelsend(b, l + (q - b), t);
}
}
tunnelsend(b, l + (q - b), t);
}
}
@@
-1128,6
+1145,8
@@
void processipv6cp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
return;
}
return;
}
+ LOG(3, s, t, "IPV6CP: recv %s\n", ppp_code(*p));
+
if (!config->ipv6_prefix.s6_addr[0])
{
LOG(2, s, t, "IPV6CP: %s rejected (not configured)\n", ppp_code(*p));
if (!config->ipv6_prefix.s6_addr[0])
{
LOG(2, s, t, "IPV6CP: %s rejected (not configured)\n", ppp_code(*p));
@@
-1176,8
+1195,6
@@
void processipv6cp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
int gotip = 0;
uint8_t ident[8];
int gotip = 0;
uint8_t ident[8];
- LOG(3, s, t, "IPV6CP: ConfigReq received\n");
-
while (length > 2)
{
switch (*o)
while (length > 2)
{
switch (*o)
@@
-1275,15
+1292,15
@@
void processipv6cp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
return;
}
return;
}
- LOG(3, s, t, "IPV6CP:
Sending
%s\n", ppp_code(*response));
+ LOG(3, s, t, "IPV6CP:
send
%s\n", ppp_code(*response));
tunnelsend(b, l + (response - b), t);
}
else if (*p == TerminateReq)
{
tunnelsend(b, l + (response - b), t);
}
else if (*p == TerminateReq)
{
- LOG(3, s, t, "IPV6CP: Received TerminateReq. Sending TerminateAck\n");
*p = TerminateAck;
q = makeppp(b, sizeof(b), p, l, s, t, PPPIPV6CP);
if (!q) return;
*p = TerminateAck;
q = makeppp(b, sizeof(b), p, l, s, t, PPPIPV6CP);
if (!q) return;
+ LOG(3, s, t, "IPV6CP: send %s\n", ppp_code(*q));
tunnelsend(b, l + (q - b), t);
change_state(s, ipv6cp, Stopped);
}
tunnelsend(b, l + (q - b), t);
change_state(s, ipv6cp, Stopped);
}
@@
-1300,7
+1317,8
@@
void processipv6cp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
q = makeppp(b, sizeof(b), p, l, s, t, PPPIPV6CP);
if (!q) return;
q = makeppp(b, sizeof(b), p, l, s, t, PPPIPV6CP);
if (!q) return;
- LOG(3, s, t, "Unexpected IPV6CP code %s\n", ppp_code(code));
+ LOG(2, s, t, "Unexpected IPV6CP code %s\n", ppp_code(code));
+ LOG(3, s, t, "IPV6CP: send %s\n", ppp_code(*q));
tunnelsend(b, l + (q - b), t);
}
}
tunnelsend(b, l + (q - b), t);
}
}
@@
-1550,6
+1568,7
@@
void processccp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
STAT(tunnel_rx_errors);
}
STAT(tunnel_rx_errors);
}
+ LOG(3, s, t, "CCP: recv %s\n", ppp_code(*p));
if (*p == ConfigAck)
{
switch (session[s].ppp.ccp)
if (*p == ConfigAck)
{
switch (session[s].ppp.ccp)
@@
-1634,15
+1653,15
@@
void processccp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
return;
}
return;
}
- LOG(3, s, t, "CCP:
Sending
%s\n", ppp_code(*q));
+ LOG(3, s, t, "CCP:
send
%s\n", ppp_code(*q));
tunnelsend(b, l + (q - b), t);
}
else if (*p == TerminateReq)
{
tunnelsend(b, l + (q - b), t);
}
else if (*p == TerminateReq)
{
- LOG(3, s, t, "CCP: Received TerminateReq. Sending TerminateAck\n");
*p = TerminateAck;
q = makeppp(b, sizeof(b), p, l, s, t, PPPCCP);
if (!q) return;
*p = TerminateAck;
q = makeppp(b, sizeof(b), p, l, s, t, PPPCCP);
if (!q) return;
+ LOG(3, s, t, "CCP: send %s\n", ppp_code(*q));
tunnelsend(b, l + (q - b), t);
change_state(s, ccp, Stopped);
}
tunnelsend(b, l + (q - b), t);
change_state(s, ccp, Stopped);
}
@@
-1659,7
+1678,8
@@
void processccp(sessionidt s, tunnelidt t, uint8_t *p, uint16_t l)
q = makeppp(b, sizeof(b), p, l, s, t, PPPCCP);
if (!q) return;
q = makeppp(b, sizeof(b), p, l, s, t, PPPCCP);
if (!q) return;
- LOG(3, s, t, "Unexpected CCP code %s\n", ppp_code(code));
+ LOG(2, s, t, "Unexpected CCP code %s\n", ppp_code(code));
+ LOG(3, s, t, "CCP: send %s\n", ppp_code(*q));
tunnelsend(b, l + (q - b), t);
}
}
tunnelsend(b, l + (q - b), t);
}
}
@@
-1826,7
+1846,8
@@
void sendccp(sessionidt s, tunnelidt t)
if (!(q = makeppp(b, sizeof(b), NULL, 0, s, t, PPPCCP)))
return;
if (!(q = makeppp(b, sizeof(b), NULL, 0, s, t, PPPCCP)))
return;
- LOG(4, s, t, "Sending CCP ConfigReq for no compression\n");
+ LOG(3, s, t, "CCP: send ConfigReq (no compression)\n");
+
*q = ConfigReq;
*(uint8_t *)(q + 1) = (time_now % 255) + 1; // ID
*(uint16_t *)(q + 2) = htons(4); // Length
*q = ConfigReq;
*(uint8_t *)(q + 1) = (time_now % 255) + 1; // ID
*(uint16_t *)(q + 2) = htons(4); // Length