summaryrefslogtreecommitdiff
path: root/accel-pptpd/ppp
diff options
context:
space:
mode:
Diffstat (limited to 'accel-pptpd/ppp')
-rw-r--r--accel-pptpd/ppp/lcp_opt_mru.c14
-rw-r--r--accel-pptpd/ppp/ppp.c25
-rw-r--r--accel-pptpd/ppp/ppp_ccp.c13
-rw-r--r--accel-pptpd/ppp/ppp_fsm.c9
-rw-r--r--accel-pptpd/ppp/ppp_lcp.c14
5 files changed, 55 insertions, 20 deletions
diff --git a/accel-pptpd/ppp/lcp_opt_mru.c b/accel-pptpd/ppp/lcp_opt_mru.c
index 6a8c430f..78e06b5a 100644
--- a/accel-pptpd/ppp/lcp_opt_mru.c
+++ b/accel-pptpd/ppp/lcp_opt_mru.c
@@ -11,6 +11,7 @@
#include "ppp.h"
#include "ppp_lcp.h"
#include "log.h"
+#include "events.h"
#include "memdebug.h"
@@ -149,7 +150,7 @@ static void mru_print(void (*print)(const char *fmt,...), struct lcp_option_t *o
print("<mru %i>",mru_opt->mru);
}
-static void __init mru_opt_init()
+static void load_config(void)
{
char *opt;
@@ -171,19 +172,24 @@ static void __init mru_opt_init()
if (conf_min_mtu > conf_mru) {
log_emerg("min-mtu cann't be greater then mtu/mru\n");
- _exit(-1);
+ conf_min_mtu = conf_mru;
}
if (conf_min_mtu > 1500) {
log_emerg("min-mtu cann't be greater then 1500\n");
- _exit(-1);
+ conf_min_mtu = 1500;
}
if (conf_mru > 1500 || conf_mtu > 1500) {
log_emerg("mtu/mru cann't be greater then 1500\n");
- _exit(-1);
+ conf_mru = 1500;
}
+}
+static void __init mru_opt_init()
+{
+ load_config();
lcp_option_register(&mru_opt_hnd);
+ triton_event_register_handler(EV_CONFIG_RELOAD, (triton_event_func)load_config);
}
diff --git a/accel-pptpd/ppp/ppp.c b/accel-pptpd/ppp/ppp.c
index 14898981..6cf1c720 100644
--- a/accel-pptpd/ppp/ppp.c
+++ b/accel-pptpd/ppp/ppp.c
@@ -634,16 +634,9 @@ static void save_seq(void)
}
}
-static void __init init(void)
+static void load_config(void)
{
char *opt;
- FILE *f;
-
- sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
- if (sock_fd < 0) {
- perror("socket");
- _exit(EXIT_FAILURE);
- }
opt = conf_get_opt("ppp", "verbose");
if (opt && atoi(opt) > 0)
@@ -656,6 +649,18 @@ static void __init init(void)
else if (strcmp(opt, "lower"))
log_emerg("ppp: sid-case: invalid format\n");
}
+}
+
+static void __init init(void)
+{
+ char *opt;
+ FILE *f;
+
+ sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
+ if (sock_fd < 0) {
+ perror("socket");
+ _exit(EXIT_FAILURE);
+ }
opt = conf_get_opt("ppp", "seq-file");
if (!opt)
@@ -666,9 +671,11 @@ static void __init init(void)
fscanf(f, "%llu", &seq);
fclose(f);
} else
- //log_emerg("ppp: failed to open seq-file (%s): %s\n", opt, strerror(errno));
seq = (unsigned long long)random() * (unsigned long long)random();
+ load_config();
+ triton_event_register_handler(EV_CONFIG_RELOAD, (triton_event_func)load_config);
+
atexit(save_seq);
}
diff --git a/accel-pptpd/ppp/ppp_ccp.c b/accel-pptpd/ppp/ppp_ccp.c
index e5b183dc..721dd9b6 100644
--- a/accel-pptpd/ppp/ppp_ccp.c
+++ b/accel-pptpd/ppp/ppp_ccp.c
@@ -8,6 +8,7 @@
#include "triton.h"
#include "log.h"
+#include "events.h"
#include "ppp.h"
#include "ppp_ccp.h"
@@ -739,14 +740,20 @@ static struct ppp_layer_t ccp_layer=
.free = ccp_layer_free,
};
-static void __init ccp_init(void)
+static void load_config(void)
{
const char *opt;
- ppp_register_layer("ccp", &ccp_layer);
-
opt = conf_get_opt("ppp", "ccp");
if (opt && atoi(opt) >= 0)
conf_ccp = atoi(opt);
}
+static void __init ccp_init(void)
+{
+ ppp_register_layer("ccp", &ccp_layer);
+
+ load_config();
+ triton_event_register_handler(EV_CONFIG_RELOAD, (triton_event_func)load_config);
+}
+
diff --git a/accel-pptpd/ppp/ppp_fsm.c b/accel-pptpd/ppp/ppp_fsm.c
index 6daf42c2..c6bc430e 100644
--- a/accel-pptpd/ppp/ppp_fsm.c
+++ b/accel-pptpd/ppp/ppp_fsm.c
@@ -7,6 +7,7 @@
#include "ppp_fsm.h"
#include "ppp_lcp.h"
#include "log.h"
+#include "events.h"
#include "memdebug.h"
@@ -514,7 +515,7 @@ static void restart_timer_func(struct triton_timer_t *t)
ppp_fsm_timeout1(layer);
}
-void __init fsm_init(void)
+static void load_config(void)
{
char *opt;
@@ -535,3 +536,9 @@ void __init fsm_init(void)
conf_timeout = atoi(opt);
}
+void __init fsm_init(void)
+{
+ load_config();
+ triton_event_register_handler(EV_CONFIG_RELOAD, (triton_event_func)load_config);
+}
+
diff --git a/accel-pptpd/ppp/ppp_lcp.c b/accel-pptpd/ppp/ppp_lcp.c
index 0b5a5175..e40e3212 100644
--- a/accel-pptpd/ppp/ppp_lcp.c
+++ b/accel-pptpd/ppp/ppp_lcp.c
@@ -10,6 +10,7 @@
#include "ppp.h"
#include "ppp_lcp.h"
+#include "events.h"
#include "memdebug.h"
@@ -822,12 +823,10 @@ static struct ppp_layer_t lcp_layer=
.free = lcp_layer_free,
};
-static void __init lcp_init(void)
+static void load_config(void)
{
char *opt;
- ppp_register_layer("lcp", &lcp_layer);
-
opt = conf_get_opt("lcp", "echo-interval");
if (opt && atoi(opt) > 0)
conf_echo_interval = atoi(opt);
@@ -837,3 +836,12 @@ static void __init lcp_init(void)
conf_echo_failure = atoi(opt);
}
+static void __init lcp_init(void)
+{
+ load_config();
+
+ ppp_register_layer("lcp", &lcp_layer);
+
+ triton_event_register_handler(EV_CONFIG_RELOAD, (triton_event_func)load_config);
+}
+