nginx-0.0.10-2004-09-03-19:50:30 import
diff --git a/src/core/ngx_list.c b/src/core/ngx_list.c
new file mode 100644
index 0000000..10d7957
--- /dev/null
+++ b/src/core/ngx_list.c
@@ -0,0 +1,36 @@
+
+#include <ngx_config.h>
+#include <ngx_core.h>
+
+
+void *ngx_push_list(ngx_list_t *l)
+{
+ void *elt;
+ ngx_list_part_t *last;
+
+ last = l->last;
+
+ if (last->nelts == l->nalloc) {
+
+ /* the last part is full, allocate a new list part */
+
+ if (!(last = ngx_palloc(l->pool, sizeof(ngx_list_part_t)))) {
+ return NULL;
+ }
+
+ if (!(last->elts = ngx_palloc(l->pool, l->nalloc * l->size))) {
+ return NULL;
+ }
+
+ last->nelts = 0;
+ last->next = NULL;
+
+ l->last->next = last;
+ l->last = last;
+ }
+
+ elt = (char *) last->elts + l->size * last->nelts;
+ last->nelts++;
+
+ return elt;
+}