<div dir="ltr">Looks good to me, just found two places where the line length exceeds 79,<div class="gmail_extra"><br></div><div class="gmail_extra">Also, want to ask does it make sense the add line length check during &#39;make&#39;?</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">e.g. the check can be as simple as:</div><div class="gmail_extra"><br></div><div class="gmail_extra"><pre style="margin-top:0px;margin-bottom:10px;padding:5px;border:0px;font-size:13px;vertical-align:baseline;overflow:auto;width:auto;max-height:600px;font-family:Consolas,Menlo,Monaco,&#39;Lucida Console&#39;,&#39;Liberation Mono&#39;,&#39;DejaVu Sans Mono&#39;,&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace,serif;background-color:rgb(238,238,238);color:rgb(51,51,51);line-height:20px">
<code style="margin:0px;padding:0px;border:0px;vertical-align:baseline;font-family:Consolas,Menlo,Monaco,&#39;Lucida Console&#39;,&#39;Liberation Mono&#39;,&#39;DejaVu Sans Mono&#39;,&#39;Bitstream Vera Sans Mono&#39;,&#39;Courier New&#39;,monospace,serif;color:rgb(34,34,34)">grep &#39;.\{80\}&#39; file</code></pre>
<br><div class="gmail_quote">On Wed, Jun 19, 2013 at 1:17 PM, Ben Pfaff <span dir="ltr">&lt;<a href="mailto:blp@nicira.com" target="_blank">blp@nicira.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Signed-off-by: Ben Pfaff &lt;<a href="mailto:blp@nicira.com">blp@nicira.com</a>&gt;<br>
---<br>
 lib/daemon.c                 |   31 ++++++++++----------<br>
 lib/dpif-linux.c             |    9 +++--<br>
 lib/dpif-netdev.c            |    4 +-<br>
 lib/dpif.c                   |   23 ++++++++-------<br>
 lib/entropy.c                |    4 +-<br>
 lib/fatal-signal.c           |    6 ++--<br>
 lib/json.c                   |    5 ++-<br>
 lib/jsonrpc.c                |    7 ++--<br>
 lib/learning-switch.c        |    6 ++--<br>
 lib/lockfile.c               |   11 ++++---<br>
 lib/netdev-bsd.c             |   32 ++++++++++----------<br>
 lib/netdev-dummy.c           |    5 ++-<br>
 lib/netdev-linux.c           |   63 ++++++++++++++++++++++--------------------<br>
 lib/netdev.c                 |   10 +++---<br>
 lib/netlink-notifier.c       |    7 ++--<br>
 lib/netlink-socket.c         |   26 ++++++++--------<br>
 lib/ofp-errors.c             |   10 ++++--<br>
 lib/ovs-thread.c             |    2 +-<br>
 lib/poll-loop.c              |    4 +-<br>
 lib/process.c                |    6 ++--<br>
 lib/rconn.c                  |    8 +++--<br>
 lib/reconnect.c              |    6 ++--<br>
 lib/rtbsd.c                  |    8 ++--<br>
 lib/sflow_agent.c            |    3 +-<br>
 lib/signals.c                |    4 +-<br>
 lib/socket-util.c            |   40 ++++++++++++++------------<br>
 lib/stream-fd.c              |    4 +-<br>
 lib/stream-ssl.c             |   19 ++++++------<br>
 lib/stream-tcp.c             |    4 +-<br>
 lib/stream-unix.c            |    7 ++--<br>
 lib/timeval.c                |    6 ++--<br>
 lib/unixctl.c                |    2 +-<br>
 lib/util.c                   |    5 ++-<br>
 lib/vconn-stream.c           |    6 ++--<br>
 lib/vconn.c                  |    2 +-<br>
 lib/vlandev.c                |    6 ++--<br>
 lib/vlog.c                   |    4 +-<br>
 lib/worker.c                 |    8 ++--<br>
 ofproto/collectors.c         |    6 ++--<br>
 ofproto/connmgr.c            |    6 ++--<br>
 ofproto/in-band.c            |   12 ++++---<br>
 ofproto/ofproto-dpif-sflow.c |    2 +-<br>
 ofproto/ofproto-dpif.c       |   14 ++++----<br>
 ofproto/ofproto.c            |   24 ++++++++--------<br>
 ovsdb/jsonrpc-server.c       |    6 ++--<br>
 ovsdb/ovsdb-server.c         |    7 ++--<br>
 tests/test-netflow.c         |    2 +-<br>
 tests/test-sflow.c           |    2 +-<br>
 tests/test-vconn.c           |   12 ++++----<br>
 utilities/ovs-controller.c   |    2 +-<br>
 utilities/ovs-dpctl.c        |    8 ++--<br>
 utilities/ovs-ofctl.c        |   10 +++---<br>
 vswitchd/bridge.c            |   18 ++++++------<br>
 vswitchd/ovs-vswitchd.c      |    4 +-<br>
 vswitchd/system-stats.c      |   20 ++++++++-----<br>
 vswitchd/xenserver.c         |    4 +-<br>
 56 files changed, 300 insertions(+), 272 deletions(-)<br>
<br>
diff --git a/lib/daemon.c b/lib/daemon.c<br>
index 56b32b8..3c1e5c3 100644<br>
--- a/lib/daemon.c<br>
+++ b/lib/daemon.c<br>
@@ -210,7 +210,7 @@ make_pidfile(void)<br>
<br>
     file = fopen(tmpfile, &quot;a+&quot;);<br>
     if (!file) {<br>
-        VLOG_FATAL(&quot;%s: create failed (%s)&quot;, tmpfile, strerror(errno));<br>
+        VLOG_FATAL(&quot;%s: create failed (%s)&quot;, tmpfile, ovs_strerror(errno));<br>
     }<br>
<br>
     error = lock_pidfile(file, F_SETLK);<br>
@@ -218,7 +218,8 @@ make_pidfile(void)<br>
         /* Looks like we failed to acquire the lock.  Note that, if we failed<br>
          * for some other reason (and &#39;!overwrite_pidfile&#39;), we will have<br>
          * left &#39;tmpfile&#39; as garbage in the file system. */<br>
-        VLOG_FATAL(&quot;%s: fcntl(F_SETLK) failed (%s)&quot;, tmpfile, strerror(error));<br>
+        VLOG_FATAL(&quot;%s: fcntl(F_SETLK) failed (%s)&quot;, tmpfile,<br>
+                   ovs_strerror(error));<br>
     }<br>
<br>
     if (!overwrite_pidfile) {<br>
@@ -229,16 +230,16 @@ make_pidfile(void)<br>
     }<br>
<br>
     if (fstat(fileno(file), &amp;s) == -1) {<br>
-        VLOG_FATAL(&quot;%s: fstat failed (%s)&quot;, tmpfile, strerror(errno));<br>
+        VLOG_FATAL(&quot;%s: fstat failed (%s)&quot;, tmpfile, ovs_strerror(errno));<br>
     }<br>
<br>
     if (ftruncate(fileno(file), 0) == -1) {<br>
-        VLOG_FATAL(&quot;%s: truncate failed (%s)&quot;, tmpfile, strerror(errno));<br>
+        VLOG_FATAL(&quot;%s: truncate failed (%s)&quot;, tmpfile, ovs_strerror(errno));<br>
     }<br>
<br>
     fprintf(file, &quot;%ld\n&quot;, pid);<br>
     if (fflush(file) == EOF) {<br>
-        VLOG_FATAL(&quot;%s: write failed (%s)&quot;, tmpfile, strerror(errno));<br>
+        VLOG_FATAL(&quot;%s: write failed (%s)&quot;, tmpfile, ovs_strerror(errno));<br>
     }<br>
<br>
     error = rename(tmpfile, pidfile);<br>
@@ -249,7 +250,7 @@ make_pidfile(void)<br>
<br>
     if (error &lt; 0) {<br>
         VLOG_FATAL(&quot;failed to rename \&quot;%s\&quot; to \&quot;%s\&quot; (%s)&quot;,<br>
-                   tmpfile, pidfile, strerror(errno));<br>
+                   tmpfile, pidfile, ovs_strerror(errno));<br>
     }<br>
<br>
     /* Ensure that the pidfile will get deleted on exit. */<br>
@@ -339,7 +340,7 @@ fork_and_wait_for_startup(int *fdp)<br>
                                status_msg);<br>
                 }<br>
             } else if (retval &lt; 0) {<br>
-                VLOG_FATAL(&quot;waitpid failed (%s)&quot;, strerror(errno));<br>
+                VLOG_FATAL(&quot;waitpid failed (%s)&quot;, ovs_strerror(errno));<br>
             } else {<br>
                 NOT_REACHED();<br>
             }<br>
@@ -364,7 +365,7 @@ fork_notify_startup(int fd)<br>
<br>
         error = write_fully(fd, &quot;&quot;, 1, &amp;bytes_written);<br>
         if (error) {<br>
-            VLOG_FATAL(&quot;pipe write failed (%s)&quot;, strerror(error));<br>
+            VLOG_FATAL(&quot;pipe write failed (%s)&quot;, ovs_strerror(error));<br>
         }<br>
<br>
         close(fd);<br>
@@ -415,7 +416,7 @@ monitor_daemon(pid_t daemon_pid)<br>
         } while (retval == -1 &amp;&amp; errno == EINTR);<br>
<br>
         if (retval == -1) {<br>
-            VLOG_FATAL(&quot;waitpid failed (%s)&quot;, strerror(errno));<br>
+            VLOG_FATAL(&quot;waitpid failed (%s)&quot;, ovs_strerror(errno));<br>
         } else if (retval == daemon_pid) {<br>
             char *s = process_status_msg(status);<br>
             if (should_restart(status)) {<br>
@@ -433,7 +434,7 @@ monitor_daemon(pid_t daemon_pid)<br>
                     r.rlim_max = 0;<br>
                     if (setrlimit(RLIMIT_CORE, &amp;r) == -1) {<br>
                         VLOG_WARN(&quot;failed to disable core dumps: %s&quot;,<br>
-                                  strerror(errno));<br>
+                                  ovs_strerror(errno));<br>
                     }<br>
                 }<br>
<br>
@@ -641,13 +642,13 @@ read_pidfile__(const char *pidfile, bool delete_if_stale)<br>
             return 0;<br>
         }<br>
         error = errno;<br>
-        VLOG_WARN(&quot;%s: open: %s&quot;, pidfile, strerror(error));<br>
+        VLOG_WARN(&quot;%s: open: %s&quot;, pidfile, ovs_strerror(error));<br>
         goto error;<br>
     }<br>
<br>
     error = lock_pidfile__(file, F_GETLK, &amp;lck);<br>
     if (error) {<br>
-        VLOG_WARN(&quot;%s: fcntl: %s&quot;, pidfile, strerror(error));<br>
+        VLOG_WARN(&quot;%s: fcntl: %s&quot;, pidfile, ovs_strerror(error));<br>
         goto error;<br>
     }<br>
     if (lck.l_type == F_UNLCK) {<br>
@@ -686,7 +687,7 @@ read_pidfile__(const char *pidfile, bool delete_if_stale)<br>
         if (unlink(pidfile)) {<br>
             error = errno;<br>
             VLOG_WARN(&quot;%s: failed to delete stale pidfile (%s)&quot;,<br>
-                      pidfile, strerror(error));<br>
+                      pidfile, ovs_strerror(error));<br>
             goto error;<br>
         }<br>
         VLOG_DBG(&quot;%s: deleted stale pidfile&quot;, pidfile);<br>
@@ -697,7 +698,7 @@ read_pidfile__(const char *pidfile, bool delete_if_stale)<br>
     if (!fgets(line, sizeof line, file)) {<br>
         if (ferror(file)) {<br>
             error = errno;<br>
-            VLOG_WARN(&quot;%s: read: %s&quot;, pidfile, strerror(error));<br>
+            VLOG_WARN(&quot;%s: read: %s&quot;, pidfile, ovs_strerror(error));<br>
         } else {<br>
             error = ESRCH;<br>
             VLOG_WARN(&quot;%s: read: unexpected end of file&quot;, pidfile);<br>
@@ -743,6 +744,6 @@ check_already_running(void)<br>
         VLOG_FATAL(&quot;%s: already running as pid %ld, aborting&quot;, pidfile, pid);<br>
     } else if (pid &lt; 0) {<br>
         VLOG_FATAL(&quot;%s: pidfile check failed (%s), aborting&quot;,<br>
-                   pidfile, strerror(-pid));<br>
+                   pidfile, ovs_strerror(-pid));<br>
     }<br>
 }<br>
diff --git a/lib/dpif-linux.c b/lib/dpif-linux.c<br>
index 1383b58..5327b0f 100644<br>
--- a/lib/dpif-linux.c<br>
+++ b/lib/dpif-linux.c<br>
@@ -928,7 +928,8 @@ dpif_linux_flow_dump_next(const struct dpif *dpif_ OVS_UNUSED, void *state_,<br>
             if (error == ENOENT) {<br>
                 VLOG_DBG(&quot;dumped flow disappeared on get&quot;);<br>
             } else if (error) {<br>
-                VLOG_WARN(&quot;error fetching dumped flow: %s&quot;, strerror(error));<br>
+                VLOG_WARN(&quot;error fetching dumped flow: %s&quot;,<br>
+                          ovs_strerror(error));<br>
             }<br>
         }<br>
     } while (error);<br>
@@ -1195,7 +1196,7 @@ dpif_linux_recv_set(struct dpif *dpif_, bool enable)<br>
             } else {<br>
                 VLOG_WARN_RL(&amp;error_rl,<br>
                              &quot;%s: failed to set upcall pid on port: %s&quot;,<br>
-                             dpif_name(&amp;dpif-&gt;dpif), strerror(error));<br>
+                             dpif_name(&amp;dpif-&gt;dpif), ovs_strerror(error));<br>
                 nl_sock_destroy(sock);<br>
<br>
                 if (error == ENODEV || error == ENOENT) {<br>
@@ -1308,7 +1309,7 @@ dpif_linux_recv(struct dpif *dpif_, struct dpif_upcall *upcall,<br>
         } while (retval &lt; 0 &amp;&amp; errno == EINTR);<br>
         if (retval &lt; 0) {<br>
             static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 1);<br>
-            VLOG_WARN_RL(&amp;rl, &quot;epoll_wait failed (%s)&quot;, strerror(errno));<br>
+            VLOG_WARN_RL(&amp;rl, &quot;epoll_wait failed (%s)&quot;, ovs_strerror(errno));<br>
         } else if (retval &gt; 0) {<br>
             dpif-&gt;n_events = retval;<br>
         }<br>
@@ -1479,7 +1480,7 @@ dpif_linux_is_internal_device(const char *name)<br>
         ofpbuf_delete(buf);<br>
     } else if (error != ENODEV &amp;&amp; error != ENOENT) {<br>
         VLOG_WARN_RL(&amp;error_rl, &quot;%s: vport query failed (%s)&quot;,<br>
-                     name, strerror(error));<br>
+                     name, ovs_strerror(error));<br>
     }<br>
<br>
     return reply.type == OVS_VPORT_TYPE_INTERNAL;<br>
diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c<br>
index 52aedb6..771f3b0 100644<br>
--- a/lib/dpif-netdev.c<br>
+++ b/lib/dpif-netdev.c<br>
@@ -404,7 +404,7 @@ do_add_port(struct dp_netdev *dp, const char *devname, const char *type,<br>
     if (error<br>
         &amp;&amp; !(error == EOPNOTSUPP &amp;&amp; dpif_netdev_class_is_dummy(dp-&gt;class))) {<br>
         VLOG_ERR(&quot;%s: cannot receive packets on this network device (%s)&quot;,<br>
-                 devname, strerror(errno));<br>
+                 devname, ovs_strerror(errno));<br>
         netdev_close(netdev);<br>
         return error;<br>
     }<br>
@@ -1083,7 +1083,7 @@ dpif_netdev_run(struct dpif *dpif)<br>
             static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5);<br>
<br>
             VLOG_ERR_RL(&amp;rl, &quot;error receiving data from %s: %s&quot;,<br>
-                        netdev_get_name(port-&gt;netdev), strerror(error));<br>
+                        netdev_get_name(port-&gt;netdev), ovs_strerror(error));<br>
         }<br>
     }<br>
     ofpbuf_uninit(&amp;packet);<br>
diff --git a/lib/dpif.c b/lib/dpif.c<br>
index 6aa52d5..bcb4f65 100644<br>
--- a/lib/dpif.c<br>
+++ b/lib/dpif.c<br>
@@ -1,5 +1,5 @@<br>
 /*<br>
- * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.<br>
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -215,7 +215,7 @@ dp_enumerate_names(const char *type, struct sset *names)<br>
<br>
     if (error) {<br>
         VLOG_WARN(&quot;failed to enumerate %s datapaths: %s&quot;, dpif_class-&gt;type,<br>
-                   strerror(error));<br>
+                   ovs_strerror(error));<br>
     }<br>
<br>
     return error;<br>
@@ -310,10 +310,11 @@ dpif_create_and_open(const char *name, const char *type, struct dpif **dpifp)<br>
         error = dpif_open(name, type, dpifp);<br>
         if (error) {<br>
             VLOG_WARN(&quot;datapath %s already exists but cannot be opened: %s&quot;,<br>
-                      name, strerror(error));<br>
+                      name, ovs_strerror(error));<br>
         }<br>
     } else if (error) {<br>
-        VLOG_WARN(&quot;failed to create datapath %s: %s&quot;, name, strerror(error));<br>
+        VLOG_WARN(&quot;failed to create datapath %s: %s&quot;,<br>
+                  name, ovs_strerror(error));<br>
     }<br>
     return error;<br>
 }<br>
@@ -460,7 +461,7 @@ dpif_port_add(struct dpif *dpif, struct netdev *netdev, uint32_t *port_nop)<br>
                     dpif_name(dpif), netdev_name, port_no);<br>
     } else {<br>
         VLOG_WARN_RL(&amp;error_rl, &quot;%s: failed to add %s as port: %s&quot;,<br>
-                     dpif_name(dpif), netdev_name, strerror(error));<br>
+                     dpif_name(dpif), netdev_name, ovs_strerror(error));<br>
         port_no = UINT32_MAX;<br>
     }<br>
     if (port_nop) {<br>
@@ -517,7 +518,7 @@ dpif_port_exists(const struct dpif *dpif, const char *devname)<br>
     int error = dpif-&gt;dpif_class-&gt;port_query_by_name(dpif, devname, NULL);<br>
     if (error != 0 &amp;&amp; error != ENOENT &amp;&amp; error != ENODEV) {<br>
         VLOG_WARN_RL(&amp;error_rl, &quot;%s: failed to query port %s: %s&quot;,<br>
-                     dpif_name(dpif), devname, strerror(error));<br>
+                     dpif_name(dpif), devname, ovs_strerror(error));<br>
     }<br>
<br>
     return !error;<br>
@@ -540,7 +541,7 @@ dpif_port_query_by_number(const struct dpif *dpif, uint32_t port_no,<br>
     } else {<br>
         memset(port, 0, sizeof *port);<br>
         VLOG_WARN_RL(&amp;error_rl, &quot;%s: failed to query port %&quot;PRIu32&quot;: %s&quot;,<br>
-                     dpif_name(dpif), port_no, strerror(error));<br>
+                     dpif_name(dpif), port_no, ovs_strerror(error));<br>
     }<br>
     return error;<br>
 }<br>
@@ -569,7 +570,7 @@ dpif_port_query_by_name(const struct dpif *dpif, const char *devname,<br>
         VLOG_RL(&amp;error_rl,<br>
                 error == ENOENT || error == ENODEV ? VLL_DBG : VLL_WARN,<br>
                 &quot;%s: failed to query port %s: %s&quot;,<br>
-                dpif_name(dpif), devname, strerror(error));<br>
+                dpif_name(dpif), devname, ovs_strerror(error));<br>
     }<br>
     return error;<br>
 }<br>
@@ -1243,7 +1244,7 @@ log_operation(const struct dpif *dpif, const char *operation, int error)<br>
                      dpif_name(dpif), operation, ofperr_get_name(error));<br>
     } else {<br>
         VLOG_WARN_RL(&amp;error_rl, &quot;%s: %s failed (%s)&quot;,<br>
-                     dpif_name(dpif), operation, strerror(error));<br>
+                     dpif_name(dpif), operation, ovs_strerror(error));<br>
     }<br>
 }<br>
<br>
@@ -1273,7 +1274,7 @@ log_flow_message(const struct dpif *dpif, int error, const char *operation,<br>
     }<br>
     ds_put_format(&amp;ds, &quot;%s &quot;, operation);<br>
     if (error) {<br>
-        ds_put_format(&amp;ds, &quot;(%s) &quot;, strerror(error));<br>
+        ds_put_format(&amp;ds, &quot;(%s) &quot;, ovs_strerror(error));<br>
     }<br>
     odp_flow_key_format(key, key_len, &amp;ds);<br>
     if (stats) {<br>
@@ -1336,7 +1337,7 @@ log_execute_message(struct dpif *dpif, const struct dpif_execute *execute,<br>
         ds_put_format(&amp;ds, &quot;%s: execute &quot;, dpif_name(dpif));<br>
         format_odp_actions(&amp;ds, execute-&gt;actions, execute-&gt;actions_len);<br>
         if (error) {<br>
-            ds_put_format(&amp;ds, &quot; failed (%s)&quot;, strerror(error));<br>
+            ds_put_format(&amp;ds, &quot; failed (%s)&quot;, ovs_strerror(error));<br>
         }<br>
         ds_put_format(&amp;ds, &quot; on packet %s&quot;, packet);<br>
         vlog(THIS_MODULE, error ? VLL_WARN : VLL_DBG, &quot;%s&quot;, ds_cstr(&amp;ds));<br>
diff --git a/lib/entropy.c b/lib/entropy.c<br>
index c1f0886..02f56e0 100644<br>
--- a/lib/entropy.c<br>
+++ b/lib/entropy.c<br>
@@ -1,4 +1,4 @@<br>
-/* Copyright (c) 2008, 2009, 2010, 2011 Nicira, Inc.<br>
+/* Copyright (c) 2008, 2009, 2010, 2011, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -39,7 +39,7 @@ get_entropy(void *buffer, size_t n)<br>
<br>
     fd = open(urandom, O_RDONLY);<br>
     if (fd &lt; 0) {<br>
-        VLOG_ERR(&quot;%s: open failed (%s)&quot;, urandom, strerror(errno));<br>
+        VLOG_ERR(&quot;%s: open failed (%s)&quot;, urandom, ovs_strerror(errno));<br>
         return errno ? errno : EINVAL;<br>
     }<br>
<br>
diff --git a/lib/fatal-signal.c b/lib/fatal-signal.c<br>
index 8c66ef5..1770457 100644<br>
--- a/lib/fatal-signal.c<br>
+++ b/lib/fatal-signal.c<br>
@@ -1,5 +1,5 @@<br>
 /*<br>
- * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.<br>
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -84,7 +84,7 @@ fatal_signal_init(void)<br>
             xsigaction(sig_nr, NULL, &amp;old_sa);<br>
             if (old_sa.sa_handler == SIG_DFL<br>
                 &amp;&amp; signal(sig_nr, fatal_signal_handler) == SIG_ERR) {<br>
-                VLOG_FATAL(&quot;signal failed (%s)&quot;, strerror(errno));<br>
+                VLOG_FATAL(&quot;signal failed (%s)&quot;, ovs_strerror(errno));<br>
             }<br>
         }<br>
         atexit(atexit_handler);<br>
@@ -238,7 +238,7 @@ fatal_signal_unlink_file_now(const char *file)<br>
 {<br>
     int error = unlink(file) ? errno : 0;<br>
     if (error) {<br>
-        VLOG_WARN(&quot;could not unlink \&quot;%s\&quot; (%s)&quot;, file, strerror(error));<br>
+        VLOG_WARN(&quot;could not unlink \&quot;%s\&quot; (%s)&quot;, file, ovs_strerror(error));<br>
     }<br>
<br>
     fatal_signal_remove_file_to_unlink(file);<br>
diff --git a/lib/json.c b/lib/json.c<br>
index af385c6..56dc5ef 100644<br>
--- a/lib/json.c<br>
+++ b/lib/json.c<br>
@@ -1026,7 +1026,8 @@ json_from_file(const char *file_name)<br>
     stream = fopen(file_name, &quot;r&quot;);<br>
     if (!stream) {<br>
         return json_string_create_nocopy(<br>
-            xasprintf(&quot;error opening \&quot;%s\&quot;: %s&quot;, file_name, strerror(errno)));<br>
+            xasprintf(&quot;error opening \&quot;%s\&quot;: %s&quot;, file_name,<br>
+                      ovs_strerror(errno)));<br>
     }<br>
     json = json_from_stream(stream);<br>
     fclose(stream);<br>
@@ -1063,7 +1064,7 @@ json_from_stream(FILE *stream)<br>
     if (ferror(stream)) {<br>
         json_destroy(json);<br>
         json = json_string_create_nocopy(<br>
-            xasprintf(&quot;error reading JSON stream: %s&quot;, strerror(errno)));<br>
+            xasprintf(&quot;error reading JSON stream: %s&quot;, ovs_strerror(errno)));<br>
     }<br>
<br>
     return json;<br>
diff --git a/lib/jsonrpc.c b/lib/jsonrpc.c<br>
index 1ea5398..56b4cce 100644<br>
--- a/lib/jsonrpc.c<br>
+++ b/lib/jsonrpc.c<br>
@@ -129,7 +129,7 @@ jsonrpc_run(struct jsonrpc *rpc)<br>
         } else {<br>
             if (retval != -EAGAIN) {<br>
                 VLOG_WARN_RL(&amp;rl, &quot;%s: send error: %s&quot;,<br>
-                             rpc-&gt;name, strerror(-retval));<br>
+                             rpc-&gt;name, ovs_strerror(-retval));<br>
                 jsonrpc_error(rpc, -retval);<br>
             }<br>
             break;<br>
@@ -307,7 +307,7 @@ jsonrpc_recv(struct jsonrpc *rpc, struct jsonrpc_msg **msgp)<br>
                     return EAGAIN;<br>
                 } else {<br>
                     VLOG_WARN_RL(&amp;rl, &quot;%s: receive error: %s&quot;,<br>
-                                 rpc-&gt;name, strerror(-retval));<br>
+                                 rpc-&gt;name, ovs_strerror(-retval));<br>
                     jsonrpc_error(rpc, -retval);<br>
                     return rpc-&gt;status;<br>
                 }<br>
@@ -1116,7 +1116,8 @@ jsonrpc_session_set_dscp(struct jsonrpc_session *s,<br>
             error = pstream_set_dscp(s-&gt;pstream, dscp);<br>
             if (error) {<br>
                 VLOG_ERR(&quot;%s: failed set_dscp %s&quot;,<br>
-                         reconnect_get_name(s-&gt;reconnect), strerror(error));<br>
+                         reconnect_get_name(s-&gt;reconnect),<br>
+                         ovs_strerror(error));<br>
             }<br>
             /*<br>
              * XXX race window between setting dscp to listening socket<br>
diff --git a/lib/learning-switch.c b/lib/learning-switch.c<br>
index ab37dcc..0a52d14 100644<br>
--- a/lib/learning-switch.c<br>
+++ b/lib/learning-switch.c<br>
@@ -1,5 +1,5 @@<br>
 /*<br>
- * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.<br>
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -208,7 +208,7 @@ lswitch_handshake(struct lswitch *sw)<br>
<br>
             if (error) {<br>
                 VLOG_INFO_RL(&amp;rl, &quot;%s: failed to queue default flows (%s)&quot;,<br>
-                             rconn_get_name(sw-&gt;rconn), strerror(error));<br>
+                             rconn_get_name(sw-&gt;rconn), ovs_strerror(error));<br>
             }<br>
         } else {<br>
             VLOG_INFO_RL(&amp;rl, &quot;%s: failed to set usable protocol&quot;,<br>
@@ -433,7 +433,7 @@ queue_tx(struct lswitch *sw, struct ofpbuf *b)<br>
         } else {<br>
             VLOG_WARN_RL(&amp;rl, &quot;%016llx: %s: send: %s&quot;,<br>
                          sw-&gt;datapath_id, rconn_get_name(sw-&gt;rconn),<br>
-                         strerror(retval));<br>
+                         ovs_strerror(retval));<br>
         }<br>
     }<br>
 }<br>
diff --git a/lib/lockfile.c b/lib/lockfile.c<br>
index c37f332..14e553d 100644<br>
--- a/lib/lockfile.c<br>
+++ b/lib/lockfile.c<br>
@@ -1,4 +1,4 @@<br>
- /* Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.<br>
+ /* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -118,7 +118,7 @@ lockfile_lock(const char *file, struct lockfile **lockfilep)<br>
                       &quot;pid %ld&quot;, lock_name, (long int) pid);<br>
         } else {<br>
             VLOG_WARN(&quot;%s: failed to lock file: %s&quot;,<br>
-                      lock_name, strerror(error));<br>
+                      lock_name, ovs_strerror(error));<br>
         }<br>
     }<br>
<br>
@@ -225,7 +225,7 @@ lockfile_try_lock(const char *name, pid_t *pidp, struct lockfile **lockfilep)<br>
         }<br>
     } else if (errno != ENOENT) {<br>
         VLOG_WARN(&quot;%s: failed to stat lock file: %s&quot;,<br>
-                  name, strerror(errno));<br>
+                  name, ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
<br>
@@ -233,13 +233,14 @@ lockfile_try_lock(const char *name, pid_t *pidp, struct lockfile **lockfilep)<br>
     fd = open(name, O_RDWR | O_CREAT, 0600);<br>
     if (fd &lt; 0) {<br>
         VLOG_WARN(&quot;%s: failed to open lock file: %s&quot;,<br>
-                  name, strerror(errno));<br>
+                  name, ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
<br>
     /* Get the inode and device number for the lock table. */<br>
     if (fstat(fd, &amp;s)) {<br>
-        VLOG_ERR(&quot;%s: failed to fstat lock file: %s&quot;, name, strerror(errno));<br>
+        VLOG_ERR(&quot;%s: failed to fstat lock file: %s&quot;,<br>
+                 name, ovs_strerror(errno));<br>
         close(fd);<br>
         return errno;<br>
     }<br>
diff --git a/lib/netdev-bsd.c b/lib/netdev-bsd.c<br>
index 0fb0057..f2cf852 100644<br>
--- a/lib/netdev-bsd.c<br>
+++ b/lib/netdev-bsd.c<br>
@@ -189,7 +189,7 @@ netdev_bsd_init(void)<br>
     af_inet_sock = socket(AF_INET, SOCK_DGRAM, 0);<br>
     status = af_inet_sock &gt;= 0 ? 0 : errno;<br>
     if (status) {<br>
-        VLOG_ERR(&quot;failed to create inet socket: %s&quot;, strerror(status));<br>
+        VLOG_ERR(&quot;failed to create inet socket: %s&quot;, ovs_strerror(status));<br>
         return status;<br>
     }<br>
<br>
@@ -197,7 +197,7 @@ netdev_bsd_init(void)<br>
     af_link_sock = socket(AF_LINK, SOCK_DGRAM, 0);<br>
     status = af_link_sock &gt;= 0 ? 0 : errno;<br>
     if (status) {<br>
-        VLOG_ERR(&quot;failed to create link socket: %s&quot;, strerror(status));<br>
+        VLOG_ERR(&quot;failed to create link socket: %s&quot;, Ovs_strerror(status));<br>
         close(af_inet_sock);<br>
         af_inet_sock = -1;<br>
     }<br>
@@ -361,7 +361,7 @@ netdev_bsd_create_tap(const struct netdev_class *class, const char *name,<br>
     netdev-&gt;change_seq = 1;<br>
     if (netdev-&gt;tap_fd &lt; 0) {<br>
         error = errno;<br>
-        VLOG_WARN(&quot;opening \&quot;/dev/tap\&quot; failed: %s&quot;, strerror(error));<br>
+        VLOG_WARN(&quot;opening \&quot;/dev/tap\&quot; failed: %s&quot;, ovs_strerror(error));<br>
         goto error_undef_notifier;<br>
     }<br>
<br>
@@ -482,7 +482,7 @@ netdev_bsd_open_pcap(const char *name, pcap_t **pcapp, int *fdp)<br>
      * buffer becomes full or a timeout occurs. */<br>
     if (ioctl(fd, BIOCIMMEDIATE, &amp;one) &lt; 0 ) {<br>
         VLOG_ERR_RL(&amp;rl, &quot;ioctl(BIOCIMMEDIATE) on %s device failed: %s&quot;,<br>
-                    name, strerror(errno));<br>
+                    name, ovs_strerror(errno));<br>
         error = errno;<br>
         goto error;<br>
     }<br>
@@ -637,7 +637,7 @@ netdev_rx_bsd_recv_tap(struct netdev_rx_bsd *rx, void *data, size_t size)<br>
         } else if (errno != EINTR) {<br>
             if (errno != EAGAIN) {<br>
                 VLOG_WARN_RL(&amp;rl, &quot;error receiving Ethernet packet on %s: %s&quot;,<br>
-                             strerror(errno), netdev_rx_get_name(&amp;rx-&gt;up));<br>
+                             ovs_strerror(errno), netdev_rx_get_name(&amp;rx-&gt;up));<br>
             }<br>
             return -errno;<br>
         }<br>
@@ -677,7 +677,7 @@ netdev_rx_bsd_drain(struct netdev_rx *rx_)<br>
     strcpy(ifr.ifr_name, netdev_get_kernel_name(netdev_rx_get_netdev(rx_)));<br>
     if (ioctl(rx-&gt;fd, BIOCFLUSH, &amp;ifr) == -1) {<br>
         VLOG_DBG_RL(&amp;rl, &quot;%s: ioctl(BIOCFLUSH) failed: %s&quot;,<br>
-                    netdev_rx_get_name(rx_), strerror(errno));<br>
+                    netdev_rx_get_name(rx_), ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
     return 0;<br>
@@ -712,7 +712,7 @@ netdev_bsd_send(struct netdev *netdev_, const void *data, size_t size)<br>
                 continue;<br>
             } else if (errno != EAGAIN) {<br>
                 VLOG_WARN_RL(&amp;rl, &quot;error sending Ethernet packet on %s: %s&quot;,<br>
-                             name, strerror(errno));<br>
+                             name, ovs_strerror(errno));<br>
             }<br>
             return errno;<br>
         } else if (retval != size) {<br>
@@ -845,7 +845,7 @@ netdev_bsd_get_carrier(const struct netdev *netdev_, bool *carrier)<br>
<br>
         if (ioctl(af_inet_sock, SIOCGIFMEDIA, &amp;ifmr) == -1) {<br>
             VLOG_DBG_RL(&amp;rl, &quot;%s: ioctl(SIOCGIFMEDIA) failed: %s&quot;,<br>
-                        netdev_get_name(netdev_), strerror(errno));<br>
+                        netdev_get_name(netdev_), ovs_strerror(errno));<br>
             return errno;<br>
         }<br>
<br>
@@ -913,7 +913,7 @@ netdev_bsd_get_stats(const struct netdev *netdev_, struct netdev_stats *stats)<br>
<br>
     if (sysctl(mib, 5, &amp;if_count, &amp;len, (void *)0, 0) == -1) {<br>
         VLOG_DBG_RL(&amp;rl, &quot;%s: sysctl failed: %s&quot;,<br>
-                    netdev_get_name(netdev_), strerror(errno));<br>
+                    netdev_get_name(netdev_), ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
<br>
@@ -924,7 +924,7 @@ netdev_bsd_get_stats(const struct netdev *netdev_, struct netdev_stats *stats)<br>
         mib[4] = i; //row<br>
         if (sysctl(mib, 6, &amp;ifmd, &amp;len, (void *)0, 0) == -1) {<br>
             VLOG_DBG_RL(&amp;rl, &quot;%s: sysctl failed: %s&quot;,<br>
-                        netdev_get_name(netdev_), strerror(errno));<br>
+                        netdev_get_name(netdev_), ovs_strerror(errno));<br>
             return errno;<br>
         } else if (!strcmp(ifmd.ifmd_name, netdev_get_name(netdev_))) {<br>
             convert_stats(stats, &amp;ifmd.ifmd_data);<br>
@@ -1053,7 +1053,7 @@ netdev_bsd_get_features(const struct netdev *netdev,<br>
      * them. */<br>
     if (ioctl(af_inet_sock, SIOCGIFMEDIA, &amp;ifmr) == -1) {<br>
         VLOG_DBG_RL(&amp;rl, &quot;%s: ioctl(SIOCGIFMEDIA) failed: %s&quot;,<br>
-                    netdev_get_name(netdev), strerror(errno));<br>
+                    netdev_get_name(netdev), ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
<br>
@@ -1069,7 +1069,7 @@ netdev_bsd_get_features(const struct netdev *netdev,<br>
<br>
     if (ioctl(af_inet_sock, SIOCGIFMEDIA, &amp;ifmr) == -1) {<br>
         VLOG_DBG_RL(&amp;rl, &quot;%s: ioctl(SIOCGIFMEDIA) failed: %s&quot;,<br>
-                    netdev_get_name(netdev), strerror(errno));<br>
+                    netdev_get_name(netdev), ovs_strerror(errno));<br>
         error = errno;<br>
         goto cleanup;<br>
     }<br>
@@ -1168,7 +1168,7 @@ netdev_bsd_get_in6(const struct netdev *netdev_, struct in6_addr *in6)<br>
<br>
         if (getifaddrs(&amp;head) != 0) {<br>
             VLOG_ERR(&quot;getifaddrs on %s device failed: %s&quot;, netdev_name,<br>
-                    strerror(errno));<br>
+                    ovs_strerror(errno));<br>
             return errno;<br>
         }<br>
<br>
@@ -1593,7 +1593,7 @@ get_etheraddr(const char *netdev_name, uint8_t ea[ETH_ADDR_LEN])<br>
<br>
     if (getifaddrs(&amp;head) != 0) {<br>
         VLOG_ERR(&quot;getifaddrs on %s device failed: %s&quot;, netdev_name,<br>
-                strerror(errno));<br>
+                ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
<br>
@@ -1630,7 +1630,7 @@ set_etheraddr(const char *netdev_name OVS_UNUSED, int hwaddr_family OVS_UNUSED,<br>
     memcpy(ifr.ifr_addr.sa_data, mac, hwaddr_len);<br>
     if (ioctl(af_inet_sock, SIOCSIFLLADDR, &amp;ifr) &lt; 0) {<br>
         VLOG_ERR(&quot;ioctl(SIOCSIFLLADDR) on %s device failed: %s&quot;,<br>
-                 netdev_name, strerror(errno));<br>
+                 netdev_name, ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
     return 0;<br>
@@ -1696,7 +1696,7 @@ netdev_bsd_do_ioctl(const char *name, struct ifreq *ifr, unsigned long cmd,<br>
     strncpy(ifr-&gt;ifr_name, name, sizeof ifr-&gt;ifr_name);<br>
     if (ioctl(af_inet_sock, cmd, ifr) == -1) {<br>
         VLOG_DBG_RL(&amp;rl, &quot;%s: ioctl(%s) failed: %s&quot;, name, cmd_name,<br>
-                    strerror(errno));<br>
+                    ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
     return 0;<br>
diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c<br>
index 3e2187e..f431e51 100644<br>
--- a/lib/netdev-dummy.c<br>
+++ b/lib/netdev-dummy.c<br>
@@ -129,7 +129,7 @@ netdev_dummy_run(void)<br>
                 list_init(&amp;s-&gt;txq);<br>
             } else if (error != EAGAIN) {<br>
                 VLOG_WARN(&quot;%s: accept failed (%s)&quot;,<br>
-                          pstream_get_name(dev-&gt;pstream), strerror(error));<br>
+                          pstream_get_name(dev-&gt;pstream), ovs_strerror(error));<br>
                 pstream_close(dev-&gt;pstream);<br>
                 dev-&gt;pstream = NULL;<br>
             }<br>
@@ -322,7 +322,8 @@ netdev_dummy_set_config(struct netdev *netdev_, const struct smap *args)<br>
<br>
             error = pstream_open(pstream, &amp;netdev-&gt;pstream, DSCP_DEFAULT);<br>
             if (error) {<br>
-                VLOG_WARN(&quot;%s: open failed (%s)&quot;, pstream, strerror(error));<br>
+                VLOG_WARN(&quot;%s: open failed (%s)&quot;,<br>
+                          pstream, ovs_strerror(error));<br>
             }<br>
         }<br>
     }<br>
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c<br>
index 014c579..8790f14 100644<br>
--- a/lib/netdev-linux.c<br>
+++ b/lib/netdev-linux.c<br>
@@ -475,7 +475,7 @@ netdev_linux_init(void)<br>
         af_inet_sock = socket(AF_INET, SOCK_DGRAM, 0);<br>
         status = af_inet_sock &gt;= 0 ? 0 : errno;<br>
         if (status) {<br>
-            VLOG_ERR(&quot;failed to create inet socket: %s&quot;, strerror(status));<br>
+            VLOG_ERR(&quot;failed to create inet socket: %s&quot;, ovs_strerror(status));<br>
         }<br>
<br>
         /* Create rtnetlink socket. */<br>
@@ -483,7 +483,7 @@ netdev_linux_init(void)<br>
             status = nl_sock_create(NETLINK_ROUTE, &amp;rtnl_sock);<br>
             if (status) {<br>
                 VLOG_ERR_RL(&amp;rl, &quot;failed to create rtnetlink socket: %s&quot;,<br>
-                            strerror(status));<br>
+                            ovs_strerror(status));<br>
             }<br>
         }<br>
     }<br>
@@ -672,7 +672,7 @@ netdev_linux_create_tap(const struct netdev_class *class OVS_UNUSED,<br>
     state-&gt;fd = open(tap_dev, O_RDWR);<br>
     if (state-&gt;fd &lt; 0) {<br>
         error = errno;<br>
-        VLOG_WARN(&quot;opening \&quot;%s\&quot; failed: %s&quot;, tap_dev, strerror(error));<br>
+        VLOG_WARN(&quot;opening \&quot;%s\&quot; failed: %s&quot;, tap_dev, ovs_strerror(error));<br>
         goto error_unref_notifier;<br>
     }<br>
<br>
@@ -681,7 +681,7 @@ netdev_linux_create_tap(const struct netdev_class *class OVS_UNUSED,<br>
     ovs_strzcpy(ifr.ifr_name, name, sizeof ifr.ifr_name);<br>
     if (ioctl(state-&gt;fd, TUNSETIFF, &amp;ifr) == -1) {<br>
         VLOG_WARN(&quot;%s: creating tap device failed: %s&quot;, name,<br>
-                  strerror(errno));<br>
+                  ovs_strerror(errno));<br>
         error = errno;<br>
         goto error_unref_notifier;<br>
     }<br>
@@ -758,7 +758,7 @@ netdev_linux_rx_open(struct netdev *netdev_, struct netdev_rx **rxp)<br>
         fd = socket(PF_PACKET, SOCK_RAW, 0);<br>
         if (fd &lt; 0) {<br>
             error = errno;<br>
-            VLOG_ERR(&quot;failed to create raw socket (%s)&quot;, strerror(error));<br>
+            VLOG_ERR(&quot;failed to create raw socket (%s)&quot;, ovs_strerror(error));<br>
             goto error;<br>
         }<br>
<br>
@@ -782,7 +782,7 @@ netdev_linux_rx_open(struct netdev *netdev_, struct netdev_rx **rxp)<br>
         if (bind(fd, (struct sockaddr *) &amp;sll, sizeof sll) &lt; 0) {<br>
             error = errno;<br>
             VLOG_ERR(&quot;%s: failed to bind raw socket (%s)&quot;,<br>
-                     netdev_get_name(netdev_), strerror(error));<br>
+                     netdev_get_name(netdev_), ovs_strerror(error));<br>
             goto error;<br>
         }<br>
<br>
@@ -792,7 +792,7 @@ netdev_linux_rx_open(struct netdev *netdev_, struct netdev_rx **rxp)<br>
         if (error) {<br>
             error = errno;<br>
             VLOG_ERR(&quot;%s: failed attach filter (%s)&quot;,<br>
-                     netdev_get_name(netdev_), strerror(error));<br>
+                     netdev_get_name(netdev_), ovs_strerror(error));<br>
             goto error;<br>
         }<br>
     }<br>
@@ -842,7 +842,7 @@ netdev_rx_linux_recv(struct netdev_rx *rx_, void *data, size_t size)<br>
     } else {<br>
         if (errno != EAGAIN) {<br>
             VLOG_WARN_RL(&amp;rl, &quot;error receiving Ethernet packet on %s: %s&quot;,<br>
-                         strerror(errno), netdev_rx_get_name(rx_));<br>
+                         ovs_strerror(errno), netdev_rx_get_name(rx_));<br>
         }<br>
         return -errno;<br>
     }<br>
@@ -946,7 +946,7 @@ netdev_linux_send(struct netdev *netdev_, const void *data, size_t size)<br>
                 continue;<br>
             } else if (errno != EAGAIN) {<br>
                 VLOG_WARN_RL(&amp;rl, &quot;error sending Ethernet packet on %s: %s&quot;,<br>
-                             netdev_get_name(netdev_), strerror(errno));<br>
+                             netdev_get_name(netdev_), ovs_strerror(errno));<br>
             }<br>
             return errno;<br>
         } else if (retval != size) {<br>
@@ -1263,7 +1263,7 @@ check_for_working_netlink_stats(void)<br>
         } else {<br>
             VLOG_INFO(&quot;RTM_GETLINK failed (%s), obtaining netdev stats &quot;<br>
                       &quot;via proc (you are probably running a pre-2.6.19 &quot;<br>
-                      &quot;kernel)&quot;, strerror(error));<br>
+                      &quot;kernel)&quot;, ovs_strerror(error));<br>
             return false;<br>
         }<br>
     }<br>
@@ -1342,7 +1342,8 @@ get_stats_via_vport(const struct netdev *netdev_,<br>
         error = get_stats_via_vport__(netdev_, stats);<br>
         if (error &amp;&amp; error != ENOENT) {<br>
             VLOG_WARN_RL(&amp;rl, &quot;%s: obtaining netdev stats via vport failed &quot;<br>
-                         &quot;(%s)&quot;, netdev_get_name(netdev_), strerror(error));<br>
+                         &quot;(%s)&quot;,<br>
+                         netdev_get_name(netdev_), ovs_strerror(error));<br>
         }<br>
         netdev-&gt;vport_stats_error = error;<br>
         netdev-&gt;cache_valid |= VALID_VPORT_STAT_ERROR;<br>
@@ -1777,7 +1778,7 @@ netdev_linux_set_policing(struct netdev *netdev_,<br>
     error = tc_add_del_ingress_qdisc(netdev_, false);<br>
     if (error) {<br>
         VLOG_WARN_RL(&amp;rl, &quot;%s: removing policing failed: %s&quot;,<br>
-                     netdev_name, strerror(error));<br>
+                     netdev_name, ovs_strerror(error));<br>
         goto out;<br>
     }<br>
<br>
@@ -1785,14 +1786,14 @@ netdev_linux_set_policing(struct netdev *netdev_,<br>
         error = tc_add_del_ingress_qdisc(netdev_, true);<br>
         if (error) {<br>
             VLOG_WARN_RL(&amp;rl, &quot;%s: adding policing qdisc failed: %s&quot;,<br>
-                         netdev_name, strerror(error));<br>
+                         netdev_name, ovs_strerror(error));<br>
             goto out;<br>
         }<br>
<br>
         error = tc_add_policer(netdev_, kbits_rate, kbits_burst);<br>
         if (error){<br>
             VLOG_WARN_RL(&amp;rl, &quot;%s: adding policing action failed: %s&quot;,<br>
-                    netdev_name, strerror(error));<br>
+                    netdev_name, ovs_strerror(error));<br>
             goto out;<br>
         }<br>
     }<br>
@@ -2235,7 +2236,7 @@ netdev_linux_add_router(struct netdev *netdev OVS_UNUSED, struct in_addr router)<br>
     rt.rt_flags = RTF_UP | RTF_GATEWAY;<br>
     error = ioctl(af_inet_sock, SIOCADDRT, &amp;rt) &lt; 0 ? errno : 0;<br>
     if (error) {<br>
-        VLOG_WARN(&quot;ioctl(SIOCADDRT): %s&quot;, strerror(error));<br>
+        VLOG_WARN(&quot;ioctl(SIOCADDRT): %s&quot;, ovs_strerror(error));<br>
     }<br>
     return error;<br>
 }<br>
@@ -2252,7 +2253,7 @@ netdev_linux_get_next_hop(const struct in_addr *host, struct in_addr *next_hop,<br>
     *netdev_name = NULL;<br>
     stream = fopen(fn, &quot;r&quot;);<br>
     if (stream == NULL) {<br>
-        VLOG_WARN_RL(&amp;rl, &quot;%s: open failed: %s&quot;, fn, strerror(errno));<br>
+        VLOG_WARN_RL(&amp;rl, &quot;%s: open failed: %s&quot;, fn, ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
<br>
@@ -2364,7 +2365,8 @@ netdev_linux_arp_lookup(const struct netdev *netdev,<br>
         memcpy(mac, r.arp_ha.sa_data, ETH_ADDR_LEN);<br>
     } else if (retval != ENXIO) {<br>
         VLOG_WARN_RL(&amp;rl, &quot;%s: could not look up ARP entry for &quot;IP_FMT&quot;: %s&quot;,<br>
-                     netdev_get_name(netdev), IP_ARGS(ip), strerror(retval));<br>
+                     netdev_get_name(netdev), IP_ARGS(ip),<br>
+                     ovs_strerror(retval));<br>
     }<br>
     return retval;<br>
 }<br>
@@ -2633,7 +2635,7 @@ htb_setup_class__(struct netdev *netdev, unsigned int handle,<br>
                      tc_get_major(handle), tc_get_minor(handle),<br>
                      tc_get_major(parent), tc_get_minor(parent),<br>
                      class-&gt;min_rate, class-&gt;max_rate,<br>
-                     class-&gt;burst, class-&gt;priority, strerror(error));<br>
+                     class-&gt;burst, class-&gt;priority, ovs_strerror(error));<br>
     }<br>
     return error;<br>
 }<br>
@@ -3293,7 +3295,7 @@ hfsc_setup_class__(struct netdev *netdev, unsigned int handle,<br>
                      netdev_get_name(netdev),<br>
                      tc_get_major(handle), tc_get_minor(handle),<br>
                      tc_get_major(parent), tc_get_minor(parent),<br>
-                     class-&gt;min_rate, class-&gt;max_rate, strerror(error));<br>
+                     class-&gt;min_rate, class-&gt;max_rate, ovs_strerror(error));<br>
     }<br>
<br>
     return error;<br>
@@ -3798,7 +3800,7 @@ read_psched(void)<br>
<br>
     stream = fopen(fn, &quot;r&quot;);<br>
     if (!stream) {<br>
-        VLOG_WARN(&quot;%s: open failed: %s&quot;, fn, strerror(errno));<br>
+        VLOG_WARN(&quot;%s: open failed: %s&quot;, fn, ovs_strerror(errno));<br>
         return;<br>
     }<br>
<br>
@@ -4002,7 +4004,7 @@ tc_query_class(const struct netdev *netdev,<br>
                      netdev_get_name(netdev),<br>
                      tc_get_major(handle), tc_get_minor(handle),<br>
                      tc_get_major(parent), tc_get_minor(parent),<br>
-                     strerror(error));<br>
+                     ovs_strerror(error));<br>
     }<br>
     return error;<br>
 }<br>
@@ -4027,7 +4029,7 @@ tc_delete_class(const struct netdev *netdev, unsigned int handle)<br>
         VLOG_WARN_RL(&amp;rl, &quot;delete %s class %u:%u failed (%s)&quot;,<br>
                      netdev_get_name(netdev),<br>
                      tc_get_major(handle), tc_get_minor(handle),<br>
-                     strerror(error));<br>
+                     ovs_strerror(error));<br>
     }<br>
     return error;<br>
 }<br>
@@ -4127,7 +4129,7 @@ tc_query_qdisc(const struct netdev *netdev_)<br>
     } else {<br>
         /* Who knows?  Maybe the device got deleted. */<br>
         VLOG_WARN_RL(&amp;rl, &quot;query %s qdisc failed (%s)&quot;,<br>
-                     netdev_get_name(netdev_), strerror(error));<br>
+                     netdev_get_name(netdev_), ovs_strerror(error));<br>
         ops = &amp;tc_ops_other;<br>
     }<br>
<br>
@@ -4356,7 +4358,7 @@ get_stats_via_proc(const char *netdev_name, struct netdev_stats *stats)<br>
<br>
     stream = fopen(fn, &quot;r&quot;);<br>
     if (!stream) {<br>
-        VLOG_WARN_RL(&amp;rl, &quot;%s: open failed: %s&quot;, fn, strerror(errno));<br>
+        VLOG_WARN_RL(&amp;rl, &quot;%s: open failed: %s&quot;, fn, ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
<br>
@@ -4436,7 +4438,7 @@ do_get_ifindex(const char *netdev_name)<br>
     COVERAGE_INC(netdev_get_ifindex);<br>
     if (ioctl(af_inet_sock, SIOCGIFINDEX, &amp;ifr) &lt; 0) {<br>
         VLOG_WARN_RL(&amp;rl, &quot;ioctl(SIOCGIFINDEX) on %s device failed: %s&quot;,<br>
-                     netdev_name, strerror(errno));<br>
+                     netdev_name, ovs_strerror(errno));<br>
         return -errno;<br>
     }<br>
     return ifr.ifr_ifindex;<br>
@@ -4479,7 +4481,7 @@ get_etheraddr(const char *netdev_name, uint8_t ea[ETH_ADDR_LEN])<br>
          * to INFO for that case. */<br>
         VLOG(errno == ENODEV ? VLL_INFO : VLL_ERR,<br>
              &quot;ioctl(SIOCGIFHWADDR) on %s device failed: %s&quot;,<br>
-             netdev_name, strerror(errno));<br>
+             netdev_name, ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
     hwaddr_family = ifr.ifr_hwaddr.sa_family;<br>
@@ -4504,7 +4506,7 @@ set_etheraddr(const char *netdev_name,<br>
     COVERAGE_INC(netdev_set_hwaddr);<br>
     if (ioctl(af_inet_sock, SIOCSIFHWADDR, &amp;ifr) &lt; 0) {<br>
         VLOG_ERR(&quot;ioctl(SIOCSIFHWADDR) on %s device failed: %s&quot;,<br>
-                 netdev_name, strerror(errno));<br>
+                 netdev_name, ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
     return 0;<br>
@@ -4526,7 +4528,7 @@ netdev_linux_do_ethtool(const char *name, struct ethtool_cmd *ecmd,<br>
     } else {<br>
         if (errno != EOPNOTSUPP) {<br>
             VLOG_WARN_RL(&amp;rl, &quot;ethtool command %s on network device %s &quot;<br>
-                         &quot;failed: %s&quot;, cmd_name, name, strerror(errno));<br>
+                         &quot;failed: %s&quot;, cmd_name, name, ovs_strerror(errno));<br>
         } else {<br>
             /* The device doesn&#39;t support this operation.  That&#39;s pretty<br>
              * common, so there&#39;s no point in logging anything. */<br>
@@ -4542,7 +4544,7 @@ netdev_linux_do_ioctl(const char *name, struct ifreq *ifr, int cmd,<br>
     ovs_strzcpy(ifr-&gt;ifr_name, name, sizeof ifr-&gt;ifr_name);<br>
     if (ioctl(af_inet_sock, cmd, ifr) == -1) {<br>
         VLOG_DBG_RL(&amp;rl, &quot;%s: ioctl(%s) failed: %s&quot;, name, cmd_name,<br>
-                     strerror(errno));<br>
+                     ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
     return 0;<br>
@@ -4580,7 +4582,8 @@ af_packet_sock(void)<br>
             }<br>
         } else {<br>
             sock = -errno;<br>
-            VLOG_ERR(&quot;failed to create packet socket: %s&quot;, strerror(errno));<br>
+            VLOG_ERR(&quot;failed to create packet socket: %s&quot;,<br>
+                     ovs_strerror(errno));<br>
         }<br>
     }<br>
<br>
diff --git a/lib/netdev.c b/lib/netdev.c<br>
index 653f5bc..651ea3f 100644<br>
--- a/lib/netdev.c<br>
+++ b/lib/netdev.c<br>
@@ -139,7 +139,7 @@ netdev_register_provider(const struct netdev_class *new_class)<br>
         int error = new_class-&gt;init();<br>
         if (error) {<br>
             VLOG_ERR(&quot;failed to initialize %s network device class: %s&quot;,<br>
-                     new_class-&gt;type, strerror(error));<br>
+                     new_class-&gt;type, ovs_strerror(error));<br>
             return error;<br>
         }<br>
     }<br>
@@ -523,7 +523,7 @@ netdev_get_mtu(const struct netdev *netdev, int *mtup)<br>
         *mtup = 0;<br>
         if (error != EOPNOTSUPP) {<br>
             VLOG_DBG_RL(&amp;rl, &quot;failed to retrieve MTU for network device %s: &quot;<br>
-                         &quot;%s&quot;, netdev_get_name(netdev), strerror(error));<br>
+                         &quot;%s&quot;, netdev_get_name(netdev), ovs_strerror(error));<br>
         }<br>
     }<br>
     return error;<br>
@@ -544,7 +544,7 @@ netdev_set_mtu(const struct netdev *netdev, int mtu)<br>
     error = class-&gt;set_mtu ? class-&gt;set_mtu(netdev, mtu) : EOPNOTSUPP;<br>
     if (error &amp;&amp; error != EOPNOTSUPP) {<br>
         VLOG_DBG_RL(&amp;rl, &quot;failed to set MTU for network device %s: %s&quot;,<br>
-                     netdev_get_name(netdev), strerror(error));<br>
+                     netdev_get_name(netdev), ovs_strerror(error));<br>
     }<br>
<br>
     return error;<br>
@@ -822,7 +822,7 @@ do_update_flags(struct netdev *netdev, enum netdev_flags off,<br>
     if (error) {<br>
         VLOG_WARN_RL(&amp;rl, &quot;failed to %s flags for network device %s: %s&quot;,<br>
                      off || on ? &quot;set&quot; : &quot;get&quot;, netdev_get_name(netdev),<br>
-                     strerror(error));<br>
+                     ovs_strerror(error));<br>
         old_flags = 0;<br>
     } else if ((off || on) &amp;&amp; sfp) {<br>
         enum netdev_flags new_flags = (old_flags &amp; ~off) | on;<br>
@@ -953,7 +953,7 @@ netdev_get_carrier(const struct netdev *netdev)<br>
                                                               &amp;carrier);<br>
     if (error) {<br>
         VLOG_DBG(&quot;%s: failed to get network device carrier status, assuming &quot;<br>
-                 &quot;down: %s&quot;, netdev_get_name(netdev), strerror(error));<br>
+                 &quot;down: %s&quot;, netdev_get_name(netdev), ovs_strerror(error));<br>
         carrier = false;<br>
     }<br>
<br>
diff --git a/lib/netlink-notifier.c b/lib/netlink-notifier.c<br>
index 1e1a317..9aa185d 100644<br>
--- a/lib/netlink-notifier.c<br>
+++ b/lib/netlink-notifier.c<br>
@@ -1,5 +1,5 @@<br>
 /*<br>
- * Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc.<br>
+ * Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -115,7 +115,8 @@ nln_notifier_create(struct nln *nln, nln_notify_func *cb, void *aux)<br>
         }<br>
         if (error) {<br>
             nl_sock_destroy(sock);<br>
-            VLOG_WARN(&quot;could not create netlink socket: %s&quot;, strerror(error));<br>
+            VLOG_WARN(&quot;could not create netlink socket: %s&quot;,<br>
+                      ovs_strerror(error));<br>
             return NULL;<br>
         }<br>
         nln-&gt;notify_sock = sock;<br>
@@ -184,7 +185,7 @@ nln_run(struct nln *nln)<br>
                 VLOG_WARN_RL(&amp;rl, &quot;netlink receive buffer overflowed&quot;);<br>
             } else {<br>
                 VLOG_WARN_RL(&amp;rl, &quot;error reading netlink socket: %s&quot;,<br>
-                             strerror(error));<br>
+                             ovs_strerror(error));<br>
             }<br>
             nln_report(nln, NULL);<br>
         }<br>
diff --git a/lib/netlink-socket.c b/lib/netlink-socket.c<br>
index fbb1724..dfe39ac 100644<br>
--- a/lib/netlink-socket.c<br>
+++ b/lib/netlink-socket.c<br>
@@ -99,7 +99,7 @@ nl_sock_create(int protocol, struct nl_sock **sockp)<br>
         max_iovs = sysconf(_SC_UIO_MAXIOV);<br>
         if (max_iovs &lt; _XOPEN_IOV_MAX) {<br>
             if (max_iovs == -1 &amp;&amp; errno) {<br>
-                VLOG_WARN(&quot;sysconf(_SC_UIO_MAXIOV): %s&quot;, strerror(errno));<br>
+                VLOG_WARN(&quot;sysconf(_SC_UIO_MAXIOV): %s&quot;, ovs_strerror(errno));<br>
             }<br>
             max_iovs = _XOPEN_IOV_MAX;<br>
         } else if (max_iovs &gt; MAX_IOVS) {<br>
@@ -114,7 +114,7 @@ nl_sock_create(int protocol, struct nl_sock **sockp)<br>
<br>
     sock-&gt;fd = socket(AF_NETLINK, SOCK_RAW, protocol);<br>
     if (sock-&gt;fd &lt; 0) {<br>
-        VLOG_ERR(&quot;fcntl: %s&quot;, strerror(errno));<br>
+        VLOG_ERR(&quot;fcntl: %s&quot;, ovs_strerror(errno));<br>
         goto error;<br>
     }<br>
     sock-&gt;protocol = protocol;<br>
@@ -128,7 +128,7 @@ nl_sock_create(int protocol, struct nl_sock **sockp)<br>
          * Warn only if the failure is therefore unexpected. */<br>
         if (errno != EPERM) {<br>
             VLOG_WARN_RL(&amp;rl, &quot;setting %d-byte socket receive buffer failed &quot;<br>
-                         &quot;(%s)&quot;, rcvbuf, strerror(errno));<br>
+                         &quot;(%s)&quot;, rcvbuf, ovs_strerror(errno));<br>
         }<br>
     }<br>
<br>
@@ -144,14 +144,14 @@ nl_sock_create(int protocol, struct nl_sock **sockp)<br>
     remote.nl_family = AF_NETLINK;<br>
     remote.nl_pid = 0;<br>
     if (connect(sock-&gt;fd, (struct sockaddr *) &amp;remote, sizeof remote) &lt; 0) {<br>
-        VLOG_ERR(&quot;connect(0): %s&quot;, strerror(errno));<br>
+        VLOG_ERR(&quot;connect(0): %s&quot;, ovs_strerror(errno));<br>
         goto error;<br>
     }<br>
<br>
     /* Obtain pid assigned by kernel. */<br>
     local_size = sizeof local;<br>
     if (getsockname(sock-&gt;fd, (struct sockaddr *) &amp;local, &amp;local_size) &lt; 0) {<br>
-        VLOG_ERR(&quot;getsockname: %s&quot;, strerror(errno));<br>
+        VLOG_ERR(&quot;getsockname: %s&quot;, ovs_strerror(errno));<br>
         goto error;<br>
     }<br>
     if (local_size &lt; sizeof local || local.nl_family != AF_NETLINK) {<br>
@@ -222,7 +222,7 @@ nl_sock_join_mcgroup(struct nl_sock *sock, unsigned int multicast_group)<br>
     if (setsockopt(sock-&gt;fd, SOL_NETLINK, NETLINK_ADD_MEMBERSHIP,<br>
                    &amp;multicast_group, sizeof multicast_group) &lt; 0) {<br>
         VLOG_WARN(&quot;could not join multicast group %u (%s)&quot;,<br>
-                  multicast_group, strerror(errno));<br>
+                  multicast_group, ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
     return 0;<br>
@@ -245,7 +245,7 @@ nl_sock_leave_mcgroup(struct nl_sock *sock, unsigned int multicast_group)<br>
     if (setsockopt(sock-&gt;fd, SOL_NETLINK, NETLINK_DROP_MEMBERSHIP,<br>
                    &amp;multicast_group, sizeof multicast_group) &lt; 0) {<br>
         VLOG_WARN(&quot;could not leave multicast group %u (%s)&quot;,<br>
-                  multicast_group, strerror(errno));<br>
+                  multicast_group, ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
     return 0;<br>
@@ -527,7 +527,7 @@ nl_sock_transact_multiple__(struct nl_sock *sock,<br>
             }<br>
             if (txn-&gt;error) {<br>
                 VLOG_DBG_RL(&amp;rl, &quot;received NAK error=%d (%s)&quot;,<br>
-                            error, strerror(txn-&gt;error));<br>
+                            error, ovs_strerror(txn-&gt;error));<br>
             }<br>
         } else {<br>
             txn-&gt;error = 0;<br>
@@ -629,7 +629,7 @@ nl_sock_transact_multiple(struct nl_sock *sock,<br>
         if (error == ENOBUFS) {<br>
             VLOG_DBG_RL(&amp;rl, &quot;receive buffer overflow, resending request&quot;);<br>
         } else if (error) {<br>
-            VLOG_ERR_RL(&amp;rl, &quot;transaction error (%s)&quot;, strerror(error));<br>
+            VLOG_ERR_RL(&amp;rl, &quot;transaction error (%s)&quot;, ovs_strerror(error));<br>
             nl_sock_record_errors__(transactions, n, error);<br>
         }<br>
     }<br>
@@ -815,7 +815,7 @@ nl_dump_recv(struct nl_dump *dump)<br>
<br>
     if (nl_msg_nlmsgerr(&amp;dump-&gt;buffer, &amp;retval)) {<br>
         VLOG_INFO_RL(&amp;rl, &quot;netlink dump request error (%s)&quot;,<br>
-                     strerror(retval));<br>
+                     ovs_strerror(retval));<br>
         return retval &amp;&amp; retval != EAGAIN ? retval : EPROTO;<br>
     }<br>
<br>
@@ -1187,7 +1187,7 @@ nlmsg_to_string(const struct ofpbuf *buffer, int protocol)<br>
             if (e) {<br>
                 ds_put_format(&amp;ds, &quot; error(%d&quot;, e-&gt;error);<br>
                 if (e-&gt;error &lt; 0) {<br>
-                    ds_put_format(&amp;ds, &quot;(%s)&quot;, strerror(-e-&gt;error));<br>
+                    ds_put_format(&amp;ds, &quot;(%s)&quot;, ovs_strerror(-e-&gt;error));<br>
                 }<br>
                 ds_put_cstr(&amp;ds, &quot;, in-reply-to(&quot;);<br>
                 nlmsghdr_to_string(&amp;e-&gt;msg, protocol, &amp;ds);<br>
@@ -1200,7 +1200,7 @@ nlmsg_to_string(const struct ofpbuf *buffer, int protocol)<br>
             if (error) {<br>
                 ds_put_format(&amp;ds, &quot; done(%d&quot;, *error);<br>
                 if (*error &lt; 0) {<br>
-                    ds_put_format(&amp;ds, &quot;(%s)&quot;, strerror(-*error));<br>
+                    ds_put_format(&amp;ds, &quot;(%s)&quot;, ovs_strerror(-*error));<br>
                 }<br>
                 ds_put_cstr(&amp;ds, &quot;)&quot;);<br>
             } else {<br>
@@ -1232,6 +1232,6 @@ log_nlmsg(const char *function, int error,<br>
<br>
     ofpbuf_use_const(&amp;buffer, message, size);<br>
     nlmsg = nlmsg_to_string(&amp;buffer, protocol);<br>
-    VLOG_DBG_RL(&amp;rl, &quot;%s (%s): %s&quot;, function, strerror(error), nlmsg);<br>
+    VLOG_DBG_RL(&amp;rl, &quot;%s (%s): %s&quot;, function, ovs_strerror(error), nlmsg);<br>
     free(nlmsg);<br>
 }<br>
diff --git a/lib/ofp-errors.c b/lib/ofp-errors.c<br>
index 74a3358..2e3312e 100644<br>
--- a/lib/ofp-errors.c<br>
+++ b/lib/ofp-errors.c<br>
@@ -152,7 +152,7 @@ ofperr_encode_msg__(enum ofperr error, enum ofp_version ofp_version,<br>
     if (!ofperr_is_valid(error)) {<br>
         /* &#39;error&#39; seems likely to be a system errno value. */<br>
         VLOG_ERR_RL(&amp;rl, &quot;invalid OpenFlow error code %d (%s)&quot;,<br>
-                    error, strerror(error));<br>
+                    error, ovs_strerror(error));<br>
         error = OFPERR_NXBRC_UNENCODABLE_ERROR;<br>
     } else if (domain-&gt;errors[error - OFPERR_OFS].code &lt; 0) {<br>
         VLOG_ERR_RL(&amp;rl, &quot;cannot encode %s for %s&quot;,<br>
@@ -304,10 +304,12 @@ ofperr_decode_msg(const struct ofp_header *oh, struct ofpbuf *payload)<br>
<br>
 /* If &#39;error&#39; is a valid OFPERR_* value, returns its name<br>
  * (e.g. &quot;OFPBRC_BAD_TYPE&quot; for OFPBRC_BAD_TYPE).  Otherwise, assumes that<br>
- * &#39;error&#39; is a positive errno value and returns what strerror() produces for<br>
- * &#39;error&#39;.  */<br>
+ * &#39;error&#39; is a positive errno value and returns what ovs_strerror() produces<br>
+ * for &#39;error&#39;.  */<br>
 const char *<br>
 ofperr_to_string(enum ofperr error)<br>
 {<br>
-    return ofperr_is_valid(error) ? ofperr_get_name(error) : strerror(error);<br>
+    return (ofperr_is_valid(error)<br>
+            ? ofperr_get_name(error)<br>
+            : ovs_strerror(error));<br>
 }<br>
diff --git a/lib/ovs-thread.c b/lib/ovs-thread.c<br>
index 56303f7..df4552c 100644<br>
--- a/lib/ovs-thread.c<br>
+++ b/lib/ovs-thread.c<br>
@@ -170,7 +170,7 @@ pid_t<br>
<br>
     pid = fork();<br>
     if (pid &lt; 0) {<br>
-        VLOG_FATAL(&quot;fork failed (%s)&quot;, strerror(errno));<br>
+        VLOG_FATAL(&quot;fork failed (%s)&quot;, ovs_strerror(errno));<br>
     }<br>
     return pid;<br>
 }<br>
diff --git a/lib/poll-loop.c b/lib/poll-loop.c<br>
index 9855306..ea00d26 100644<br>
--- a/lib/poll-loop.c<br>
+++ b/lib/poll-loop.c<br>
@@ -1,5 +1,5 @@<br>
 /*<br>
- * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.<br>
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -249,7 +249,7 @@ poll_block(void)<br>
     retval = time_poll(pollfds, n_pollfds, timeout_when, &amp;elapsed);<br>
     if (retval &lt; 0) {<br>
         static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5);<br>
-        VLOG_ERR_RL(&amp;rl, &quot;poll: %s&quot;, strerror(-retval));<br>
+        VLOG_ERR_RL(&amp;rl, &quot;poll: %s&quot;, ovs_strerror(-retval));<br>
     } else if (!retval) {<br>
         log_wakeup(timeout_where, NULL, elapsed);<br>
     }<br>
diff --git a/lib/process.c b/lib/process.c<br>
index 266c90b..143347c 100644<br>
--- a/lib/process.c<br>
+++ b/lib/process.c<br>
@@ -193,7 +193,7 @@ process_start(char **argv, struct process **pp)<br>
<br>
     pid = fork();<br>
     if (pid &lt; 0) {<br>
-        VLOG_WARN(&quot;fork failed: %s&quot;, strerror(errno));<br>
+        VLOG_WARN(&quot;fork failed: %s&quot;, ovs_strerror(errno));<br>
         return errno;<br>
     } else if (pid) {<br>
         /* Running in parent process. */<br>
@@ -210,7 +210,7 @@ process_start(char **argv, struct process **pp)<br>
         }<br>
         execvp(argv[0], argv);<br>
         fprintf(stderr, &quot;execvp(\&quot;%s\&quot;) failed: %s\n&quot;,<br>
-                argv[0], strerror(errno));<br>
+                argv[0], ovs_strerror(errno));<br>
         _exit(1);<br>
     }<br>
 }<br>
@@ -316,7 +316,7 @@ process_run(void)<br>
                     p-&gt;exited = true;<br>
                     p-&gt;status = status;<br>
                 } else if (retval &lt; 0) {<br>
-                    VLOG_WARN(&quot;waitpid: %s&quot;, strerror(errno));<br>
+                    VLOG_WARN(&quot;waitpid: %s&quot;, ovs_strerror(errno));<br>
                     p-&gt;exited = true;<br>
                     p-&gt;status = -1;<br>
                 }<br>
diff --git a/lib/rconn.c b/lib/rconn.c<br>
index 4922a5c..fa3d308 100644<br>
--- a/lib/rconn.c<br>
+++ b/lib/rconn.c<br>
@@ -379,7 +379,8 @@ reconnect(struct rconn *rc)<br>
         rc-&gt;backoff_deadline = time_now() + rc-&gt;backoff;<br>
         state_transition(rc, S_CONNECTING);<br>
     } else {<br>
-        VLOG_WARN(&quot;%s: connection failed (%s)&quot;, rc-&gt;name, strerror(retval));<br>
+        VLOG_WARN(&quot;%s: connection failed (%s)&quot;,<br>
+                  rc-&gt;name, ovs_strerror(retval));<br>
         rc-&gt;backoff_deadline = TIME_MAX; /* Prevent resetting backoff. */<br>
         disconnect(rc, retval);<br>
     }<br>
@@ -417,7 +418,7 @@ run_CONNECTING(struct rconn *rc)<br>
     } else if (retval != EAGAIN) {<br>
         if (rconn_logging_connection_attempts__(rc)) {<br>
             VLOG_INFO(&quot;%s: connection failed (%s)&quot;,<br>
-                      rc-&gt;name, strerror(retval));<br>
+                      rc-&gt;name, ovs_strerror(retval));<br>
         }<br>
         disconnect(rc, retval);<br>
     } else if (timed_out(rc)) {<br>
@@ -962,7 +963,8 @@ report_error(struct rconn *rc, int error)<br>
         enum vlog_level level = rc-&gt;reliable ? VLL_INFO : VLL_DBG;<br>
         VLOG(level, &quot;%s: connection closed by peer&quot;, rc-&gt;name);<br>
     } else {<br>
-        VLOG_WARN(&quot;%s: connection dropped (%s)&quot;, rc-&gt;name, strerror(error));<br>
+        VLOG_WARN(&quot;%s: connection dropped (%s)&quot;,<br>
+                  rc-&gt;name, ovs_strerror(error));<br>
     }<br>
 }<br>
<br>
diff --git a/lib/reconnect.c b/lib/reconnect.c<br>
index b914ef6..fae35b1 100644<br>
--- a/lib/reconnect.c<br>
+++ b/lib/reconnect.c<br>
@@ -331,7 +331,7 @@ reconnect_disconnected(struct reconnect *fsm, long long int now, int error)<br>
         if (fsm-&gt;state &amp; (S_ACTIVE | S_IDLE)) {<br>
             if (error &gt; 0) {<br>
                 VLOG_WARN(&quot;%s: connection dropped (%s)&quot;,<br>
-                          fsm-&gt;name, strerror(error));<br>
+                          fsm-&gt;name, ovs_strerror(error));<br>
             } else if (error == EOF) {<br>
                 VLOG(fsm-&gt;info, &quot;%s: connection closed by peer&quot;, fsm-&gt;name);<br>
             } else {<br>
@@ -340,7 +340,7 @@ reconnect_disconnected(struct reconnect *fsm, long long int now, int error)<br>
         } else if (fsm-&gt;state == S_LISTENING) {<br>
             if (error &gt; 0) {<br>
                 VLOG_WARN(&quot;%s: error listening for connections (%s)&quot;,<br>
-                          fsm-&gt;name, strerror(error));<br>
+                          fsm-&gt;name, ovs_strerror(error));<br>
             } else {<br>
                 VLOG(fsm-&gt;info, &quot;%s: error listening for connections&quot;,<br>
                      fsm-&gt;name);<br>
@@ -349,7 +349,7 @@ reconnect_disconnected(struct reconnect *fsm, long long int now, int error)<br>
             const char *type = fsm-&gt;passive ? &quot;listen&quot; : &quot;connection&quot;;<br>
             if (error &gt; 0) {<br>
                 VLOG_WARN(&quot;%s: %s attempt failed (%s)&quot;,<br>
-                          fsm-&gt;name, type, strerror(error));<br>
+                          fsm-&gt;name, type, ovs_strerror(error));<br>
             } else {<br>
                 VLOG(fsm-&gt;info, &quot;%s: %s attempt timed out&quot;, fsm-&gt;name, type);<br>
             }<br>
diff --git a/lib/rtbsd.c b/lib/rtbsd.c<br>
index c5fe03a..b706c20 100644<br>
--- a/lib/rtbsd.c<br>
+++ b/lib/rtbsd.c<br>
@@ -1,5 +1,5 @@<br>
 /*<br>
- * Copyright (c) 2011 Gaetano Catalli.<br>
+ * Copyright (c) 2011, 2013 Gaetano Catalli.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -55,13 +55,13 @@ rtbsd_notifier_register(struct rtbsd_notifier *notifier,<br>
         notify_sock = socket(PF_ROUTE, SOCK_RAW, 0);<br>
         if (notify_sock &lt; 0) {<br>
             VLOG_WARN(&quot;could not create PF_ROUTE socket: %s&quot;,<br>
-                      strerror(errno));<br>
+                      ovs_strerror(errno));<br>
             return errno;<br>
         }<br>
         error = set_nonblocking(notify_sock);<br>
         if (error) {<br>
             VLOG_WARN(&quot;error set_nonblocking PF_ROUTE socket: %s&quot;,<br>
-                    strerror(error));<br>
+                    ovs_strerror(error));<br>
             return error;<br>
         }<br>
     } else {<br>
@@ -120,7 +120,7 @@ rtbsd_notifier_run(void)<br>
                 VLOG_WARN_RL(&amp;rl, &quot;PF_ROUTE receive buffer overflowed&quot;);<br>
             } else {<br>
                 VLOG_WARN_RL(&amp;rl, &quot;error reading PF_ROUTE socket: %s&quot;,<br>
-                             strerror(errno));<br>
+                             ovs_strerror(errno));<br>
             }<br>
             rtbsd_report_notify_error();<br>
         }<br>
diff --git a/lib/sflow_agent.c b/lib/sflow_agent.c<br>
index f55e6d4..817420d 100644<br>
--- a/lib/sflow_agent.c<br>
+++ b/lib/sflow_agent.c<br>
@@ -6,6 +6,7 @@<br>
  */<br>
<br>
 #include &quot;sflow_api.h&quot;<br>
+#include &quot;util.h&quot;<br>
<br>
 static void * sflAlloc(SFLAgent *agent, size_t bytes);<br>
 static void sflFree(SFLAgent *agent, void *obj);<br>
@@ -469,7 +470,7 @@ void sfl_agent_error(SFLAgent *agent, char *modName, char *msg)<br>
 void sfl_agent_sysError(SFLAgent *agent, char *modName, char *msg)<br>
 {<br>
     char errm[MAX_ERRMSG_LEN];<br>
-    snprintf(errm, sizeof errm, &quot;sfl_agent_sysError: %s: %s (errno = %d - %s)\n&quot;, modName, msg, errno, strerror(errno));<br>
+    snprintf(errm, sizeof errm, &quot;sfl_agent_sysError: %s: %s (errno = %d - %s)\n&quot;, modName, msg, errno, ovs_strerror(errno));<br></blockquote><div><br></div><div><br></div><div><br></div><div style>Here, the line is longer than 79 chars,</div>
<div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
     if(agent-&gt;errorFn) (*agent-&gt;errorFn)(agent-&gt;magic, agent, errm);<br>
     else {<br>
        fprintf(stderr, &quot;%s\n&quot;, errm);<br>
diff --git a/lib/signals.c b/lib/signals.c<br>
index 1340f54..f11ed05 100644<br>
--- a/lib/signals.c<br>
+++ b/lib/signals.c<br>
@@ -130,7 +130,7 @@ xsigaction(int signum, const struct sigaction *new, struct sigaction *old)<br>
<br>
         VLOG_FATAL(&quot;sigaction(%s) failed (%s)&quot;,<br>
                    signal_name(signum, namebuf, sizeof namebuf),<br>
-                   strerror(errno));<br>
+                   ovs_strerror(errno));<br>
     }<br>
 }<br>
<br>
@@ -139,6 +139,6 @@ xpthread_sigmask(int how, const sigset_t *new, sigset_t *old)<br>
 {<br>
     int error = pthread_sigmask(how, new, old);<br>
     if (error) {<br>
-        VLOG_FATAL(&quot;pthread_sigmask failed (%s)&quot;, strerror(error));<br>
+        VLOG_FATAL(&quot;pthread_sigmask failed (%s)&quot;, ovs_strerror(error));<br>
     }<br>
 }<br>
diff --git a/lib/socket-util.c b/lib/socket-util.c<br>
index 2dff9f5..fa55480 100644<br>
--- a/lib/socket-util.c<br>
+++ b/lib/socket-util.c<br>
@@ -72,11 +72,11 @@ set_nonblocking(int fd)<br>
         if (fcntl(fd, F_SETFL, flags | O_NONBLOCK) != -1) {<br>
             return 0;<br>
         } else {<br>
-            VLOG_ERR(&quot;fcntl(F_SETFL) failed: %s&quot;, strerror(errno));<br>
+            VLOG_ERR(&quot;fcntl(F_SETFL) failed: %s&quot;, ovs_strerror(errno));<br>
             return errno;<br>
         }<br>
     } else {<br>
-        VLOG_ERR(&quot;fcntl(F_GETFL) failed: %s&quot;, strerror(errno));<br>
+        VLOG_ERR(&quot;fcntl(F_GETFL) failed: %s&quot;, ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
 }<br>
@@ -259,7 +259,7 @@ check_connection_completion(int fd)<br>
         }<br>
         return 0;<br>
     } else if (retval &lt; 0) {<br>
-        VLOG_ERR_RL(&amp;rl, &quot;poll: %s&quot;, strerror(errno));<br>
+        VLOG_ERR_RL(&amp;rl, &quot;poll: %s&quot;, ovs_strerror(errno));<br>
         return errno;<br>
     } else {<br>
         return EAGAIN;<br>
@@ -452,7 +452,8 @@ make_unix_socket(int style, bool nonblock,<br>
         int dirfd;<br>
<br>
         if (unlink(bind_path) &amp;&amp; errno != ENOENT) {<br>
-            VLOG_WARN(&quot;unlinking \&quot;%s\&quot;: %s\n&quot;, bind_path, strerror(errno));<br>
+            VLOG_WARN(&quot;unlinking \&quot;%s\&quot;: %s\n&quot;,<br>
+                      bind_path, ovs_strerror(errno));<br>
         }<br>
         fatal_signal_add_file_to_unlink(bind_path);<br>
<br>
@@ -602,7 +603,7 @@ inet_open_active(int style, const char *target, uint16_t default_port,<br>
     /* Create non-blocking socket. */<br>
     fd = socket(AF_INET, style, 0);<br>
     if (fd &lt; 0) {<br>
-        VLOG_ERR(&quot;%s: socket: %s&quot;, target, strerror(errno));<br>
+        VLOG_ERR(&quot;%s: socket: %s&quot;, target, ovs_strerror(errno));<br>
         error = errno;<br>
         goto exit;<br>
     }<br>
@@ -616,7 +617,7 @@ inet_open_active(int style, const char *target, uint16_t default_port,<br>
      * connect(), the handshake SYN frames will be sent with a TOS of 0. */<br>
     error = set_dscp(fd, dscp);<br>
     if (error) {<br>
-        VLOG_ERR(&quot;%s: socket: %s&quot;, target, strerror(error));<br>
+        VLOG_ERR(&quot;%s: socket: %s&quot;, target, ovs_strerror(error));<br>
         goto exit;<br>
     }<br>
<br>
@@ -728,7 +729,7 @@ inet_open_passive(int style, const char *target, int default_port,<br>
     fd = socket(AF_INET, style, 0);<br>
     if (fd &lt; 0) {<br>
         error = errno;<br>
-        VLOG_ERR(&quot;%s: socket: %s&quot;, target, strerror(error));<br>
+        VLOG_ERR(&quot;%s: socket: %s&quot;, target, ovs_strerror(error));<br>
         return -error;<br>
     }<br>
     error = set_nonblocking(fd);<br>
@@ -738,14 +739,15 @@ inet_open_passive(int style, const char *target, int default_port,<br>
     if (style == SOCK_STREAM<br>
         &amp;&amp; setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &amp;yes, sizeof yes) &lt; 0) {<br>
         error = errno;<br>
-        VLOG_ERR(&quot;%s: setsockopt(SO_REUSEADDR): %s&quot;, target, strerror(error));<br>
+        VLOG_ERR(&quot;%s: setsockopt(SO_REUSEADDR): %s&quot;,<br>
+                 target, ovs_strerror(error));<br>
         goto error;<br>
     }<br>
<br>
     /* Bind. */<br>
     if (bind(fd, (struct sockaddr *) &amp;sin, sizeof sin) &lt; 0) {<br>
         error = errno;<br>
-        VLOG_ERR(&quot;%s: bind: %s&quot;, target, strerror(error));<br>
+        VLOG_ERR(&quot;%s: bind: %s&quot;, target, ovs_strerror(error));<br>
         goto error;<br>
     }<br>
<br>
@@ -754,14 +756,14 @@ inet_open_passive(int style, const char *target, int default_port,<br>
      * connect(), the handshake SYN frames will be sent with a TOS of 0. */<br>
     error = set_dscp(fd, dscp);<br>
     if (error) {<br>
-        VLOG_ERR(&quot;%s: socket: %s&quot;, target, strerror(error));<br>
+        VLOG_ERR(&quot;%s: socket: %s&quot;, target, ovs_strerror(error));<br>
         goto error;<br>
     }<br>
<br>
     /* Listen. */<br>
     if (style == SOCK_STREAM &amp;&amp; listen(fd, 10) &lt; 0) {<br>
         error = errno;<br>
-        VLOG_ERR(&quot;%s: listen: %s&quot;, target, strerror(error));<br>
+        VLOG_ERR(&quot;%s: listen: %s&quot;, target, ovs_strerror(error));<br>
         goto error;<br>
     }<br>
<br>
@@ -770,7 +772,7 @@ inet_open_passive(int style, const char *target, int default_port,<br>
         socklen_t sin_len = sizeof sin;<br>
         if (getsockname(fd, (struct sockaddr *) &amp;sin, &amp;sin_len) &lt; 0) {<br>
             error = errno;<br>
-            VLOG_ERR(&quot;%s: getsockname: %s&quot;, target, strerror(error));<br>
+            VLOG_ERR(&quot;%s: getsockname: %s&quot;, target, ovs_strerror(error));<br>
             goto error;<br>
         }<br>
         if (sin.sin_family != AF_INET || sin_len != sizeof sin) {<br>
@@ -805,7 +807,7 @@ get_null_fd(void)<br>
         null_fd = open(&quot;/dev/null&quot;, O_RDWR);<br>
         if (null_fd &lt; 0) {<br>
             int error = errno;<br>
-            VLOG_ERR(&quot;could not open /dev/null: %s&quot;, strerror(error));<br>
+            VLOG_ERR(&quot;could not open /dev/null: %s&quot;, ovs_strerror(error));<br>
             return -error;<br>
         }<br>
     }<br>
@@ -873,13 +875,13 @@ fsync_parent_dir(const char *file_name)<br>
                  * really an error. */<br>
             } else {<br>
                 error = errno;<br>
-                VLOG_ERR(&quot;%s: fsync failed (%s)&quot;, dir, strerror(error));<br>
+                VLOG_ERR(&quot;%s: fsync failed (%s)&quot;, dir, ovs_strerror(error));<br>
             }<br>
         }<br>
         close(fd);<br>
     } else {<br>
         error = errno;<br>
-        VLOG_ERR(&quot;%s: open failed (%s)&quot;, dir, strerror(error));<br>
+        VLOG_ERR(&quot;%s: open failed (%s)&quot;, dir, ovs_strerror(error));<br>
     }<br>
     free(dir);<br>
<br>
@@ -917,7 +919,7 @@ void<br>
 xpipe(int fds[2])<br>
 {<br>
     if (pipe(fds)) {<br>
-        VLOG_FATAL(&quot;failed to create pipe (%s)&quot;, strerror(errno));<br>
+        VLOG_FATAL(&quot;failed to create pipe (%s)&quot;, ovs_strerror(errno));<br>
     }<br>
 }<br>
<br>
@@ -933,7 +935,7 @@ void<br>
 xsocketpair(int domain, int type, int protocol, int fds[2])<br>
 {<br>
     if (socketpair(domain, type, protocol, fds)) {<br>
-        VLOG_FATAL(&quot;failed to create socketpair (%s)&quot;, strerror(errno));<br>
+        VLOG_FATAL(&quot;failed to create socketpair (%s)&quot;, ovs_strerror(errno));<br>
     }<br>
 }<br>
<br>
@@ -948,7 +950,7 @@ getsockopt_int(int fd, int level, int option, const char *optname, int *valuep)<br>
     len = sizeof value;<br>
     if (getsockopt(fd, level, option, &amp;value, &amp;len)) {<br>
         error = errno;<br>
-        VLOG_ERR_RL(&amp;rl, &quot;getsockopt(%s): %s&quot;, optname, strerror(error));<br>
+        VLOG_ERR_RL(&amp;rl, &quot;getsockopt(%s): %s&quot;, optname, ovs_strerror(error));<br>
     } else if (len != sizeof value) {<br>
         error = EINVAL;<br>
         VLOG_ERR_RL(&amp;rl, &quot;getsockopt(%s): value is %u bytes (expected %zu)&quot;,<br>
@@ -1076,7 +1078,7 @@ describe_fd(int fd)<br>
<br>
     ds_init(&amp;string);<br>
     if (fstat(fd, &amp;s)) {<br>
-        ds_put_format(&amp;string, &quot;fstat failed (%s)&quot;, strerror(errno));<br>
+        ds_put_format(&amp;string, &quot;fstat failed (%s)&quot;, ovs_strerror(errno));<br>
     } else if (S_ISSOCK(s.st_mode)) {<br>
         describe_sockaddr(&amp;string, fd, getsockname);<br>
         ds_put_cstr(&amp;string, &quot;&lt;-&gt;&quot;);<br>
diff --git a/lib/stream-fd.c b/lib/stream-fd.c<br>
index df5e8b0..d102582 100644<br>
--- a/lib/stream-fd.c<br>
+++ b/lib/stream-fd.c<br>
@@ -1,5 +1,5 @@<br>
 /*<br>
- * Copyright (c) 2008, 2009, 2010, 2012 Nicira, Inc.<br>
+ * Copyright (c) 2008, 2009, 2010, 2012, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -233,7 +233,7 @@ pfd_accept(struct pstream *pstream, struct stream **new_streamp)<br>
     if (new_fd &lt; 0) {<br>
         retval = errno;<br>
         if (retval != EAGAIN) {<br>
-            VLOG_DBG_RL(&amp;rl, &quot;accept: %s&quot;, strerror(retval));<br>
+            VLOG_DBG_RL(&amp;rl, &quot;accept: %s&quot;, ovs_strerror(retval));<br>
         }<br>
         return retval;<br>
     }<br>
diff --git a/lib/stream-ssl.c b/lib/stream-ssl.c<br>
index c373ca9..3b9270f 100644<br>
--- a/lib/stream-ssl.c<br>
+++ b/lib/stream-ssl.c<br>
@@ -246,7 +246,7 @@ new_ssl_stream(const char *name, int fd, enum session_type type,<br>
     /* Disable Nagle. */<br>
     retval = setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &amp;on, sizeof on);<br>
     if (retval) {<br>
-        VLOG_ERR(&quot;%s: setsockopt(TCP_NODELAY): %s&quot;, name, strerror(errno));<br>
+        VLOG_ERR(&quot;%s: setsockopt(TCP_NODELAY): %s&quot;, name, ovs_strerror(errno));<br>
         retval = errno;<br>
         goto error;<br>
     }<br>
@@ -323,7 +323,7 @@ ssl_open(const char *name, char *suffix, struct stream **streamp, uint8_t dscp)<br>
         int state = error ? STATE_TCP_CONNECTING : STATE_SSL_CONNECTING;<br>
         return new_ssl_stream(name, fd, CLIENT, state, &amp;sin, streamp);<br>
     } else {<br>
-        VLOG_ERR(&quot;%s: connect: %s&quot;, name, strerror(error));<br>
+        VLOG_ERR(&quot;%s: connect: %s&quot;, name, ovs_strerror(error));<br>
         return error;<br>
     }<br>
 }<br>
@@ -369,7 +369,7 @@ do_ca_cert_bootstrap(struct stream *stream)<br>
             return EPROTO;<br>
         } else {<br>
             VLOG_ERR(&quot;could not bootstrap CA cert: creating %s failed: %s&quot;,<br>
-                     ca_cert.file_name, strerror(errno));<br>
+                     ca_cert.file_name, ovs_strerror(errno));<br>
             return errno;<br>
         }<br>
     }<br>
@@ -378,7 +378,7 @@ do_ca_cert_bootstrap(struct stream *stream)<br>
     if (!file) {<br>
         error = errno;<br>
         VLOG_ERR(&quot;could not bootstrap CA cert: fdopen failed: %s&quot;,<br>
-                 strerror(error));<br>
+                 ovs_strerror(error));<br>
         unlink(ca_cert.file_name);<br>
         return error;<br>
     }<br>
@@ -395,7 +395,7 @@ do_ca_cert_bootstrap(struct stream *stream)<br>
     if (fclose(file)) {<br>
         error = errno;<br>
         VLOG_ERR(&quot;could not bootstrap CA cert: writing %s failed: %s&quot;,<br>
-                 ca_cert.file_name, strerror(error));<br>
+                 ca_cert.file_name, ovs_strerror(error));<br>
         unlink(ca_cert.file_name);<br>
         return error;<br>
     }<br>
@@ -564,7 +564,7 @@ interpret_ssl_error(const char *function, int ret, int error,<br>
             if (ret &lt; 0) {<br>
                 int status = errno;<br>
                 VLOG_WARN_RL(&amp;rl, &quot;%s: system error (%s)&quot;,<br>
-                             function, strerror(status));<br>
+                             function, ovs_strerror(status));<br>
                 return status;<br>
             } else {<br>
                 VLOG_WARN_RL(&amp;rl, &quot;%s: unexpected SSL connection close&quot;,<br>
@@ -834,7 +834,7 @@ pssl_accept(struct pstream *pstream, struct stream **new_streamp)<br>
     if (new_fd &lt; 0) {<br>
         error = errno;<br>
         if (error != EAGAIN) {<br>
-            VLOG_DBG_RL(&amp;rl, &quot;accept: %s&quot;, strerror(error));<br>
+            VLOG_DBG_RL(&amp;rl, &quot;accept: %s&quot;, ovs_strerror(error));<br>
         }<br>
         return error;<br>
     }<br>
@@ -1015,7 +1015,8 @@ update_ssl_config(struct ssl_config_file *config, const char *file_name)<br>
      * here. */<br>
     error = get_mtime(file_name, &amp;mtime);<br>
     if (error &amp;&amp; error != ENOENT) {<br>
-        VLOG_ERR_RL(&amp;rl, &quot;%s: stat failed (%s)&quot;, file_name, strerror(error));<br>
+        VLOG_ERR_RL(&amp;rl, &quot;%s: stat failed (%s)&quot;,<br>
+                    file_name, ovs_strerror(error));<br>
     }<br>
     if (config-&gt;file_name<br>
         &amp;&amp; !strcmp(config-&gt;file_name, file_name)<br>
@@ -1123,7 +1124,7 @@ read_cert_file(const char *file_name, X509 ***certs, size_t *n_certs)<br>
     file = fopen(file_name, &quot;r&quot;);<br>
     if (!file) {<br>
         VLOG_ERR(&quot;failed to open %s for reading: %s&quot;,<br>
-                 file_name, strerror(errno));<br>
+                 file_name, ovs_strerror(errno));<br>
         return errno;<br>
     }<br>
<br>
diff --git a/lib/stream-tcp.c b/lib/stream-tcp.c<br>
index 1767fe4..d507208 100644<br>
--- a/lib/stream-tcp.c<br>
+++ b/lib/stream-tcp.c<br>
@@ -53,7 +53,7 @@ new_tcp_stream(const char *name, int fd, int connect_status,<br>
<br>
     retval = setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &amp;on, sizeof on);<br>
     if (retval) {<br>
-        VLOG_ERR(&quot;%s: setsockopt(TCP_NODELAY): %s&quot;, name, strerror(errno));<br>
+        VLOG_ERR(&quot;%s: setsockopt(TCP_NODELAY): %s&quot;, name, ovs_strerror(errno));<br>
         close(fd);<br>
         return errno;<br>
     }<br>
@@ -79,7 +79,7 @@ tcp_open(const char *name, char *suffix, struct stream **streamp, uint8_t dscp)<br>
     if (fd &gt;= 0) {<br>
         return new_tcp_stream(name, fd, error, &amp;sin, streamp);<br>
     } else {<br>
-        VLOG_ERR(&quot;%s: connect: %s&quot;, name, strerror(error));<br>
+        VLOG_ERR(&quot;%s: connect: %s&quot;, name, ovs_strerror(error));<br>
         return error;<br>
     }<br>
 }<br>
diff --git a/lib/stream-unix.c b/lib/stream-unix.c<br>
index dbee135..e4b7e77 100644<br>
--- a/lib/stream-unix.c<br>
+++ b/lib/stream-unix.c<br>
@@ -50,7 +50,8 @@ unix_open(const char *name, char *suffix, struct stream **streamp,<br>
     fd = make_unix_socket(SOCK_STREAM, true, NULL, connect_path);<br>
<br>
     if (fd &lt; 0) {<br>
-        VLOG_DBG(&quot;%s: connection failed (%s)&quot;, connect_path, strerror(-fd));<br>
+        VLOG_DBG(&quot;%s: connection failed (%s)&quot;,<br>
+                 connect_path, ovs_strerror(-fd));<br>
         free(connect_path);<br>
         return -fd;<br>
     }<br>
@@ -87,14 +88,14 @@ punix_open(const char *name OVS_UNUSED, char *suffix,<br>
     bind_path = abs_file_name(ovs_rundir(), suffix);<br>
     fd = make_unix_socket(SOCK_STREAM, true, bind_path, NULL);<br>
     if (fd &lt; 0) {<br>
-        VLOG_ERR(&quot;%s: binding failed: %s&quot;, bind_path, strerror(errno));<br>
+        VLOG_ERR(&quot;%s: binding failed: %s&quot;, bind_path, ovs_strerror(errno));<br>
         free(bind_path);<br>
         return errno;<br>
     }<br>
<br>
     if (listen(fd, 10) &lt; 0) {<br>
         error = errno;<br>
-        VLOG_ERR(&quot;%s: listen: %s&quot;, name, strerror(error));<br>
+        VLOG_ERR(&quot;%s: listen: %s&quot;, name, ovs_strerror(error));<br>
         close(fd);<br>
         free(bind_path);<br>
         return error;<br>
diff --git a/lib/timeval.c b/lib/timeval.c<br>
index 4723c56..0ccfa42 100644<br>
--- a/lib/timeval.c<br>
+++ b/lib/timeval.c<br>
@@ -179,7 +179,7 @@ set_up_timer(void)<br>
     }<br>
<br>
     if (timer_create(monotonic_clock, NULL, &amp;timer_id)) {<br>
-        VLOG_FATAL(&quot;timer_create failed (%s)&quot;, strerror(errno));<br>
+        VLOG_FATAL(&quot;timer_create failed (%s)&quot;, ovs_strerror(errno));<br>
     }<br>
<br>
     itimer.it_interval.tv_sec = 0;<br>
@@ -187,7 +187,7 @@ set_up_timer(void)<br>
     itimer.it_value = itimer.it_interval;<br>
<br>
     if (timer_settime(timer_id, 0, &amp;itimer, NULL)) {<br>
-        VLOG_FATAL(&quot;timer_settime failed (%s)&quot;, strerror(errno));<br>
+        VLOG_FATAL(&quot;timer_settime failed (%s)&quot;, ovs_strerror(errno));<br>
     }<br>
 }<br>
<br>
@@ -456,7 +456,7 @@ void<br>
 xgettimeofday(struct timeval *tv)<br>
 {<br>
     if (gettimeofday(tv, NULL) == -1) {<br>
-        VLOG_FATAL(&quot;gettimeofday failed (%s)&quot;, strerror(errno));<br>
+        VLOG_FATAL(&quot;gettimeofday failed (%s)&quot;, ovs_strerror(errno));<br>
     }<br>
 }<br>
<br>
diff --git a/lib/unixctl.c b/lib/unixctl.c<br>
index 3d5eda6..253e953 100644<br>
--- a/lib/unixctl.c<br>
+++ b/lib/unixctl.c<br>
@@ -358,7 +358,7 @@ unixctl_server_run(struct unixctl_server *server)<br>
         } else {<br>
             VLOG_WARN_RL(&amp;rl, &quot;%s: accept failed: %s&quot;,<br>
                          pstream_get_name(server-&gt;listener),<br>
-                         strerror(error));<br>
+                         ovs_strerror(error));<br>
         }<br>
     }<br>
<br>
diff --git a/lib/util.c b/lib/util.c<br>
index 6ee8b5c..e521c20 100644<br>
--- a/lib/util.c<br>
+++ b/lib/util.c<br>
@@ -617,7 +617,7 @@ get_cwd(void)<br>
             int error = errno;<br>
             free(buf);<br>
             if (error != ERANGE) {<br>
-                VLOG_WARN(&quot;getcwd failed (%s)&quot;, strerror(error));<br>
+                VLOG_WARN(&quot;getcwd failed (%s)&quot;, ovs_strerror(error));<br>
                 return NULL;<br>
             }<br>
             size *= 2;<br>
@@ -755,7 +755,8 @@ follow_symlinks(const char *filename)<br>
<br>
         linkname = xreadlink(fn);<br>
         if (!linkname) {<br>
-            VLOG_WARN(&quot;%s: readlink failed (%s)&quot;, filename, strerror(errno));<br>
+            VLOG_WARN(&quot;%s: readlink failed (%s)&quot;,<br>
+                      filename, ovs_strerror(errno));<br>
             return fn;<br>
         }<br>
<br>
diff --git a/lib/vconn-stream.c b/lib/vconn-stream.c<br>
index 08ec7bf..92076d9 100644<br>
--- a/lib/vconn-stream.c<br>
+++ b/lib/vconn-stream.c<br>
@@ -1,5 +1,5 @@<br>
 /*<br>
- * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.<br>
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -233,7 +233,7 @@ vconn_stream_run(struct vconn *vconn)<br>
     retval = stream_send(s-&gt;stream, s-&gt;txbuf-&gt;data, s-&gt;txbuf-&gt;size);<br>
     if (retval &lt; 0) {<br>
         if (retval != -EAGAIN) {<br>
-            VLOG_ERR_RL(&amp;rl, &quot;send: %s&quot;, strerror(-retval));<br>
+            VLOG_ERR_RL(&amp;rl, &quot;send: %s&quot;, ovs_strerror(-retval));<br>
             vconn_stream_clear_txbuf(s);<br>
             return;<br>
         }<br>
@@ -348,7 +348,7 @@ pvconn_pstream_accept(struct pvconn *pvconn, struct vconn **new_vconnp)<br>
     if (error) {<br>
         if (error != EAGAIN) {<br>
             VLOG_DBG_RL(&amp;rl, &quot;%s: accept: %s&quot;,<br>
-                        pstream_get_name(ps-&gt;pstream), strerror(error));<br>
+                        pstream_get_name(ps-&gt;pstream), ovs_strerror(error));<br>
         }<br>
         return error;<br>
     }<br>
diff --git a/lib/vconn.c b/lib/vconn.c<br>
index dc84cbb..449a36e 100644<br>
--- a/lib/vconn.c<br>
+++ b/lib/vconn.c<br>
@@ -695,7 +695,7 @@ do_send(struct vconn *vconn, struct ofpbuf *msg)<br>
         retval = (vconn-&gt;class-&gt;send)(vconn, msg);<br>
         if (retval != EAGAIN) {<br>
             VLOG_DBG_RL(&amp;ofmsg_rl, &quot;%s: sent (%s): %s&quot;,<br>
-                        vconn-&gt;name, strerror(retval), s);<br>
+                        vconn-&gt;name, ovs_strerror(retval), s);<br>
         }<br>
         free(s);<br>
     }<br>
diff --git a/lib/vlandev.c b/lib/vlandev.c<br>
index 2440def..303b482 100644<br>
--- a/lib/vlandev.c<br>
+++ b/lib/vlandev.c<br>
@@ -1,5 +1,5 @@<br>
 /*<br>
- * Copyright (c) 2011 Nicira, Inc.<br>
+ * Copyright (c) 2011, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -93,7 +93,7 @@ vlandev_refresh(void)<br>
             return 0;<br>
         }<br>
<br>
-        VLOG_WARN_RL(&amp;rl, &quot;%s: open failed (%s)&quot;, fn, strerror(error));<br>
+        VLOG_WARN_RL(&amp;rl, &quot;%s: open failed (%s)&quot;, fn, ovs_strerror(error));<br>
         return error;<br>
     }<br>
<br>
@@ -174,7 +174,7 @@ do_vlan_ioctl(const char *netdev_name, struct vlan_ioctl_args *via,<br>
     error = ioctl(sock, SIOCSIFVLAN, via) &lt; 0 ? errno : 0;<br>
     if (error) {<br>
         VLOG_WARN_RL(&amp;rl, &quot;%s: VLAN ioctl %s failed (%s)&quot;,<br>
-                     netdev_name, cmd_name, strerror(error));<br>
+                     netdev_name, cmd_name, ovs_strerror(error));<br>
     }<br>
     return error;<br>
 }<br>
diff --git a/lib/vlog.c b/lib/vlog.c<br>
index 193e4f7..f87f48f 100644<br>
--- a/lib/vlog.c<br>
+++ b/lib/vlog.c<br>
@@ -320,7 +320,7 @@ vlog_set_log_file(const char *file_name)<br>
     /* Log success or failure. */<br>
     if (log_fd &lt; 0) {<br>
         VLOG_WARN(&quot;failed to open %s for logging: %s&quot;,<br>
-                  log_file_name, strerror(errno));<br>
+                  log_file_name, ovs_strerror(errno));<br>
         error = errno;<br>
     } else {<br>
         VLOG_INFO(&quot;opened log file %s&quot;, log_file_name);<br>
@@ -489,7 +489,7 @@ vlog_unixctl_reopen(struct unixctl_conn *conn, int argc OVS_UNUSED,<br>
     if (log_file_name) {<br>
         int error = vlog_reopen_log_file();<br>
         if (error) {<br>
-            unixctl_command_reply_error(conn, strerror(errno));<br>
+            unixctl_command_reply_error(conn, ovs_strerror(errno));<br>
         } else {<br>
             unixctl_command_reply(conn, NULL);<br>
         }<br>
diff --git a/lib/worker.c b/lib/worker.c<br>
index 4c947a4..6904fdd 100644<br>
--- a/lib/worker.c<br>
+++ b/lib/worker.c<br>
@@ -233,7 +233,7 @@ worker_send_iovec(const struct iovec iovs[], size_t n_iovs,<br>
         } while (error == EINTR);<br>
         if (error) {<br>
             worker_broke();<br>
-            VLOG_ABORT(&quot;poll failed (%s)&quot;, strerror(error));<br>
+            VLOG_ABORT(&quot;poll failed (%s)&quot;, ovs_strerror(error));<br>
         }<br>
     }<br>
 }<br>
@@ -264,7 +264,7 @@ worker_request_iovec(const struct iovec iovs[], size_t n_iovs,<br>
     error = worker_send_iovec(all_iovs, n_iovs + 1, fds, n_fds);<br>
     if (error) {<br>
         worker_broke();<br>
-        VLOG_ABORT(&quot;send failed (%s)&quot;, strerror(error));<br>
+        VLOG_ABORT(&quot;send failed (%s)&quot;, ovs_strerror(error));<br>
     }<br>
     free(all_iovs);<br>
<br>
@@ -347,9 +347,9 @@ worker_reply_iovec(const struct iovec *iovs, size_t n_iovs,<br>
     if (error == EPIPE) {<br>
         /* Parent probably died.  Continue processing any RPCs still buffered,<br>
          * to avoid missing log messages. */<br>
-        VLOG_INFO(&quot;send failed (%s)&quot;, strerror(error));<br>
+        VLOG_INFO(&quot;send failed (%s)&quot;, ovs_strerror(error));<br>
     } else if (error) {<br>
-        VLOG_FATAL(&quot;send failed (%s)&quot;, strerror(error));<br>
+        VLOG_FATAL(&quot;send failed (%s)&quot;, ovs_strerror(error));<br>
     }<br>
<br>
     free(all_iovs);<br>
diff --git a/ofproto/collectors.c b/ofproto/collectors.c<br>
index 14572db..919fa1b 100644<br>
--- a/ofproto/collectors.c<br>
+++ b/ofproto/collectors.c<br>
@@ -1,5 +1,5 @@<br>
 /*<br>
- * Copyright (c) 2008, 2009, 2010, 2011 Nicira, Inc.<br>
+ * Copyright (c) 2008, 2009, 2010, 2011, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -70,7 +70,7 @@ collectors_create(const struct sset *targets, uint16_t default_port,<br>
             static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5);<br>
<br>
             VLOG_WARN_RL(&amp;rl, &quot;couldn&#39;t open connection to collector %s (%s)&quot;,<br>
-                         name, strerror(error));<br>
+                         name, ovs_strerror(error));<br>
             if (!retval) {<br>
                 retval = error;<br>
             }<br>
@@ -113,7 +113,7 @@ collectors_send(const struct collectors *c, const void *payload, size_t n)<br>
             static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5);<br>
             if (send(c-&gt;fds[i], payload, n, 0) == -1) {<br>
                 VLOG_WARN_RL(&amp;rl, &quot;sending to collector failed: %s&quot;,<br>
-                             strerror(errno));<br>
+                             ovs_strerror(errno));<br>
             }<br>
         }<br>
     }<br>
diff --git a/ofproto/connmgr.c b/ofproto/connmgr.c<br>
index 0951968..654454f 100644<br>
--- a/ofproto/connmgr.c<br>
+++ b/ofproto/connmgr.c<br>
@@ -315,7 +315,7 @@ connmgr_run(struct connmgr *mgr,<br>
             ofconn_set_rate_limit(ofconn, ofservice-&gt;rate_limit,<br>
                                   ofservice-&gt;burst_limit);<br>
         } else if (retval != EAGAIN) {<br>
-            VLOG_WARN_RL(&amp;rl, &quot;accept failed (%s)&quot;, strerror(retval));<br>
+            VLOG_WARN_RL(&amp;rl, &quot;accept failed (%s)&quot;, ovs_strerror(retval));<br>
         }<br>
     }<br>
<br>
@@ -327,7 +327,7 @@ connmgr_run(struct connmgr *mgr,<br>
         if (!retval) {<br>
             add_snooper(mgr, vconn);<br>
         } else if (retval != EAGAIN) {<br>
-            VLOG_WARN_RL(&amp;rl, &quot;accept failed (%s)&quot;, strerror(retval));<br>
+            VLOG_WARN_RL(&amp;rl, &quot;accept failed (%s)&quot;, ovs_strerror(retval));<br>
         }<br>
     }<br>
 }<br>
@@ -758,7 +758,7 @@ set_pvconns(struct pvconn ***pvconnsp, size_t *n_pvconnsp,<br>
         if (!error) {<br>
             pvconns[n_pvconns++] = pvconn;<br>
         } else {<br>
-            VLOG_ERR(&quot;failed to listen on %s: %s&quot;, name, strerror(error));<br>
+            VLOG_ERR(&quot;failed to listen on %s: %s&quot;, name, ovs_strerror(error));<br>
             if (!retval) {<br>
                 retval = error;<br>
             }<br>
diff --git a/ofproto/in-band.c b/ofproto/in-band.c<br>
index ba6fc54..8d52546 100644<br>
--- a/ofproto/in-band.c<br>
+++ b/ofproto/in-band.c<br>
@@ -1,5 +1,5 @@<br>
 /*<br>
- * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.<br>
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -120,7 +120,8 @@ refresh_remote(struct in_band *ib, struct in_band_remote *r)<br>
                                  &amp;next_hop_inaddr, &amp;next_hop_dev);<br>
     if (retval) {<br>
         VLOG_WARN(&quot;cannot find route for controller (&quot;IP_FMT&quot;): %s&quot;,<br>
-                  IP_ARGS(r-&gt;remote_addr.sin_addr.s_addr), strerror(retval));<br>
+                  IP_ARGS(r-&gt;remote_addr.sin_addr.s_addr),<br>
+                  ovs_strerror(retval));<br>
         return 1;<br>
     }<br>
     if (!next_hop_inaddr.s_addr) {<br>
@@ -138,7 +139,7 @@ refresh_remote(struct in_band *ib, struct in_band_remote *r)<br>
             VLOG_WARN_RL(&amp;rl, &quot;cannot open netdev %s (next hop &quot;<br>
                          &quot;to controller &quot;IP_FMT&quot;): %s&quot;,<br>
                          next_hop_dev, IP_ARGS(r-&gt;remote_addr.sin_addr.s_addr),<br>
-                         strerror(retval));<br>
+                         ovs_strerror(retval));<br>
             free(next_hop_dev);<br>
             return 1;<br>
         }<br>
@@ -150,7 +151,7 @@ refresh_remote(struct in_band *ib, struct in_band_remote *r)<br>
                                r-&gt;remote_mac);<br>
     if (retval) {<br>
         VLOG_DBG_RL(&amp;rl, &quot;cannot look up remote MAC address (&quot;IP_FMT&quot;): %s&quot;,<br>
-                    IP_ARGS(next_hop_inaddr.s_addr), strerror(retval));<br>
+                    IP_ARGS(next_hop_inaddr.s_addr), ovs_strerror(retval));<br>
     }<br>
<br>
     /* If we don&#39;t have a MAC address, then refresh quickly, since we probably<br>
@@ -436,7 +437,8 @@ in_band_create(struct ofproto *ofproto, const char *local_name,<br>
     error = netdev_open(local_name, &quot;internal&quot;, &amp;local_netdev);<br>
     if (error) {<br>
         VLOG_ERR(&quot;failed to initialize in-band control: cannot open &quot;<br>
-                 &quot;datapath local port %s (%s)&quot;, local_name, strerror(error));<br>
+                 &quot;datapath local port %s (%s)&quot;,<br>
+                 local_name, ovs_strerror(error));<br>
         return error;<br>
     }<br>
<br>
diff --git a/ofproto/ofproto-dpif-sflow.c b/ofproto/ofproto-dpif-sflow.c<br>
index 9ad0eaf..64d8943 100644<br>
--- a/ofproto/ofproto-dpif-sflow.c<br>
+++ b/ofproto/ofproto-dpif-sflow.c<br>
@@ -1,5 +1,5 @@<br>
 /*<br>
- * Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc.<br>
+ * Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc.<br>
  * Copyright (c) 2009 InMon Corp.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c<br>
index 1b3b1e3..f46775f 100644<br>
--- a/ofproto/ofproto-dpif.c<br>
+++ b/ofproto/ofproto-dpif.c<br>
@@ -930,7 +930,7 @@ open_dpif_backer(const char *type, struct dpif_backer **backerp)<br>
     free(backer_name);<br>
     if (error) {<br>
         VLOG_ERR(&quot;failed to open datapath of type %s: %s&quot;, type,<br>
-                 strerror(error));<br>
+                 ovs_strerror(error));<br>
         free(backer);<br>
         return error;<br>
     }<br>
@@ -977,7 +977,7 @@ open_dpif_backer(const char *type, struct dpif_backer **backerp)<br>
     error = dpif_recv_set(backer-&gt;dpif, backer-&gt;recv_set_enable);<br>
     if (error) {<br>
         VLOG_ERR(&quot;failed to listen on datapath of type %s: %s&quot;,<br>
-                 type, strerror(error));<br>
+                 type, ovs_strerror(error));<br>
         close_dpif_backer(backer);<br>
         return error;<br>
     }<br>
@@ -2468,7 +2468,7 @@ send_pdu_cb(void *port_, const void *pdu, size_t pdu_size)<br>
     } else {<br>
         VLOG_ERR_RL(&amp;rl, &quot;port %s: cannot obtain Ethernet address of iface &quot;<br>
                     &quot;%s (%s)&quot;, port-&gt;bundle-&gt;name,<br>
-                    netdev_get_name(port-&gt;up.netdev), strerror(error));<br>
+                    netdev_get_name(port-&gt;up.netdev), ovs_strerror(error));<br>
     }<br>
 }<br>
<br>
@@ -2507,7 +2507,7 @@ bundle_send_learning_packets(struct ofbundle *bundle)<br>
         static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5);<br>
         VLOG_WARN_RL(&amp;rl, &quot;bond %s: %d errors sending %d gratuitous learning &quot;<br>
                      &quot;packets, last error was: %s&quot;,<br>
-                     bundle-&gt;name, n_errors, n_packets, strerror(error));<br>
+                     bundle-&gt;name, n_errors, n_packets, ovs_strerror(error));<br>
     } else {<br>
         VLOG_DBG(&quot;bond %s: sent %d gratuitous learning packets&quot;,<br>
                  bundle-&gt;name, n_packets);<br>
@@ -3559,8 +3559,8 @@ drop_key_clear(struct dpif_backer *backer)<br>
         if (error &amp;&amp; !VLOG_DROP_WARN(&amp;rl)) {<br>
             struct ds ds = DS_EMPTY_INITIALIZER;<br>
             odp_flow_key_format(drop_key-&gt;key, drop_key-&gt;key_len, &amp;ds);<br>
-            VLOG_WARN(&quot;Failed to delete drop key (%s) (%s)&quot;, strerror(error),<br>
-                      ds_cstr(&amp;ds));<br>
+            VLOG_WARN(&quot;Failed to delete drop key (%s) (%s)&quot;,<br>
+                      ovs_strerror(error), ds_cstr(&amp;ds));<br>
             ds_destroy(&amp;ds);<br>
         }<br>
<br>
@@ -5357,7 +5357,7 @@ send_packet(const struct ofport_dpif *ofport, struct ofpbuf *packet)<br>
     if (error) {<br>
         VLOG_WARN_RL(&amp;rl, &quot;%s: failed to send packet on port %s (%s)&quot;,<br>
                      ofproto-&gt;<a href="http://up.name" target="_blank">up.name</a>, netdev_get_name(ofport-&gt;up.netdev),<br>
-                     strerror(error));<br>
+                     ovs_strerror(error));<br>
     }<br>
<br>
     ofproto-&gt;stats.tx_packets++;<br>
diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c<br>
index eabe850..73dc52d 100644<br>
--- a/ofproto/ofproto.c<br>
+++ b/ofproto/ofproto.c<br>
@@ -442,7 +442,7 @@ ofproto_create(const char *datapath_name, const char *datapath_type,<br>
     error = ofproto-&gt;ofproto_class-&gt;construct(ofproto);<br>
     if (error) {<br>
         VLOG_ERR(&quot;failed to open datapath %s: %s&quot;,<br>
-                 datapath_name, strerror(error));<br>
+                 datapath_name, ovs_strerror(error));<br>
         ofproto_destroy__(ofproto);<br>
         return error;<br>
     }<br>
@@ -811,7 +811,7 @@ ofproto_port_set_cfm(struct ofproto *ofproto, uint16_t ofp_port,<br>
     if (error) {<br>
         VLOG_WARN(&quot;%s: CFM configuration on port %&quot;PRIu16&quot; (%s) failed (%s)&quot;,<br>
                   ofproto-&gt;name, ofp_port, netdev_get_name(ofport-&gt;netdev),<br>
-                  strerror(error));<br>
+                  ovs_strerror(error));<br>
     }<br>
 }<br>
<br>
@@ -837,7 +837,7 @@ ofproto_port_set_bfd(struct ofproto *ofproto, uint16_t ofp_port,<br>
     if (error) {<br>
         VLOG_WARN(&quot;%s: bfd configuration on port %&quot;PRIu16&quot; (%s) failed (%s)&quot;,<br>
                   ofproto-&gt;name, ofp_port, netdev_get_name(ofport-&gt;netdev),<br>
-                  strerror(error));<br>
+                  ovs_strerror(error));<br>
     }<br>
 }<br>
<br>
@@ -1148,7 +1148,7 @@ ofproto_type_run(const char *datapath_type)<br>
     error = class-&gt;type_run ? class-&gt;type_run(datapath_type) : 0;<br>
     if (error &amp;&amp; error != EAGAIN) {<br>
         VLOG_ERR_RL(&amp;rl, &quot;%s: type_run failed (%s)&quot;,<br>
-                    datapath_type, strerror(error));<br>
+                    datapath_type, ovs_strerror(error));<br>
     }<br>
     return error;<br>
 }<br>
@@ -1165,7 +1165,7 @@ ofproto_type_run_fast(const char *datapath_type)<br>
     error = class-&gt;type_run_fast ? class-&gt;type_run_fast(datapath_type) : 0;<br>
     if (error &amp;&amp; error != EAGAIN) {<br>
         VLOG_ERR_RL(&amp;rl, &quot;%s: type_run_fast failed (%s)&quot;,<br>
-                    datapath_type, strerror(error));<br>
+                    datapath_type, ovs_strerror(error));<br>
     }<br>
     return error;<br>
 }<br>
@@ -1193,7 +1193,7 @@ ofproto_run(struct ofproto *p)<br>
<br>
     error = p-&gt;ofproto_class-&gt;run(p);<br>
     if (error &amp;&amp; error != EAGAIN) {<br>
-        VLOG_ERR_RL(&amp;rl, &quot;%s: run failed (%s)&quot;, p-&gt;name, strerror(error));<br>
+        VLOG_ERR_RL(&amp;rl, &quot;%s: run failed (%s)&quot;, p-&gt;name, ovs_strerror(error));<br>
     }<br>
<br>
     if (p-&gt;ofproto_class-&gt;port_poll) {<br>
@@ -1303,7 +1303,7 @@ ofproto_run_fast(struct ofproto *p)<br>
     error = p-&gt;ofproto_class-&gt;run_fast ? p-&gt;ofproto_class-&gt;run_fast(p) : 0;<br>
     if (error &amp;&amp; error != EAGAIN) {<br>
         VLOG_ERR_RL(&amp;rl, &quot;%s: fastpath run failed (%s)&quot;,<br>
-                    p-&gt;name, strerror(error));<br>
+                    p-&gt;name, ovs_strerror(error));<br>
     }<br>
     return error;<br>
 }<br>
@@ -1737,7 +1737,7 @@ ofport_open(struct ofproto *ofproto,<br>
                      &quot;cannot be opened (%s)&quot;,<br>
                      ofproto-&gt;name,<br>
                      ofproto_port-&gt;name, ofproto_port-&gt;ofp_port,<br>
-                     ofproto_port-&gt;name, strerror(error));<br>
+                     ofproto_port-&gt;name, ovs_strerror(error));<br>
         return NULL;<br>
     }<br>
<br>
@@ -1821,7 +1821,7 @@ ofport_install(struct ofproto *p,<br>
<br>
 error:<br>
     VLOG_WARN_RL(&amp;rl, &quot;%s: could not add port %s (%s)&quot;,<br>
-                 p-&gt;name, netdev_name, strerror(error));<br>
+                 p-&gt;name, netdev_name, ovs_strerror(error));<br>
     if (ofport) {<br>
         ofport_destroy__(ofport);<br>
     } else {<br>
@@ -3245,7 +3245,7 @@ add_flow(struct ofproto *ofproto, struct ofconn *ofconn,<br>
     rule = ofproto-&gt;ofproto_class-&gt;rule_alloc();<br>
     if (!rule) {<br>
         VLOG_WARN_RL(&amp;rl, &quot;%s: failed to create rule (%s)&quot;,<br>
-                     ofproto-&gt;name, strerror(error));<br>
+                     ofproto-&gt;name, ovs_strerror(error));<br>
         return ENOMEM;<br>
     }<br>
     cls_rule_init(&amp;rule-&gt;cr, &amp;fm-&gt;match, fm-&gt;priority);<br>
@@ -4572,7 +4572,7 @@ pick_datapath_id(const struct ofproto *ofproto)<br>
         }<br>
         VLOG_WARN(&quot;%s: could not get MAC address for %s (%s)&quot;,<br>
                   ofproto-&gt;name, netdev_get_name(port-&gt;netdev),<br>
-                  strerror(error));<br>
+                  ovs_strerror(error));<br>
     }<br>
     return ofproto-&gt;fallback_dpid;<br>
 }<br>
@@ -5115,7 +5115,7 @@ ofproto_port_set_realdev(struct ofproto *ofproto, uint16_t vlandev_ofp_port,<br>
     if (error) {<br>
         VLOG_WARN(&quot;%s: setting realdev on port %&quot;PRIu16&quot; (%s) failed (%s)&quot;,<br>
                   ofproto-&gt;name, vlandev_ofp_port,<br>
-                  netdev_get_name(ofport-&gt;netdev), strerror(error));<br>
+                  netdev_get_name(ofport-&gt;netdev), ovs_strerror(error));<br>
     }<br>
     return error;<br>
 }<br>
diff --git a/ovsdb/jsonrpc-server.c b/ovsdb/jsonrpc-server.c<br>
index 9f99d64..fed298c 100644<br>
--- a/ovsdb/jsonrpc-server.c<br>
+++ b/ovsdb/jsonrpc-server.c<br>
@@ -200,7 +200,7 @@ ovsdb_jsonrpc_server_add_remote(struct ovsdb_jsonrpc_server *svr,<br>
<br>
     error = jsonrpc_pstream_open(name, &amp;listener, options-&gt;dscp);<br>
     if (error &amp;&amp; error != EAFNOSUPPORT) {<br>
-        VLOG_ERR_RL(&amp;rl, &quot;%s: listen failed: %s&quot;, name, strerror(error));<br>
+        VLOG_ERR_RL(&amp;rl, &quot;%s: listen failed: %s&quot;, name, ovs_strerror(error));<br>
         return NULL;<br>
     }<br>
<br>
@@ -291,7 +291,7 @@ ovsdb_jsonrpc_server_run(struct ovsdb_jsonrpc_server *svr)<br>
             } else if (error != EAGAIN) {<br>
                 VLOG_WARN_RL(&amp;rl, &quot;%s: accept failed: %s&quot;,<br>
                              pstream_get_name(remote-&gt;listener),<br>
-                             strerror(error));<br>
+                             ovs_strerror(error));<br>
             }<br>
         }<br>
<br>
@@ -572,7 +572,7 @@ ovsdb_jsonrpc_session_set_all_options(<br>
         error = pstream_set_dscp(remote-&gt;listener, options-&gt;dscp);<br>
         if (error) {<br>
             VLOG_ERR(&quot;%s: set_dscp failed %s&quot;,<br>
-                     pstream_get_name(remote-&gt;listener), strerror(error));<br>
+                     pstream_get_name(remote-&gt;listener), ovs_strerror(error));<br>
         } else {<br>
             remote-&gt;dscp = options-&gt;dscp;<br>
         }<br>
diff --git a/ovsdb/ovsdb-server.c b/ovsdb/ovsdb-server.c<br>
index b31560b..a02bff0 100644<br>
--- a/ovsdb/ovsdb-server.c<br>
+++ b/ovsdb/ovsdb-server.c<br>
@@ -1131,7 +1131,8 @@ save_config(FILE *config_file, const struct sset *remotes)<br>
     char *s;<br>
<br>
     if (ftruncate(fileno(config_file), 0) == -1) {<br>
-        VLOG_FATAL(&quot;failed to truncate temporary file (%s)&quot;, strerror(errno));<br>
+        VLOG_FATAL(&quot;failed to truncate temporary file (%s)&quot;,<br>
+                   ovs_strerror(errno));<br>
     }<br>
<br>
     json = json_array_create_empty();<br>
@@ -1144,7 +1145,7 @@ save_config(FILE *config_file, const struct sset *remotes)<br>
     if (fseek(config_file, 0, SEEK_SET) != 0<br>
         || fputs(s, config_file) == EOF<br>
         || fflush(config_file) == EOF) {<br>
-        VLOG_FATAL(&quot;failed to write temporary file (%s)&quot;, strerror(errno));<br>
+        VLOG_FATAL(&quot;failed to write temporary file (%s)&quot;, ovs_strerror(errno));<br>
     }<br>
     free(s);<br>
 }<br>
@@ -1160,7 +1161,7 @@ load_config(FILE *config_file, struct sset *remotes)<br>
     sset_clear(remotes);<br>
<br>
     if (fseek(config_file, 0, SEEK_SET) != 0) {<br>
-        VLOG_FATAL(&quot;seek failed in temporary file (%s)&quot;, strerror(errno));<br>
+        VLOG_FATAL(&quot;seek failed in temporary file (%s)&quot;, ovs_strerror(errno));<br>
     }<br>
     json = json_from_stream(config_file);<br>
     if (json-&gt;type == JSON_STRING) {<br>
diff --git a/tests/test-netflow.c b/tests/test-netflow.c<br>
index 921f0fd..413837e 100644<br>
--- a/tests/test-netflow.c<br>
+++ b/tests/test-netflow.c<br>
@@ -184,7 +184,7 @@ main(int argc, char *argv[])<br>
<br>
     sock = inet_open_passive(SOCK_DGRAM, target, 0, NULL, 0);<br>
     if (sock &lt; 0) {<br>
-        ovs_fatal(0, &quot;%s: failed to open (%s)&quot;, argv[1], strerror(-sock));<br>
+        ovs_fatal(0, &quot;%s: failed to open (%s)&quot;, argv[1], ovs_strerror(-sock));<br>
     }<br>
<br>
     daemon_save_fd(STDOUT_FILENO);<br>
diff --git a/tests/test-sflow.c b/tests/test-sflow.c<br>
index edb996c..cba01b9 100644<br>
--- a/tests/test-sflow.c<br>
+++ b/tests/test-sflow.c<br>
@@ -510,7 +510,7 @@ main(int argc, char *argv[])<br>
<br>
     sock = inet_open_passive(SOCK_DGRAM, target, 0, NULL, 0);<br>
     if (sock &lt; 0) {<br>
-        ovs_fatal(0, &quot;%s: failed to open (%s)&quot;, argv[1], strerror(-sock));<br>
+        ovs_fatal(0, &quot;%s: failed to open (%s)&quot;, argv[1], ovs_strerror(-sock));<br>
     }<br>
<br>
     daemon_save_fd(STDOUT_FILENO);<br>
diff --git a/tests/test-vconn.c b/tests/test-vconn.c<br>
index 1e4e787..f54a0df 100644<br>
--- a/tests/test-vconn.c<br>
+++ b/tests/test-vconn.c<br>
@@ -59,9 +59,9 @@ static void<br>
 check_errno(int a, int b, const char *as, const char *file, int line)<br>
 {<br>
     if (a != b) {<br>
-        char *str_b = strdup(strerror(abs(b)));<br>
+        char *str_b = strdup(ovs_strerror(abs(b)));<br>
         ovs_fatal(0, &quot;%s:%d: %s is %d (%s) but should be %d (%s)&quot;,<br>
-                  file, line, as, a, strerror(abs(a)), b, str_b);<br>
+                  file, line, as, a, ovs_strerror(abs(a)), b, str_b);<br>
     }<br>
 }<br>
<br>
@@ -156,14 +156,14 @@ test_refuse_connection(int argc OVS_UNUSED, char *argv[])<br>
     if (!strcmp(type, &quot;tcp&quot;)) {<br>
         if (error != ECONNRESET &amp;&amp; error != EPIPE) {<br>
             ovs_fatal(0, &quot;unexpected vconn_connect() return value %d (%s)&quot;,<br>
-                      error, strerror(error));<br>
+                      error, ovs_strerror(error));<br>
         }<br>
     } else if (!strcmp(type, &quot;unix&quot;)) {<br>
         CHECK_ERRNO(error, EPIPE);<br>
     } else if (!strcmp(type, &quot;ssl&quot;)) {<br>
         if (error != EPROTO &amp;&amp; error != ECONNRESET) {<br>
             ovs_fatal(0, &quot;unexpected vconn_connect() return value %d (%s)&quot;,<br>
-                      error, strerror(error));<br>
+                      error, ovs_strerror(error));<br>
         }<br>
     } else {<br>
         ovs_fatal(0, &quot;invalid connection type %s&quot;, type);<br>
@@ -194,7 +194,7 @@ test_accept_then_close(int argc OVS_UNUSED, char *argv[])<br>
     if (!strcmp(type, &quot;tcp&quot;) || !strcmp(type, &quot;unix&quot;)) {<br>
         if (error != ECONNRESET &amp;&amp; error != EPIPE) {<br>
             ovs_fatal(0, &quot;unexpected vconn_connect() return value %d (%s)&quot;,<br>
-                      error, strerror(error));<br>
+                      error, ovs_strerror(error));<br>
         }<br>
     } else {<br>
         CHECK_ERRNO(error, EPROTO);<br>
@@ -249,7 +249,7 @@ test_read_hello(int argc OVS_UNUSED, char *argv[])<br>
     error = vconn_connect_block(vconn);<br>
     if (error != ECONNRESET &amp;&amp; error != EPIPE) {<br>
         ovs_fatal(0, &quot;unexpected vconn_connect() return value %d (%s)&quot;,<br>
-                  error, strerror(error));<br>
+                  error, ovs_strerror(error));<br>
     }<br>
     vconn_close(vconn);<br>
 }<br>
diff --git a/utilities/ovs-controller.c b/utilities/ovs-controller.c<br>
index 70bc2e6..6d08af5 100644<br>
--- a/utilities/ovs-controller.c<br>
+++ b/utilities/ovs-controller.c<br>
@@ -136,7 +136,7 @@ main(int argc, char *argv[])<br>
             }<br>
         }<br>
         if (retval) {<br>
-            VLOG_ERR(&quot;%s: connect: %s&quot;, name, strerror(retval));<br>
+            VLOG_ERR(&quot;%s: connect: %s&quot;, name, ovs_strerror(retval));<br>
         }<br>
     }<br>
     if (n_switches == 0 &amp;&amp; n_listeners == 0) {<br>
diff --git a/utilities/ovs-dpctl.c b/utilities/ovs-dpctl.c<br>
index 54505e8..84b19ff 100644<br>
--- a/utilities/ovs-dpctl.c<br>
+++ b/utilities/ovs-dpctl.c<br>
@@ -590,13 +590,13 @@ show_dpif(struct dpif *dpif)<br>
                     free(nodes);<br>
                 } else {<br>
                     printf(&quot;, could not retrieve configuration (%s)&quot;,<br>
-                           strerror(error));<br>
+                           ovs_strerror(error));<br>
                 }<br>
                 smap_destroy(&amp;config);<br>
<br>
                 netdev_close(netdev);<br>
             } else {<br>
-                printf(&quot;: open failed (%s)&quot;, strerror(error));<br>
+                printf(&quot;: open failed (%s)&quot;, ovs_strerror(error));<br>
             }<br>
             putchar(&#39;)&#39;);<br>
         }<br>
@@ -608,12 +608,12 @@ show_dpif(struct dpif *dpif)<br>
<br>
             error = netdev_open(<a href="http://dpif_port.name" target="_blank">dpif_port.name</a>, dpif_port.type, &amp;netdev);<br>
             if (error) {<br>
-                printf(&quot;, open failed (%s)&quot;, strerror(error));<br>
+                printf(&quot;, open failed (%s)&quot;, ovs_strerror(error));<br>
                 continue;<br>
             }<br>
             error = netdev_get_stats(netdev, &amp;s);<br>
             if (error) {<br>
-                printf(&quot;, could not retrieve stats (%s)&quot;, strerror(error));<br>
+                printf(&quot;, could not retrieve stats (%s)&quot;, ovs_strerror(error));<br>
                 continue;<br>
             }<br>
<br>
diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c<br>
index 48f0fbf..6ce1d4e 100644<br>
--- a/utilities/ovs-ofctl.c<br>
+++ b/utilities/ovs-ofctl.c<br>
@@ -361,7 +361,7 @@ open_vconn_socket(const char *name, struct vconn **vconnp)<br>
                        vconnp);<br>
     if (error &amp;&amp; error != ENOENT) {<br>
         ovs_fatal(0, &quot;%s: failed to open socket (%s)&quot;, name,<br>
-                  strerror(error));<br>
+                  ovs_strerror(error));<br>
     }<br>
     free(vconn_name);<br>
<br>
@@ -412,7 +412,7 @@ open_vconn__(const char *name, enum open_target target,<br>
     error = vconn_connect_block(*vconnp);<br>
     if (error) {<br>
         ovs_fatal(0, &quot;%s: failed to connect to socket (%s)&quot;, name,<br>
-                  strerror(error));<br>
+                  ovs_strerror(error));<br>
     }<br>
<br>
     ofp_version = vconn_get_version(*vconnp);<br>
@@ -1223,7 +1223,7 @@ ofctl_send(struct unixctl_conn *conn, int argc,<br>
         error = vconn_send_block(vconn, msg);<br>
         if (error) {<br>
             ofpbuf_delete(msg);<br>
-            ds_put_format(&amp;reply, &quot;%s\n&quot;, strerror(error));<br>
+            ds_put_format(&amp;reply, &quot;%s\n&quot;, ovs_strerror(error));<br>
             ok = false;<br>
         } else {<br>
             ds_put_cstr(&amp;reply, &quot;sent\n&quot;);<br>
@@ -1260,7 +1260,7 @@ ofctl_barrier(struct unixctl_conn *conn, int argc OVS_UNUSED,<br>
     error = vconn_send_block(aux-&gt;vconn, msg);<br>
     if (error) {<br>
         ofpbuf_delete(msg);<br>
-        unixctl_command_reply_error(conn, strerror(error));<br>
+        unixctl_command_reply_error(conn, ovs_strerror(error));<br>
     } else {<br>
         aux-&gt;conn = conn;<br>
     }<br>
@@ -1274,7 +1274,7 @@ ofctl_set_output_file(struct unixctl_conn *conn, int argc OVS_UNUSED,<br>
<br>
     fd = open(argv[1], O_CREAT | O_TRUNC | O_WRONLY, 0666);<br>
     if (fd &lt; 0) {<br>
-        unixctl_command_reply_error(conn, strerror(errno));<br>
+        unixctl_command_reply_error(conn, ovs_strerror(errno));<br>
         return;<br>
     }<br>
<br>
diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c<br>
index 3513810..03220c0 100644<br>
--- a/vswitchd/bridge.c<br>
+++ b/vswitchd/bridge.c<br>
@@ -690,7 +690,7 @@ bridge_update_ofprotos(void)<br>
                 error = ofproto_port_del(br2-&gt;ofproto, ofproto_port.ofp_port);<br>
                 if (error) {<br>
                     VLOG_ERR(&quot;failed to delete port %s: %s&quot;, <a href="http://ofproto_port.name" target="_blank">ofproto_port.name</a>,<br>
-                             strerror(error));<br>
+                             ovs_strerror(error));<br>
                 }<br>
                 ofproto_port_destroy(&amp;ofproto_port);<br>
             }<br>
@@ -699,7 +699,7 @@ bridge_update_ofprotos(void)<br>
         error = ofproto_create(br-&gt;name, br-&gt;type, &amp;br-&gt;ofproto);<br>
         if (error) {<br>
             VLOG_ERR(&quot;failed to create bridge %s: %s&quot;, br-&gt;name,<br>
-                     strerror(error));<br>
+                     ovs_strerror(error));<br>
             bridge_destroy(br);<br>
         }<br>
     }<br>
@@ -821,7 +821,7 @@ bridge_configure_datapath_id(struct bridge *br)<br>
             static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5);<br>
             VLOG_ERR_RL(&amp;rl, &quot;bridge %s: failed to set bridge &quot;<br>
                         &quot;Ethernet address: %s&quot;,<br>
-                        br-&gt;name, strerror(error));<br>
+                        br-&gt;name, ovs_strerror(error));<br>
         }<br>
     }<br>
     memcpy(br-&gt;ea, ea, ETH_ADDR_LEN);<br>
@@ -1298,7 +1298,7 @@ iface_set_netdev_config(const struct ovsrec_interface *iface_cfg,<br>
     error = netdev_set_config(netdev, &amp;iface_cfg-&gt;options);<br>
     if (error) {<br>
         VLOG_WARN(&quot;could not configure network device %s (%s)&quot;,<br>
-                  iface_cfg-&gt;name, strerror(error));<br>
+                  iface_cfg-&gt;name, ovs_strerror(error));<br>
     }<br>
     return error;<br>
 }<br>
@@ -1439,7 +1439,7 @@ iface_do_create(const struct bridge *br,<br>
                         iface_get_type(iface_cfg, br-&gt;cfg), &amp;netdev);<br>
     if (error) {<br>
         VLOG_WARN(&quot;could not open network device %s (%s)&quot;,<br>
-                  iface_cfg-&gt;name, strerror(error));<br>
+                  iface_cfg-&gt;name, ovs_strerror(error));<br>
         goto error;<br>
     }<br>
<br>
@@ -1553,7 +1553,7 @@ iface_create(struct bridge *br, struct if_cfg *if_cfg, uint16_t ofp_port)<br>
                 netdev_close(netdev);<br>
             } else {<br>
                 VLOG_WARN(&quot;could not open network device %s (%s)&quot;,<br>
-                          port-&gt;name, strerror(error));<br>
+                          port-&gt;name, ovs_strerror(error));<br>
             }<br>
         } else {<br>
             /* Already exists, nothing to do. */<br>
@@ -2544,7 +2544,7 @@ qos_unixctl_show_cb(unsigned int queue_id,<br>
         }<br>
     } else {<br>
         ds_put_format(ds, &quot;\tFailed to get statistics for queue %u: %s&quot;,<br>
-                      queue_id, strerror(error));<br>
+                      queue_id, ovs_strerror(error));<br>
     }<br>
 }<br>
<br>
@@ -2580,7 +2580,7 @@ qos_unixctl_show(struct unixctl_conn *conn, int argc OVS_UNUSED,<br>
         error = netdev_dump_queues(iface-&gt;netdev, qos_unixctl_show_cb, &amp;data);<br>
<br>
         if (error) {<br>
-            ds_put_format(&amp;ds, &quot;failed to dump queues: %s&quot;, strerror(error));<br>
+            ds_put_format(&amp;ds, &quot;failed to dump queues: %s&quot;, ovs_strerror(error));<br></blockquote><div><br></div><div><br></div><div><br></div><div style>Here, the line is longer than 79 chars,</div><div> </div>
<div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
         }<br>
         unixctl_command_reply(conn, ds_cstr(&amp;ds));<br>
     } else {<br>
@@ -3512,7 +3512,7 @@ iface_set_mac(struct iface *iface)<br>
             int error = netdev_set_etheraddr(iface-&gt;netdev, ea);<br>
             if (error) {<br>
                 VLOG_ERR(&quot;interface %s: setting MAC failed (%s)&quot;,<br>
-                         iface-&gt;name, strerror(error));<br>
+                         iface-&gt;name, ovs_strerror(error));<br>
             }<br>
         }<br>
     }<br>
diff --git a/vswitchd/ovs-vswitchd.c b/vswitchd/ovs-vswitchd.c<br>
index 80c8fed..bb087bd 100644<br>
--- a/vswitchd/ovs-vswitchd.c<br>
+++ b/vswitchd/ovs-vswitchd.c<br>
@@ -1,4 +1,4 @@<br>
-/* Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.<br>
+/* Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -87,7 +87,7 @@ main(int argc, char *argv[])<br>
     if (want_mlockall) {<br>
 #ifdef HAVE_MLOCKALL<br>
         if (mlockall(MCL_CURRENT | MCL_FUTURE)) {<br>
-            VLOG_ERR(&quot;mlockall failed: %s&quot;, strerror(errno));<br>
+            VLOG_ERR(&quot;mlockall failed: %s&quot;, ovs_strerror(errno));<br>
         }<br>
 #else<br>
         VLOG_ERR(&quot;mlockall not supported on this system&quot;);<br>
diff --git a/vswitchd/system-stats.c b/vswitchd/system-stats.c<br>
index 842bc20..f0f53c0 100644<br>
--- a/vswitchd/system-stats.c<br>
+++ b/vswitchd/system-stats.c<br>
@@ -1,4 +1,4 @@<br>
-/* Copyright (c) 2010, 2012 Nicira, Inc.<br>
+/* Copyright (c) 2010, 2012, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -131,7 +131,8 @@ get_memory_stats(struct smap *stats)<br>
<br>
         stream = fopen(file_name, &quot;r&quot;);<br>
         if (!stream) {<br>
-            VLOG_WARN_ONCE(&quot;%s: open failed (%s)&quot;, file_name, strerror(errno));<br>
+            VLOG_WARN_ONCE(&quot;%s: open failed (%s)&quot;,<br>
+                           file_name, ovs_strerror(errno));<br>
             return;<br>
         }<br>
<br>
@@ -183,7 +184,8 @@ get_boot_time(void)<br>
<br>
         stream = fopen(stat_file, &quot;r&quot;);<br>
         if (!stream) {<br>
-            VLOG_ERR_ONCE(&quot;%s: open failed (%s)&quot;, stat_file, strerror(errno));<br>
+            VLOG_ERR_ONCE(&quot;%s: open failed (%s)&quot;,<br>
+                          stat_file, ovs_strerror(errno));<br>
             return boot_time;<br>
         }<br>
<br>
@@ -242,7 +244,8 @@ get_raw_process_info(pid_t pid, struct raw_process_info *raw)<br>
     sprintf(file_name, &quot;/proc/%lu/stat&quot;, (unsigned long int) pid);<br>
     stream = fopen(file_name, &quot;r&quot;);<br>
     if (!stream) {<br>
-        VLOG_ERR_ONCE(&quot;%s: open failed (%s)&quot;, file_name, strerror(errno));<br>
+        VLOG_ERR_ONCE(&quot;%s: open failed (%s)&quot;,<br>
+                      file_name, ovs_strerror(errno));<br>
         return false;<br>
     }<br>
<br>
@@ -327,13 +330,13 @@ count_crashes(pid_t pid)<br>
     sprintf(file_name, &quot;/proc/%lu/cmdline&quot;, (unsigned long int) pid);<br>
     stream = fopen(file_name, &quot;r&quot;);<br>
     if (!stream) {<br>
-        VLOG_WARN_ONCE(&quot;%s: open failed (%s)&quot;, file_name, strerror(errno));<br>
+        VLOG_WARN_ONCE(&quot;%s: open failed (%s)&quot;, file_name, ovs_strerror(errno));<br>
         goto exit;<br>
     }<br>
<br>
     if (!fgets(line, sizeof line, stream)) {<br>
         VLOG_WARN_ONCE(&quot;%s: read failed (%s)&quot;, file_name,<br>
-                       feof(stream) ? &quot;end of file&quot; : strerror(errno));<br>
+                       feof(stream) ? &quot;end of file&quot; : ovs_strerror(errno));<br>
         goto exit_close;<br>
     }<br>
<br>
@@ -398,7 +401,8 @@ get_process_stats(struct smap *stats)<br>
<br>
     dir = opendir(ovs_rundir());<br>
     if (!dir) {<br>
-        VLOG_ERR_ONCE(&quot;%s: open failed (%s)&quot;, ovs_rundir(), strerror(errno));<br>
+        VLOG_ERR_ONCE(&quot;%s: open failed (%s)&quot;,<br>
+                      ovs_rundir(), ovs_strerror(errno));<br>
         return;<br>
     }<br>
<br>
@@ -457,7 +461,7 @@ get_filesys_stats(struct smap *stats OVS_UNUSED)<br>
<br>
     stream = setmntent(file_name, &quot;r&quot;);<br>
     if (!stream) {<br>
-        VLOG_ERR_ONCE(&quot;%s: open failed (%s)&quot;, file_name, strerror(errno));<br>
+        VLOG_ERR_ONCE(&quot;%s: open failed (%s)&quot;, file_name, ovs_strerror(errno));<br>
         return;<br>
     }<br>
<br>
diff --git a/vswitchd/xenserver.c b/vswitchd/xenserver.c<br>
index 7427e4c..1f26e0d 100644<br>
--- a/vswitchd/xenserver.c<br>
+++ b/vswitchd/xenserver.c<br>
@@ -1,4 +1,4 @@<br>
-/* Copyright (c) 2009, 2010 Nicira, Inc.<br>
+/* Copyright (c) 2009, 2010, 2013 Nicira, Inc.<br>
  *<br>
  * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);<br>
  * you may not use this file except in compliance with the License.<br>
@@ -38,7 +38,7 @@ read_host_uuid(void)<br>
         if (errno == ENOENT) {<br>
             VLOG_DBG(&quot;not running on a XenServer&quot;);<br>
         } else {<br>
-            VLOG_INFO(&quot;%s: open: %s&quot;, filename, strerror(errno));<br>
+            VLOG_INFO(&quot;%s: open: %s&quot;, filename, ovs_strerror(errno));<br>
         }<br>
         return NULL;<br>
     }<br>
<span class=""><font color="#888888">--<br>
1.7.2.5<br>
<br>
_______________________________________________<br>
dev mailing list<br>
<a href="mailto:dev@openvswitch.org">dev@openvswitch.org</a><br>
<a href="http://openvswitch.org/mailman/listinfo/dev" target="_blank">http://openvswitch.org/mailman/listinfo/dev</a><br>
</font></span></blockquote></div><br></div></div>