summaryrefslogtreecommitdiff
path: root/accel-pptpd/ppp.c
diff options
context:
space:
mode:
authorKozlov Dmitry <dima@server>2010-08-23 14:34:37 +0400
committerKozlov Dmitry <dima@server>2010-08-23 18:33:09 +0400
commit5ec458e9d936e6aee1d8382290473c0f5ba68e48 (patch)
treec5025ea42ff1e998afc3a687562238ceccd0efd2 /accel-pptpd/ppp.c
parent76615aa33fb294f2fdfdee3e4687de94bb5efce9 (diff)
downloadaccel-ppp-5ec458e9d936e6aee1d8382290473c0f5ba68e48.tar.gz
accel-ppp-5ec458e9d936e6aee1d8382290473c0f5ba68e48.zip
implemented IPCP primary/secondary dns configuration option
Diffstat (limited to 'accel-pptpd/ppp.c')
-rw-r--r--accel-pptpd/ppp.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/accel-pptpd/ppp.c b/accel-pptpd/ppp.c
index 40f5ff7b..518f7572 100644
--- a/accel-pptpd/ppp.c
+++ b/accel-pptpd/ppp.c
@@ -255,7 +255,10 @@ void ppp_layer_started(struct ppp_t *ppp, struct ppp_layer_data_t *d)
{
n=list_entry(n->entry.next,typeof(*n),entry);
list_for_each_entry(d,&n->items,entry)
+ {
+ d->starting=1;
d->layer->start(d);
+ }
}
}
@@ -263,13 +266,14 @@ void 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;
list_for_each_entry(n,&ppp->layers,entry)
{
list_for_each_entry(d,&n->items,entry)
{
- if (d->started)
+ if (d->starting)
return;
}
}
@@ -288,7 +292,7 @@ void ppp_terminate(struct ppp_t *ppp)
{
list_for_each_entry(d,&n->items,entry)
{
- if (d->started)
+ if (d->starting)
{
s=1;
d->layer->finish(d);
@@ -394,7 +398,10 @@ static void start_first_layer(struct ppp_t *ppp)
n=list_entry(ppp->layers.next,typeof(*n),entry);
list_for_each_entry(d,&n->items,entry)
+ {
+ d->starting=1;
d->layer->start(d);
+ }
}
struct ppp_layer_data_t *ppp_find_layer_data(struct ppp_t *ppp, struct ppp_layer_t *layer)