arch-packages/nginx-mod-traffic-accounting/d53a4a6.patch

236 lines
11 KiB
Diff
Raw Permalink Normal View History

2022-08-14 13:39:34 +02:00
diff --git a/src/http/ngx_http_accounting_module.c b/src/http/ngx_http_accounting_module.c
index 63eccf0..23a5fc3 100644
--- a/src/http/ngx_http_accounting_module.c
+++ b/src/http/ngx_http_accounting_module.c
@@ -139,7 +139,7 @@ ngx_http_accounting_process_init(ngx_cycle_t *cycle)
}
if (amcf->current == NULL) {
- if (ngx_traffic_accounting_period_create(cycle->pool, amcf) != NGX_OK)
+ if (ngx_traffic_accounting_period_create(amcf) != NGX_OK)
return NGX_ERROR;
}
@@ -206,7 +206,7 @@ worker_process_alarm_handler(ngx_event_t *ev)
amcf = ngx_http_cycle_get_module_main_conf(ngx_cycle, ngx_http_accounting_module);
- ngx_traffic_accounting_period_rotate(amcf->current->pool, amcf);
+ ngx_traffic_accounting_period_rotate(amcf);
ngx_traffic_accounting_period_rbtree_iterate(amcf->previous,
worker_process_export_metrics,
amcf->previous->created_at,
@@ -243,10 +243,10 @@ ngx_http_accounting_request_handler(ngx_http_request_t *r)
amcf = ngx_http_get_module_main_conf(r, ngx_http_accounting_module);
- metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id);
+ metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id, amcf->log);
if (metrics == NULL) { return NGX_ERROR; }
- if (ngx_traffic_accounting_metrics_init(metrics, amcf->current->pool, ngx_http_statuses_len) == NGX_ERROR)
+ if (ngx_traffic_accounting_metrics_init(metrics, ngx_http_statuses_len, amcf->log) == NGX_ERROR)
return NGX_ERROR;
amcf->current->updated_at = ngx_timeofday();
diff --git a/src/ngx_traffic_accounting.h b/src/ngx_traffic_accounting.h
index 1812927..462becf 100644
--- a/src/ngx_traffic_accounting.h
+++ b/src/ngx_traffic_accounting.h
@@ -38,21 +38,19 @@ typedef struct {
ngx_rbtree_t rbtree;
ngx_rbtree_node_t sentinel;
- ngx_pool_t *pool;
-
ngx_time_t *created_at;
ngx_time_t *updated_at;
} ngx_traffic_accounting_period_t;
-ngx_int_t ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, ngx_pool_t *pool, size_t len);
+ngx_int_t ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, size_t len, ngx_log_t *log);
ngx_int_t ngx_traffic_accounting_period_init(ngx_traffic_accounting_period_t *period);
-void ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
+void ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log);
void ngx_traffic_accounting_period_insert_metrics(ngx_traffic_accounting_period_t *period, ngx_traffic_accounting_metrics_t *metrics);
void ngx_traffic_accounting_period_delete(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
void ngx_traffic_accounting_period_delete_metrics(ngx_traffic_accounting_period_t *period, ngx_traffic_accounting_metrics_t *metrics);
ngx_traffic_accounting_metrics_t * ngx_traffic_accounting_period_lookup_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
-ngx_traffic_accounting_metrics_t * ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
+ngx_traffic_accounting_metrics_t * ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log);
typedef ngx_int_t (*ngx_traffic_accounting_period_iterate_func)(void *val, void *para1, void *para2);
diff --git a/src/ngx_traffic_accounting_module.c b/src/ngx_traffic_accounting_module.c
index ebc877a..2291db7 100644
--- a/src/ngx_traffic_accounting_module.c
+++ b/src/ngx_traffic_accounting_module.c
@@ -9,15 +9,14 @@
ngx_int_t
-ngx_traffic_accounting_period_create(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf)
+ngx_traffic_accounting_period_create(ngx_traffic_accounting_main_conf_t *amcf)
{
ngx_traffic_accounting_period_t *period;
- period = ngx_pcalloc(pool, sizeof(ngx_traffic_accounting_period_t));
+ period = ngx_calloc(sizeof(ngx_traffic_accounting_period_t), amcf->log);
if (period == NULL)
return NGX_ERROR;
- period->pool = pool;
ngx_traffic_accounting_period_init(period);
period->created_at = ngx_timeofday();
@@ -28,11 +27,11 @@ ngx_traffic_accounting_period_create(ngx_pool_t *pool, ngx_traffic_accounting_ma
}
ngx_int_t
-ngx_traffic_accounting_period_rotate(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf)
+ngx_traffic_accounting_period_rotate(ngx_traffic_accounting_main_conf_t *amcf)
{
- ngx_pfree(pool, amcf->previous);
+ ngx_free(amcf->previous);
amcf->previous = amcf->current;
- return ngx_traffic_accounting_period_create(pool, amcf);
+ return ngx_traffic_accounting_period_create(amcf);
}
diff --git a/src/ngx_traffic_accounting_module.h b/src/ngx_traffic_accounting_module.h
index 08881f1..adfccec 100644
--- a/src/ngx_traffic_accounting_module.h
+++ b/src/ngx_traffic_accounting_module.h
@@ -46,8 +46,8 @@ ngx_str_t * ngx_traffic_accounting_get_accounting_id(void *entry, ngx_get_loc_co
ngx_get_indexed_variable_pt get_indexed_variable);
-ngx_int_t ngx_traffic_accounting_period_create(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf);
-ngx_int_t ngx_traffic_accounting_period_rotate(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf);
+ngx_int_t ngx_traffic_accounting_period_create(ngx_traffic_accounting_main_conf_t *amcf);
+ngx_int_t ngx_traffic_accounting_period_rotate(ngx_traffic_accounting_main_conf_t *amcf);
#endif /* _NGX_TRAFFIC_ACCOUNTING_MODULE_H_INCLUDED_ */
diff --git a/src/ngx_traffic_accounting_period_metrics.c b/src/ngx_traffic_accounting_period_metrics.c
index b6b7055..7376ad9 100644
--- a/src/ngx_traffic_accounting_period_metrics.c
+++ b/src/ngx_traffic_accounting_period_metrics.c
@@ -10,17 +10,17 @@
static void ngx_traffic_accounting_period_insert_value(ngx_rbtree_node_t *temp, ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel);
ngx_int_t
-ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, ngx_pool_t *pool, size_t len)
+ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, size_t len, ngx_log_t *log)
{
if (metrics->nr_status == NULL) {
- metrics->nr_status = ngx_pcalloc(pool, sizeof(ngx_uint_t) * len);
+ metrics->nr_status = ngx_calloc(sizeof(ngx_uint_t) * len, log);
if (metrics->nr_status == NULL)
return NGX_ERROR;
}
if (metrics->nr_upstream_status == NULL) {
- metrics->nr_upstream_status = ngx_pcalloc(pool, sizeof(ngx_uint_t) * len);
+ metrics->nr_upstream_status = ngx_calloc(sizeof(ngx_uint_t) * len, log);
if (metrics->nr_upstream_status == NULL)
return NGX_ERROR;
@@ -39,14 +39,14 @@ ngx_traffic_accounting_period_init(ngx_traffic_accounting_period_t *period)
}
void
-ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name)
+ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log)
{
ngx_traffic_accounting_metrics_t *metrics;
- metrics = ngx_pcalloc(period->pool, sizeof(ngx_traffic_accounting_metrics_t));
+ metrics = ngx_calloc(sizeof(ngx_traffic_accounting_metrics_t), log);
void *data;
- data = ngx_pcalloc(period->pool, name->len+1);
+ data = ngx_calloc(name->len+1, log);
ngx_memcpy(data, name->data, name->len);
metrics->name.data = data;
@@ -82,7 +82,7 @@ void
ngx_traffic_accounting_period_delete_metrics(ngx_traffic_accounting_period_t *period, ngx_traffic_accounting_metrics_t *metrics)
{
ngx_rbtree_delete(&period->rbtree, &metrics->rbnode);
- ngx_pfree(period->pool, metrics);
+ ngx_free(metrics);
}
ngx_traffic_accounting_metrics_t *
@@ -124,7 +124,7 @@ ngx_traffic_accounting_period_lookup_metrics(ngx_traffic_accounting_period_t *pe
}
ngx_traffic_accounting_metrics_t *
-ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name)
+ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log)
{
ngx_traffic_accounting_metrics_t *n;
@@ -132,7 +132,7 @@ ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *per
if (n != NULL)
return n;
- ngx_traffic_accounting_period_insert(period, name);
+ ngx_traffic_accounting_period_insert(period, name, log);
return ngx_traffic_accounting_period_lookup_metrics(period, name);
}
@@ -158,9 +158,10 @@ ngx_traffic_accounting_period_rbtree_iterate(ngx_traffic_accounting_period_t *pe
if (rc == NGX_DONE) {
/* NGX_DONE -> destroy node */
ngx_rbtree_delete(rbtree, node);
- ngx_pfree(period->pool, n->nr_status);
- ngx_pfree(period->pool, n->nr_upstream_status);
- ngx_pfree(period->pool, n);
+ ngx_free(n->nr_status);
+ ngx_free(n->nr_upstream_status);
+ ngx_free(n->name.data);
+ ngx_free(n);
goto done;
}
diff --git a/src/stream/ngx_stream_accounting_module.c b/src/stream/ngx_stream_accounting_module.c
index b1839d1..3db787d 100644
--- a/src/stream/ngx_stream_accounting_module.c
+++ b/src/stream/ngx_stream_accounting_module.c
@@ -136,7 +136,7 @@ ngx_stream_accounting_process_init(ngx_cycle_t *cycle)
}
if (amcf->current == NULL) {
- if (ngx_traffic_accounting_period_create(cycle->pool, amcf) != NGX_OK)
+ if (ngx_traffic_accounting_period_create(amcf) != NGX_OK)
return NGX_ERROR;
}
@@ -203,7 +203,7 @@ worker_process_alarm_handler(ngx_event_t *ev)
amcf = ngx_stream_cycle_get_module_main_conf(ngx_cycle, ngx_stream_accounting_module);
- ngx_traffic_accounting_period_rotate(amcf->current->pool, amcf);
+ ngx_traffic_accounting_period_rotate(amcf);
ngx_traffic_accounting_period_rbtree_iterate(amcf->previous,
worker_process_export_metrics,
amcf->previous->created_at,
@@ -240,10 +240,10 @@ ngx_stream_accounting_session_handler(ngx_stream_session_t *s)
amcf = ngx_stream_get_module_main_conf(s, ngx_stream_accounting_module);
- metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id);
+ metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id, amcf->log);
if (metrics == NULL) { return NGX_ERROR; }
- if (ngx_traffic_accounting_metrics_init(metrics, amcf->current->pool, ngx_stream_statuses_len) == NGX_ERROR)
+ if (ngx_traffic_accounting_metrics_init(metrics, ngx_stream_statuses_len, amcf->log) == NGX_ERROR)
return NGX_ERROR;
amcf->current->updated_at = ngx_timeofday();