On 2/29/24 07:46, Shaleen Bathla wrote: > virRotatingFileWriterAppendTimestamp function appends timestamp to a > file. > > Signed-off-by: Shaleen Bathla <shaleen.bathla@xxxxxxxxxx> > --- > src/util/virrotatingfile.c | 35 +++++++++++++++++++++++++++++++++++ > 1 file changed, 35 insertions(+) > > diff --git a/src/util/virrotatingfile.c b/src/util/virrotatingfile.c > index b02a88c4b08d..2a44c9bf93e3 100644 > --- a/src/util/virrotatingfile.c > +++ b/src/util/virrotatingfile.c > @@ -30,6 +30,7 @@ > #include "virerror.h" > #include "virfile.h" > #include "virlog.h" > +#include "virtime.h" > > VIR_LOG_INIT("util.rotatingfile"); > > @@ -406,6 +407,40 @@ virRotatingFileWriterRollover(virRotatingFileWriter *file) > } > > > +/** > + * virRotatingFileWriterAppendTimestamp: > + * @file: the file context > + * > + * Append current timestamp with a trailing ' ' char to @file > + * > + * Returns 0 on success and -1 on error > + */ > +static ssize_t > +virRotatingFileWriterAppendTimestamp(virRotatingFileWriter* file) > +{ > + char* timestamp = NULL; > + size_t len = 0; > + > + if (!(timestamp = virTimeStringNow())) { > + g_free(timestamp); > + return -1; > + } > + > + len = VIR_TIME_STRING_BUFLEN; > + timestamp = g_realloc(timestamp, len+1); > + timestamp[len-1] = ' '; > + timestamp[len] = '\0'; Firstly, to avoid having to call g_free() everywhere you can declare the variable like this: g_autofree char *timestamp = NULL; but in this specific case, when we know how long the string is going to be (and that it's relatively short), might as well allocate the buffer on the stack: char timestamp[VIR_TIME_STRING_BUFLEN + 1] = { 0 }; and then call virTimeStringNowRaw() instead. This avoid necessary g_realloc. > + > + if (virRotatingFileWriterAppend(file, timestamp, len) != len) { So eventually, virRotatingFileWriterAppend() would call virRotatingFileWriterAppendTimestamp() which would then call virRotatingFileWriterAppend() again? I wonder whether the timestamp can't be prepended to the string caller wants to write in virRotatingFileWriterAppend(). Michal _______________________________________________ Devel mailing list -- devel@xxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx