diff mbox series

[5/7] io: use GDateTime for formatting timestamp for websock headers

Message ID 20210505103702.521457-6-berrange@redhat.com
State New
Headers show
Series replace all use of strftime() with g_date_time_format() | expand

Commit Message

Daniel P. Berrangé May 5, 2021, 10:37 a.m. UTC
The GDateTime APIs provided by GLib avoid portability pitfalls, such
as some platforms where 'struct timeval.tv_sec' field is still 'long'
instead of 'time_t'. When combined with automatic cleanup, GDateTime
often results in simpler code too.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 io/channel-websock.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

Comments

Daniel P. Berrangé June 11, 2021, 4:29 p.m. UTC | #1
ping: anyone willing to review this

On Wed, May 05, 2021 at 11:37:00AM +0100, Daniel P. Berrangé wrote:
> The GDateTime APIs provided by GLib avoid portability pitfalls, such
> as some platforms where 'struct timeval.tv_sec' field is still 'long'
> instead of 'time_t'. When combined with automatic cleanup, GDateTime
> often results in simpler code too.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  io/channel-websock.c | 10 ++--------
>  1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/io/channel-websock.c b/io/channel-websock.c
> index 03c1f7cb62..70889bb54d 100644
> --- a/io/channel-websock.c
> +++ b/io/channel-websock.c
> @@ -177,15 +177,9 @@ qio_channel_websock_handshake_send_res(QIOChannelWebsock *ioc,
>  
>  static gchar *qio_channel_websock_date_str(void)
>  {
> -    struct tm tm;
> -    time_t now = time(NULL);
> -    char datebuf[128];
> +    g_autoptr(GDateTime) now = g_date_time_new_now_utc();
>  
> -    gmtime_r(&now, &tm);
> -
> -    strftime(datebuf, sizeof(datebuf), "%a, %d %b %Y %H:%M:%S GMT", &tm);
> -
> -    return g_strdup(datebuf);
> +    return g_date_time_format(now, "%a, %d %b %Y %H:%M:%S GMT");
>  }
>  
>  static void qio_channel_websock_handshake_send_res_err(QIOChannelWebsock *ioc,
> -- 
> 2.31.1
> 

Regards,
Daniel
Dr. David Alan Gilbert June 14, 2021, 3:41 p.m. UTC | #2
* Daniel P. Berrangé (berrange@redhat.com) wrote:
> ping: anyone willing to review this
> 

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> On Wed, May 05, 2021 at 11:37:00AM +0100, Daniel P. Berrangé wrote:
> > The GDateTime APIs provided by GLib avoid portability pitfalls, such
> > as some platforms where 'struct timeval.tv_sec' field is still 'long'
> > instead of 'time_t'. When combined with automatic cleanup, GDateTime
> > often results in simpler code too.
> > 
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > ---
> >  io/channel-websock.c | 10 ++--------
> >  1 file changed, 2 insertions(+), 8 deletions(-)
> > 
> > diff --git a/io/channel-websock.c b/io/channel-websock.c
> > index 03c1f7cb62..70889bb54d 100644
> > --- a/io/channel-websock.c
> > +++ b/io/channel-websock.c
> > @@ -177,15 +177,9 @@ qio_channel_websock_handshake_send_res(QIOChannelWebsock *ioc,
> >  
> >  static gchar *qio_channel_websock_date_str(void)
> >  {
> > -    struct tm tm;
> > -    time_t now = time(NULL);
> > -    char datebuf[128];
> > +    g_autoptr(GDateTime) now = g_date_time_new_now_utc();
> >  
> > -    gmtime_r(&now, &tm);
> > -
> > -    strftime(datebuf, sizeof(datebuf), "%a, %d %b %Y %H:%M:%S GMT", &tm);
> > -
> > -    return g_strdup(datebuf);
> > +    return g_date_time_format(now, "%a, %d %b %Y %H:%M:%S GMT");
> >  }
> >  
> >  static void qio_channel_websock_handshake_send_res_err(QIOChannelWebsock *ioc,
> > -- 
> > 2.31.1
> > 
> 
> Regards,
> Daniel
> -- 
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
diff mbox series

Patch

diff --git a/io/channel-websock.c b/io/channel-websock.c
index 03c1f7cb62..70889bb54d 100644
--- a/io/channel-websock.c
+++ b/io/channel-websock.c
@@ -177,15 +177,9 @@  qio_channel_websock_handshake_send_res(QIOChannelWebsock *ioc,
 
 static gchar *qio_channel_websock_date_str(void)
 {
-    struct tm tm;
-    time_t now = time(NULL);
-    char datebuf[128];
+    g_autoptr(GDateTime) now = g_date_time_new_now_utc();
 
-    gmtime_r(&now, &tm);
-
-    strftime(datebuf, sizeof(datebuf), "%a, %d %b %Y %H:%M:%S GMT", &tm);
-
-    return g_strdup(datebuf);
+    return g_date_time_format(now, "%a, %d %b %Y %H:%M:%S GMT");
 }
 
 static void qio_channel_websock_handshake_send_res_err(QIOChannelWebsock *ioc,