summaryrefslogtreecommitdiffstats
path: root/src/errors.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 05:11:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 05:11:10 +0000
commitd2a536e458f4cd7ffeadfe302c23bbfe263b0053 (patch)
treefec732451d7ffbd0e7b8c4461dfcfe36faa13322 /src/errors.c
parentAdding debian version 2.9.7-1. (diff)
downloadhaproxy-d2a536e458f4cd7ffeadfe302c23bbfe263b0053.tar.xz
haproxy-d2a536e458f4cd7ffeadfe302c23bbfe263b0053.zip
Merging upstream version 3.0.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--src/errors.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/errors.c b/src/errors.c
index 7a2d14a..197a0cd 100644
--- a/src/errors.c
+++ b/src/errors.c
@@ -90,11 +90,7 @@ static struct ring *startup_logs_from_fd(int fd, int new)
if (area == MAP_FAILED || area == NULL)
goto error;
- if (new)
- r = ring_make_from_area(area, STARTUP_LOG_SIZE);
- else
- r = ring_cast_from_area(area);
-
+ r = ring_make_from_area(area, STARTUP_LOG_SIZE, new);
if (r == NULL)
goto error;
@@ -116,7 +112,7 @@ error:
* Once in wait mode, the shm must be copied and closed.
*
*/
-void startup_logs_init()
+void startup_logs_init_shm()
{
struct ring *r = NULL;
char *str_fd, *endptr;
@@ -180,24 +176,29 @@ error:
}
-#else /* ! USE_SHM_OPEN */
+#endif /* ! USE_SHM_OPEN */
void startup_logs_init()
{
+#ifdef USE_SHM_OPEN
+ startup_logs_init_shm();
+#else /* ! USE_SHM_OPEN */
startup_logs = ring_new(STARTUP_LOG_SIZE);
-}
-
#endif
+ if (startup_logs)
+ vma_set_name(ring_allocated_area(startup_logs),
+ ring_allocated_size(startup_logs),
+ "errors", "startup_logs");
+}
/* free the startup logs, unmap if it was an shm */
void startup_logs_free(struct ring *r)
{
#ifdef USE_SHM_OPEN
if (r == shm_startup_logs)
- munmap(r, STARTUP_LOG_SIZE);
- else
+ munmap(ring_allocated_area(r), STARTUP_LOG_SIZE);
#endif /* ! USE_SHM_OPEN */
- ring_free(r);
+ ring_free(r);
}
/* duplicate a startup logs which was previously allocated in a shm */
@@ -206,12 +207,11 @@ struct ring *startup_logs_dup(struct ring *src)
struct ring *dst = NULL;
/* must use the size of the previous buffer */
- dst = ring_new(b_size(&src->buf));
+ dst = ring_new(ring_allocated_size(src));
if (!dst)
goto error;
- b_reset(&dst->buf);
- b_ncat(&dst->buf, &src->buf, b_data(&src->buf));
+ ring_dup(dst, src, ring_size(src));
error:
return dst;
}