summaryrefslogtreecommitdiff
path: root/accel-pptpd/ppp/ppp.c
diff options
context:
space:
mode:
Diffstat (limited to 'accel-pptpd/ppp/ppp.c')
-rw-r--r--accel-pptpd/ppp/ppp.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/accel-pptpd/ppp/ppp.c b/accel-pptpd/ppp/ppp.c
index f8da005..9491977 100644
--- a/accel-pptpd/ppp/ppp.c
+++ b/accel-pptpd/ppp/ppp.c
@@ -274,7 +274,8 @@ cont:
}
}
- log_ppp_warn("ppp_chan_read: discarding unknown packet %x\n", proto);
+ lcp_send_proto_rej(ppp, proto);
+ //log_ppp_warn("ppp_chan_read: discarding unknown packet %x\n", proto);
}
}
@@ -316,15 +317,18 @@ cont:
goto cont;
}
}
-
- log_ppp_warn("ppp_unit_read: discarding unknown packet %x\n",proto);
+ lcp_send_proto_rej(ppp, proto);
+ //log_ppp_warn("ppp_unit_read: discarding unknown packet %x\n", proto);
}
}
void __export ppp_layer_started(struct ppp_t *ppp, struct ppp_layer_data_t *d)
{
struct layer_node_t *n=d->node;
-
+
+ if (d->started)
+ return;
+
d->started=1;
list_for_each_entry(d,&n->items,entry)
@@ -351,15 +355,15 @@ void __export ppp_layer_started(struct ppp_t *ppp, struct ppp_layer_data_t *d)
void __export ppp_layer_finished(struct ppp_t *ppp, struct ppp_layer_data_t *d)
{
struct layer_node_t *n=d->node;
-
- d->starting=0;
- d->started=0;
+
+ d->finished = 1;
+ d->starting = 0;
list_for_each_entry(n,&ppp->layers,entry)
{
list_for_each_entry(d,&n->items,entry)
{
- if (d->starting)
+ if (!d->finished)
return;
}
}