From ca6455606c14fec4fd825325a1ae0cc8a9c8fe90 Mon Sep 17 00:00:00 2001 From: Kozlov Dmitry Date: Mon, 30 Jul 2012 10:42:15 +0400 Subject: add per-CTRL ip-pool option to specify default ip pool name --- accel-pppd/ctrl/l2tp/l2tp.c | 9 +++++++++ accel-pppd/ctrl/pppoe/pppoe.c | 11 ++++++++++- accel-pppd/ctrl/pptp/pptp.c | 9 +++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) (limited to 'accel-pppd/ctrl') diff --git a/accel-pppd/ctrl/l2tp/l2tp.c b/accel-pppd/ctrl/l2tp/l2tp.c index fa76048..162c9cb 100644 --- a/accel-pppd/ctrl/l2tp/l2tp.c +++ b/accel-pppd/ctrl/l2tp/l2tp.c @@ -56,6 +56,7 @@ static int conf_dir300_quirk = 0; static const char *conf_host_name = "accel-ppp"; static const char *conf_secret = NULL; static int conf_mppe = MPPE_UNSET; +static char *conf_ip_pool; static unsigned int stat_active; static unsigned int stat_starting; @@ -336,6 +337,7 @@ static int l2tp_tunnel_alloc(struct l2tp_serv_t *serv, struct l2tp_packet_t *pac conn->ctrl.finished = l2tp_ppp_finished; conn->ctrl.max_mtu = 1420; conn->ctrl.mppe = conf_mppe; + conn->ctrl.def_pool = conf_ip_pool; conn->ctrl.calling_station_id = _malloc(17); conn->ctrl.called_station_id = _malloc(17); @@ -1232,6 +1234,13 @@ static void load_config(void) else if (strcmp(opt, "require") == 0) conf_mppe = MPPE_REQUIRE; } + + opt = conf_get_opt("l2tp", "ip-pool"); + if (opt) { + if (!conf_ip_pool || strcmp(conf_ip_pool, opt)) + conf_ip_pool = _strdup(opt); + } else + conf_ip_pool = NULL; } static void l2tp_init(void) diff --git a/accel-pppd/ctrl/pppoe/pppoe.c b/accel-pppd/ctrl/pppoe/pppoe.c index 079ef51..6aef1a9 100644 --- a/accel-pppd/ctrl/pppoe/pppoe.c +++ b/accel-pppd/ctrl/pppoe/pppoe.c @@ -80,7 +80,8 @@ int conf_ifname_in_sid; char *conf_pado_delay; int conf_tr101 = 1; int conf_padi_limit = 0; -int conf_mppe = MPPE_UNSET; +static int conf_mppe = MPPE_UNSET; +static char *conf_ip_pool; static mempool_t conn_pool; static mempool_t pado_pool; @@ -265,6 +266,7 @@ static struct pppoe_conn_t *allocate_channel(struct pppoe_serv_t *serv, const ui conn->ctrl.type = CTRL_TYPE_PPPOE; conn->ctrl.name = "pppoe"; conn->ctrl.mppe = conf_mppe; + conn->ctrl.def_pool = conf_ip_pool; conn->ctrl.calling_station_id = _malloc(IFNAMSIZ + 19); conn->ctrl.called_station_id = _malloc(IFNAMSIZ + 19); @@ -1424,6 +1426,13 @@ static void load_config(void) else if (strcmp(opt, "require") == 0) conf_mppe = MPPE_REQUIRE; } + + opt = conf_get_opt("pppoe", "ip-pool"); + if (opt) { + if (!conf_ip_pool || strcmp(conf_ip_pool, opt)) + conf_ip_pool = _strdup(opt); + } else + conf_ip_pool = NULL; } static void pppoe_init(void) diff --git a/accel-pppd/ctrl/pptp/pptp.c b/accel-pppd/ctrl/pptp/pptp.c index 2f0c5ef..f2e9d43 100644 --- a/accel-pppd/ctrl/pptp/pptp.c +++ b/accel-pppd/ctrl/pptp/pptp.c @@ -59,6 +59,7 @@ static int conf_echo_interval = 0; static int conf_echo_failure = 3; static int conf_verbose = 0; static int conf_mppe = MPPE_UNSET; +static char *conf_ip_pool; static mempool_t conn_pool; @@ -671,6 +672,7 @@ static int pptp_connect(struct triton_md_handler_t *h) conn->ctrl.type = CTRL_TYPE_PPTP; conn->ctrl.name = "pptp"; conn->ctrl.mppe = conf_mppe; + conn->ctrl.def_pool = conf_ip_pool; conn->ctrl.calling_station_id = _malloc(17); conn->ctrl.called_station_id = _malloc(17); @@ -755,6 +757,13 @@ static void load_config(void) else if (strcmp(opt, "require") == 0) conf_mppe = MPPE_REQUIRE; } + + opt = conf_get_opt("pptp", "ip-pool"); + if (opt) { + if (!conf_ip_pool || strcmp(conf_ip_pool, opt)) + conf_ip_pool = _strdup(opt); + } else + conf_ip_pool = NULL; } static void pptp_init(void) -- cgit v1.2.3