extern struct list buffer_wq;
int init_buffer();
+void deinit_buffer();
int buffer_replace2(struct buffer *b, char *pos, char *end, const char *str, int len);
int buffer_insert_line2(struct buffer *b, char *pos, const char *str, int len);
void buffer_dump(FILE *o, struct buffer *b, int from, int to);
extern int listeners;
extern int jobs; /* # of active jobs */
extern struct chunk trash;
-extern char *swap_buffer;
extern int nb_oldpids; /* contains the number of old pids found */
extern const int zero;
extern const int one;
/* list of objects waiting for at least one buffer */
struct list buffer_wq = LIST_HEAD_INIT(buffer_wq);
+/* this buffer is always the same size as standard buffers and is used for
+ * swapping data inside a buffer.
+ */
+static char *swap_buffer = NULL;
+
/* perform minimal intializations, report 0 in case of error, 1 if OK. */
int init_buffer()
{
return 0;
pool_free2(pool2_buffer, buffer);
+
+ swap_buffer = calloc(1, global.tune.bufsize);
+ if (swap_buffer == NULL)
+ return 0;
+
return 1;
}
+void deinit_buffer()
+{
+ free(swap_buffer); swap_buffer = NULL;
+ pool_destroy2(pool2_buffer);
+}
+
/* This function writes the string <str> at position <pos> which must be in
* buffer <b>, and moves <end> just after the end of <str>. <b>'s parameters
* <l> and <r> are updated to be valid after the shift. The shift value
static char *cur_unixsocket = NULL;
-/* this buffer is always the same size as standard buffers and is used for
- * swapping data inside a buffer.
- */
-char *swap_buffer = NULL;
-
int atexit_flag = 0;
int nb_oldpids = 0;
exit(1);
}
- swap_buffer = calloc(1, global.tune.bufsize);
get_http_auth_buff = calloc(1, global.tune.bufsize);
static_table_key = calloc(1, sizeof(*static_table_key));
free(oldpids); oldpids = NULL;
free(static_table_key); static_table_key = NULL;
free(get_http_auth_buff); get_http_auth_buff = NULL;
- free(swap_buffer); swap_buffer = NULL;
free(global_listener_queue_task); global_listener_queue_task = NULL;
list_for_each_entry_safe(log, logb, &global.logsrvs, list) {
vars_prune(&global.vars, NULL, NULL);
+ deinit_buffer();
+
pool_destroy2(pool2_stream);
pool_destroy2(pool2_session);
pool_destroy2(pool2_connection);
pool_destroy2(pool2_trash);
- pool_destroy2(pool2_buffer);
pool_destroy2(pool2_requri);
pool_destroy2(pool2_task);
pool_destroy2(pool2_capture);