From fe7f015ec62d71ba778dc47cd808abaaecb700ea Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Wed, 19 Nov 2014 21:29:18 +1100 Subject: [PATCH] Empty buffers of servers and proxy when killing them --- src/ckpool.h | 1 + src/generator.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/ckpool.h b/src/ckpool.h index 3660d50b..d06820a0 100644 --- a/src/ckpool.h +++ b/src/ckpool.h @@ -193,6 +193,7 @@ bool ckmsgq_empty(ckmsgq_t *ckmsgq); ckpool_t *global_ckp; bool ping_main(ckpool_t *ckp); +void empty_buffer(connsock_t *cs); int read_socket_line(connsock_t *cs, int timeout); bool _send_proc(proc_instance_t *pi, const char *msg, const char *file, const char *func, const int line); #define send_proc(pi, msg) _send_proc(pi, msg, __FILE__, __func__, __LINE__) diff --git a/src/generator.c b/src/generator.c index 6257b338..6e00669e 100644 --- a/src/generator.c +++ b/src/generator.c @@ -229,6 +229,7 @@ static void kill_server(server_instance_t *si) LOGNOTICE("Killing server"); cs = &si->cs; Close(cs->fd); + empty_buffer(cs); dealloc(cs->url); dealloc(cs->port); dealloc(cs->auth); @@ -1452,6 +1453,7 @@ static void kill_proxy(ckpool_t *ckp, proxy_instance_t *proxi) LOGNOTICE("Killing proxy"); cs = proxi->cs; Close(cs->fd); + empty_buffer(cs); /* All our notify data is invalid if we reconnect so discard them */ mutex_lock(&proxi->notify_lock);