Skip to content

Commit 13a6f9c

Browse files
committed
Add wrap_suffix and wrap_final_suffix to zlog stream buffer
1 parent 5cafe66 commit 13a6f9c

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

sapi/fpm/fpm/zlog.c

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,18 @@ static inline ssize_t zlog_stream_unbuffered_write(struct zlog_stream *stream, c
337337
}
338338
/* }}} */
339339

340+
static inline ssize_t zlog_stream_buf_copy(struct zlog_stream *stream, const char *str, size_t str_len) /* {{{ */
341+
{
342+
if (stream->buf_size - stream->len <= str_len && !zlog_stream_buf_alloc_ex(stream, str_len)) {
343+
return -1;
344+
}
345+
346+
memcpy(stream->buf + stream->len, str, str_len);
347+
stream->len += str_len;
348+
349+
return str_len;
350+
}
351+
340352
/* TODO: handle errors from this function in all calls (check for -1) */
341353
static ssize_t zlog_stream_buf_append(struct zlog_stream *stream, const char *str, size_t str_len) /* {{{ */
342354
{
@@ -350,19 +362,18 @@ static ssize_t zlog_stream_buf_append(struct zlog_stream *stream, const char *st
350362
available_len = str_len;
351363
}
352364

353-
if (stream->buf_size - stream->len <= available_len && !zlog_stream_buf_alloc_ex(stream, available_len)) {
365+
if (zlog_stream_buf_copy(stream, str, available_len) < 0) {
354366
return -1;
355367
}
356368

357-
memcpy(stream->buf + stream->len, str, available_len);
358-
stream->len += available_len;
359-
360369
if (!finished) {
361370
return available_len;
362371
}
363372

364373
if (stream->wrap) {
365-
/* TODO: append wrap_suffix before the write */
374+
if (stream->wrap_suffix != NULL) {
375+
zlog_stream_buf_copy(stream, stream->wrap_suffix, stream->wrap_suffix_len);
376+
}
366377
zlog_stream_direct_write(stream, stream->buf, stream->len);
367378
stream->len = 0;
368379
zlog_stream_prefix_ex(stream, stream->function, stream->line);
@@ -550,7 +561,9 @@ ssize_t zlog_stream_str(struct zlog_stream *stream, const char *str, size_t str_
550561
zlog_bool zlog_stream_finish(struct zlog_stream *stream) /* {{{ */
551562
{
552563
if (stream->use_buffer) {
553-
/* TODO: append stream->wrap_final_suffix */
564+
if (stream->wrap_final_suffix != NULL) {
565+
zlog_stream_buf_copy(stream, stream->wrap_final_suffix, stream->wrap_final_suffix_len);
566+
}
554567
if (external_logger != NULL) {
555568
external_logger(stream->flags & ZLOG_LEVEL_MASK,
556569
stream->buf + stream->prefix_len, stream->len - stream->prefix_len);

0 commit comments

Comments
 (0)