summaryrefslogtreecommitdiff
path: root/accel-pppd/ppp/ppp_lcp.c
diff options
context:
space:
mode:
authorKozlov Dmitry <dima@server>2011-01-28 14:41:44 +0300
committerKozlov Dmitry <dima@server>2011-01-28 14:41:44 +0300
commita69ae308efe400d14ecbab676a5e7592908c6b46 (patch)
tree664b19521bc0fe81f7863aba2218ec54ba1826e2 /accel-pppd/ppp/ppp_lcp.c
parent673bea74d2beb8d4260355f928499230c7ff9b17 (diff)
downloadaccel-ppp-xebd-a69ae308efe400d14ecbab676a5e7592908c6b46.tar.gz
accel-ppp-xebd-a69ae308efe400d14ecbab676a5e7592908c6b46.zip
ppp: send ConfNak with random magic number if magic number in CanfReq is equal to self magic number
Diffstat (limited to 'accel-pppd/ppp/ppp_lcp.c')
-rw-r--r--accel-pppd/ppp/ppp_lcp.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/accel-pppd/ppp/ppp_lcp.c b/accel-pppd/ppp/ppp_lcp.c
index 10e25fb..c46c5a4 100644
--- a/accel-pppd/ppp/ppp_lcp.c
+++ b/accel-pppd/ppp/ppp_lcp.c
@@ -281,6 +281,7 @@ static void send_conf_nak(struct ppp_fsm_t *fsm)
uint8_t *buf = _malloc(lcp->conf_req_len), *ptr = buf;
struct lcp_hdr_t *lcp_hdr = (struct lcp_hdr_t*)ptr;
struct lcp_option_t *lopt;
+ int n;
if (conf_ppp_verbose)
log_ppp_info2("send [LCP ConfNak id=%x", lcp->fsm.recv_id);
@@ -294,12 +295,14 @@ static void send_conf_nak(struct ppp_fsm_t *fsm)
list_for_each_entry(lopt, &lcp->options, entry) {
if (lopt->state == LCP_OPT_NAK) {
- ptr+=lopt->h->send_conf_nak(lcp,lopt,ptr);
+ n = lopt->h->send_conf_nak(lcp, lopt, ptr);
- if (conf_ppp_verbose) {
+ if (conf_ppp_verbose && n) {
log_ppp_info2(" ");
- lopt->h->print(log_ppp_info2, lopt, NULL);
+ lopt->h->print(log_ppp_info2, lopt, ptr);
}
+
+ ptr += n;
}
}