diff options
author | Dmitry Kozlov <xeb@mail.ru> | 2010-09-12 23:13:10 +0400 |
---|---|---|
committer | Dmitry Kozlov <xeb@mail.ru> | 2010-09-12 23:13:27 +0400 |
commit | 65a665f6c655766a6d990e8aba47a811d0c3fecc (patch) | |
tree | d1dd7a9b01ac49382500fc97de4f69cd713d8952 /accel-pptpd/log.c | |
parent | 417ef849f1adcb3b655fbb2382e126b0b17aabbe (diff) | |
download | accel-ppp-xebd-65a665f6c655766a6d990e8aba47a811d0c3fecc.tar.gz accel-ppp-xebd-65a665f6c655766a6d990e8aba47a811d0c3fecc.zip |
log: implemented 'log_pgsql' loggin target
lcp: fixed incorrect echo reply
ppp_fsm: fixed incorrect timeout timer initialization
Diffstat (limited to 'accel-pptpd/log.c')
-rw-r--r-- | accel-pptpd/log.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/accel-pptpd/log.c b/accel-pptpd/log.c index 76603d4..5012cba 100644 --- a/accel-pptpd/log.c +++ b/accel-pptpd/log.c @@ -13,8 +13,6 @@ #include "log.h" -#define LOG_MAX_SIZE 4096 - struct log_pd_t { struct ppp_pd_t pd; @@ -33,6 +31,8 @@ struct _log_msg_t }; static int log_level=10; +static int conf_copy = 0; + static LIST_HEAD(targets); static mempool_t msg_pool; static mempool_t _msg_pool; @@ -80,8 +80,6 @@ static void do_log(int level, const char *fmt, va_list ap, struct ppp_t *ppp) if (ppp && !ppp->username) { lpd = find_pd(ppp); list_add_tail(&cur_msg->entry, &lpd->msgs); - cur_msg = NULL; - return; } list_for_each_entry(t, &targets, entry) { @@ -92,7 +90,8 @@ static void do_log(int level, const char *fmt, va_list ap, struct ppp_t *ppp) break; t->session_log(ppp, m); } - } else { + } + if (!ppp || conf_copy) { if (t->log) { m = clone_msg(cur_msg); if (!m) @@ -103,7 +102,8 @@ static void do_log(int level, const char *fmt, va_list ap, struct ppp_t *ppp) } out: - _log_free_msg(cur_msg); + if (!ppp || ppp->username) + _log_free_msg(cur_msg); cur_msg = NULL; } @@ -412,6 +412,10 @@ static void __init log_init(void) fprintf(stderr, "log:open: %s\n", strerror(errno)); } + opt = conf_get_opt("log", "copy"); + if (opt && atoi(opt) > 0) + conf_copy = 1; + msg_pool = mempool_create(sizeof(struct log_msg_t)); _msg_pool = mempool_create(sizeof(struct _log_msg_t)); chunk_pool = mempool_create(sizeof(struct log_chunk_t) + LOG_CHUNK_SIZE + 1); |