/*
- * Copyright (c) 2008, 2009 Nicira Networks.
+ * Copyright (c) 2008, 2009, 2010 Nicira Networks.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include <errno.h>
#include <stdlib.h>
+#include <sys/socket.h>
#include <unistd.h>
#include "socket-util.h"
#include "svec.h"
#include "util.h"
-
-#define THIS_MODULE VLM_collectors
#include "vlog.h"
+VLOG_DEFINE_THIS_MODULE(collectors)
+
struct collectors {
int *fds; /* Sockets. */
size_t n_fds; /* Number of sockets. */
void
collectors_send(const struct collectors *c, const void *payload, size_t n)
{
- size_t i;
+ if (c) {
+ size_t i;
- for (i = 0; i < c->n_fds; i++) {
- static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5);
- if (send(c->fds[i], payload, n, 0) == -1) {
- VLOG_WARN_RL(&rl, "sending to collector failed: %s",
- strerror(errno));
+ for (i = 0; i < c->n_fds; i++) {
+ static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(1, 5);
+ if (send(c->fds[i], payload, n, 0) == -1) {
+ VLOG_WARN_RL(&rl, "sending to collector failed: %s",
+ strerror(errno));
+ }
}
}
}
+
+int
+collectors_count(const struct collectors *c)
+{
+ return c ? c->n_fds : 0;
+}