projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #3074 from mfournier/ci-setup
[collectd.git]
/
src
/
libcollectdclient
/
server.c
diff --git
a/src/libcollectdclient/server.c
b/src/libcollectdclient/server.c
index
a81afda
..
629c367
100644
(file)
--- a/
src/libcollectdclient/server.c
+++ b/
src/libcollectdclient/server.c
@@
-23,6
+23,10
@@
* Florian octo Forster <octo at collectd.org>
**/
* Florian octo Forster <octo at collectd.org>
**/
+#ifdef WIN32
+#include "gnulib_config.h"
+#endif
+
#include "config.h"
#if !defined(__GNUC__) || !__GNUC__
#include "config.h"
#if !defined(__GNUC__) || !__GNUC__
@@
-33,19
+37,27
@@
#include "collectd/network_parse.h" /* for lcc_network_parse_options_t */
#include "collectd/server.h"
#include "collectd/network_parse.h" /* for lcc_network_parse_options_t */
#include "collectd/server.h"
+// clang-format off
#include <errno.h>
#include <errno.h>
-#include <net/if.h>
-#include <netdb.h>
-#include <netinet/in.h>
+#include <stdbool.h>
#include <string.h>
#include <string.h>
+#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/types.h>
-#include <unistd.h>
+#include <net/if.h>
+#include <netdb.h>
+#include <netinet/in.h>
+// clang-format on
#include <stdio.h>
#define DEBUG(...) printf(__VA_ARGS__)
#include <stdio.h>
#define DEBUG(...) printf(__VA_ARGS__)
-static _Bool is_multicast(struct addrinfo const *ai) {
+#ifdef WIN32
+#include <ws2tcpip.h>
+#define AI_ADDRCONFIG 0
+#endif
+
+static bool is_multicast(struct addrinfo const *ai) {
if (ai->ai_family == AF_INET) {
struct sockaddr_in *addr = (struct sockaddr_in *)ai->ai_addr;
return IN_MULTICAST(ntohl(addr->sin_addr.s_addr));
if (ai->ai_family == AF_INET) {
struct sockaddr_in *addr = (struct sockaddr_in *)ai->ai_addr;
return IN_MULTICAST(ntohl(addr->sin_addr.s_addr));
@@
-78,13
+90,20
@@
static int server_multicast_join(lcc_listener_t *srv,
struct ip_mreqn mreq = {
.imr_address.s_addr = INADDR_ANY,
.imr_multiaddr.s_addr = sa->sin_addr.s_addr,
struct ip_mreqn mreq = {
.imr_address.s_addr = INADDR_ANY,
.imr_multiaddr.s_addr = sa->sin_addr.s_addr,
- .imr_ifindex = if_nametoindex(srv->i
nter
face),
+ .imr_ifindex = if_nametoindex(srv->iface),
};
#else
};
#else
+#ifdef WIN32
struct ip_mreq mreq = {
struct ip_mreq mreq = {
+ .imr_interface.s_addr = INADDR_ANY,
.imr_multiaddr.s_addr = sa->sin_addr.s_addr,
};
.imr_multiaddr.s_addr = sa->sin_addr.s_addr,
};
-#endif
+#else
+ struct ip_mreq mreq = {
+ .imr_multiaddr.s_addr = sa->sin_addr.s_addr,
+ };
+#endif /* WIN32 */
+#endif /* HAVE_STRUCT_IP_MREQN_IMR_IFINDEX */
status = setsockopt(srv->conn, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq,
sizeof(mreq));
if (status == -1)
status = setsockopt(srv->conn, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq,
sizeof(mreq));
if (status == -1)
@@
-103,7
+122,7
@@
static int server_multicast_join(lcc_listener_t *srv,
return errno;
struct ipv6_mreq mreq6 = {
return errno;
struct ipv6_mreq mreq6 = {
- .ipv6mr_interface = if_nametoindex(srv->i
nter
face),
+ .ipv6mr_interface = if_nametoindex(srv->iface),
};
memmove(&mreq6.ipv6mr_multiaddr, &sa->sin6_addr, sizeof(struct in6_addr));
};
memmove(&mreq6.ipv6mr_multiaddr, &sa->sin6_addr, sizeof(struct in6_addr));
@@
-175,7
+194,7
@@
static int server_open(lcc_listener_t *srv) {
}
int lcc_listen_and_write(lcc_listener_t srv) {
}
int lcc_listen_and_write(lcc_listener_t srv) {
-
_B
ool close_socket = 0;
+
b
ool close_socket = 0;
if (srv.conn < 0) {
int status = server_open(&srv);
if (srv.conn < 0) {
int status = server_open(&srv);