Fix return value call on send() when sending NetFlow messages.
authorJustin Pettit <jpettit@nicira.com>
Wed, 13 May 2009 05:58:25 +0000 (22:58 -0700)
committerJustin Pettit <jpettit@nicira.com>
Wed, 13 May 2009 05:58:25 +0000 (22:58 -0700)
When sending NetFlow messages, we use the send() call, but were checking
the wrong return value.  It would report an error when any non-zero
value was returned.  The send() call returns the number of bytes sent or
-1 on error.  Thus, whenever a NetFlow message was sent, it would
generate an error message.  Now, we only log a message when a value of
-1 is returned.  (Bug #1166)

secchan/netflow.c

index 7c16facbaee670627543c0cb72b002df383a6a65..16abed943d09c14522be2a02cf84a5b4d23629c3 100644 (file)
@@ -242,7 +242,7 @@ netflow_run(struct netflow *nf)
     }
 
     for (i = 0; i < nf->n_fds; i++) {
-        if (send(nf->fds[i], nf->packet.data, nf->packet.size, 0)) {
+        if (send(nf->fds[i], nf->packet.data, nf->packet.size, 0) == -1) {
             VLOG_WARN_RL(&rl, "netflow message send failed: %s",
                          strerror(errno));
         }