Signed-off-by: Ben Pfaff <[email protected]>
---
lib/dynamic-string.c | 12 ++++++------
lib/table.c | 5 +++--
ovsdb/ovsdb-tool.c | 3 ++-
utilities/ovs-ofctl.c | 4 +++-
4 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/lib/dynamic-string.c b/lib/dynamic-string.c
index bd1cf45..c373601 100644
--- a/lib/dynamic-string.c
+++ b/lib/dynamic-string.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -184,21 +184,21 @@ ds_put_printable(struct ds *ds, const char *s, size_t n)
}
/* Writes the current time to 'string' based on 'template'.
- * The current time is either localtime or UTC based on 'utc'. */
+ * The current time is either local time or UTC based on 'utc'. */
void
ds_put_strftime(struct ds *ds, const char *template, bool utc)
{
- const struct tm *tm;
+ struct tm tm;
time_t now = time_wall();
if (utc) {
- tm = gmtime(&now);
+ gmtime_r(&now, &tm);
} else {
- tm = localtime(&now);
+ localtime_r(&now, &tm);
}
for (;;) {
size_t avail = ds->string ? ds->allocated - ds->length + 1 : 0;
- size_t used = strftime(&ds->string[ds->length], avail, template, tm);
+ size_t used = strftime(&ds->string[ds->length], avail, template, &tm);
if (used) {
ds->length += used;
return;
diff --git a/lib/table.c b/lib/table.c
index 15bcec8..266c410 100644
--- a/lib/table.c
+++ b/lib/table.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc.
+ * Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -222,7 +222,8 @@ static void
table_format_timestamp__(char *s, size_t size)
{
time_t now = time_wall();
- strftime(s, size, "%Y-%m-%d %H:%M:%S", gmtime(&now));
+ struct tm tm;
+ strftime(s, size, "%Y-%m-%d %H:%M:%S", gmtime_r(&now, &tm));
}
static void
diff --git a/ovsdb/ovsdb-tool.c b/ovsdb/ovsdb-tool.c
index b50b39b..fe6ab42 100644
--- a/ovsdb/ovsdb-tool.c
+++ b/ovsdb/ovsdb-tool.c
@@ -519,9 +519,10 @@ do_show_log(int argc, char *argv[])
date = shash_find_data(json_object(json), "_date");
if (date && date->type == JSON_INTEGER) {
time_t t = json_integer(date);
+ struct tm tm;
char s[128];
- strftime(s, sizeof s, "%Y-%m-%d %H:%M:%S", gmtime(&t));
+ strftime(s, sizeof s, "%Y-%m-%d %H:%M:%S", gmtime_r(&t, &tm));
printf(" %s", s);
}
diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c
index ec775c7..409d640 100644
--- a/utilities/ovs-ofctl.c
+++ b/utilities/ovs-ofctl.c
@@ -1358,9 +1358,11 @@ monitor_vconn(struct vconn *vconn)
if (timestamp) {
time_t now = time_wall();
+ struct tm tm;
char s[32];
- strftime(s, sizeof s, "%Y-%m-%d %H:%M:%S: ", gmtime(&now));
+ strftime(s, sizeof s, "%Y-%m-%d %H:%M:%S: ",
+ gmtime_r(&now, &tm));
fputs(s, stderr);
}
--
1.7.2.5
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev