netdev-bsd: Use UINT64_MAX for unsupported stats.
[sliver-openvswitch.git] / lib / dynamic-string.c
index b648eef..c373601 100644 (file)
@@ -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.
@@ -16,7 +16,6 @@
 
 #include <config.h>
 #include "dynamic-string.h"
-#include <assert.h>
 #include <stdlib.h>
 #include <string.h>
 #include <time.h>
@@ -165,7 +164,7 @@ ds_put_format_valist(struct ds *ds, const char *format, va_list args_)
         needed = vsnprintf(&ds->string[ds->length], available, format, args);
         va_end(args);
 
-        assert(needed < available);
+        ovs_assert(needed < available);
         ds->length += needed;
     }
 }
@@ -185,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;