* Florian octo Forster <octo at collectd.org>
**/
-#if HAVE_CONFIG_H
#include "config.h"
-#endif
#if !defined(__GNUC__) || !__GNUC__
#define __attribute__(x) /**/
#include <errno.h>
#include <net/if.h>
#include <netdb.h>
+#include <netinet/in.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/types.h>
};
#else
struct ip_mreq mreq = {
- .imr_address.s_addr = INADDR_ANY, .imr_multiaddr.s_addr = sa->s_addr,
+ .imr_multiaddr.s_addr = sa->sin_addr.s_addr,
};
#endif
status = setsockopt(srv->conn, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq,
};
memmove(&mreq6.ipv6mr_multiaddr, &sa->sin6_addr, sizeof(struct in6_addr));
- status = setsockopt(srv->conn, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &mreq6,
+ status = setsockopt(srv->conn, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq6,
sizeof(mreq6));
if (status == -1)
return errno;
}
if (srv.buffer_size == 0)
- /* TODO(octo): this should be a define. */
- srv.buffer_size = 1452;
+ srv.buffer_size = LCC_NETWORK_BUFFER_SIZE;
+
+ if (srv.parser == NULL)
+ srv.parser = lcc_network_parse;
int ret = 0;
while (42) {
break;
}
- /* TODO(octo): implement parse(). */
- (void)lcc_network_parse(buffer, (size_t)len,
- (lcc_network_parse_options_t){
- .writer = srv.writer,
- .password_lookup = srv.password_lookup,
- .security_level = srv.security_level,
- });
+ (void)srv.parser(buffer, (size_t)len, srv.parse_options);
}
if (close_socket) {