#include "dns.h"
#include "util.h"
-
-#define MDNS_PORT 5353
+#include "socket.h"
static void mdns_mcast_group_ipv4(struct sockaddr_in *ret_sa) {
g_assert(ret_sa);
memset(ret_sa, 0, sizeof(struct sockaddr_in));
ret_sa->sin_family = AF_INET;
- ret_sa->sin_port = htons(MDNS_PORT);
+ ret_sa->sin_port = htons(FLX_MDNS_PORT);
inet_pton(AF_INET, "224.0.0.251", &ret_sa->sin_addr);
}
memset(ret_sa, 0, sizeof(struct sockaddr_in6));
ret_sa->sin6_family = AF_INET6;
- ret_sa->sin6_port = htons(MDNS_PORT);
+ ret_sa->sin6_port = htons(FLX_MDNS_PORT);
inet_pton(AF_INET6, "ff02::fb", &ret_sa->sin6_addr);
}
if (setsockopt(fd, SOL_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) < 0) {
g_warning("IP_ADD_MEMBERSHIP failed: %s\n", strerror(errno));
- return 0;
- } else {
return -1;
- }
+ }
+
+ return 0;
}
int flx_mdns_mcast_join_ipv6 (int index, int fd)
struct ipv6_mreq mreq6;
struct sockaddr_in6 sa6;
-
mdns_mcast_group_ipv6 (&sa6);
memset(&mreq6, 0, sizeof(mreq6));
if (setsockopt(fd, SOL_IPV6, IPV6_ADD_MEMBERSHIP, &mreq6, sizeof(mreq6)) < 0) {
g_warning("IPV6_ADD_MEMBERSHIP failed: %s\n", strerror(errno));
- return 0;
- } else {
return -1;
}
+
+ return 0;
}
int flx_mdns_mcast_leave_ipv4 (int index, int fd)
if (setsockopt(fd, SOL_IP, IP_DROP_MEMBERSHIP, &mreq, sizeof(mreq)) < 0) {
g_warning("IP_DROP_MEMBERSHIP failed: %s\n", strerror(errno));
- return 0;
- } else {
return -1;
}
+
+ return 0;
}
int flx_mdns_mcast_leave_ipv6 (int index, int fd)
if (setsockopt(fd, SOL_IPV6, IPV6_DROP_MEMBERSHIP, &mreq6, sizeof(mreq6)) < 0) {
g_warning("IPV6_DROP_MEMBERSHIP failed: %s\n", strerror(errno));
- return 0;
- } else {
return -1;
}
+
+ return 0;
}
gint flx_open_socket_ipv4(void) {
memset(&local, 0, sizeof(local));
local.sin_family = AF_INET;
- local.sin_port = htons(MDNS_PORT);
+ local.sin_port = htons(FLX_MDNS_PORT);
if (bind(fd, (struct sockaddr*) &local, sizeof(local)) < 0) {
g_warning("bind() failed: %s\n", strerror(errno));
memset(&local, 0, sizeof(local));
local.sin6_family = AF_INET6;
- local.sin6_port = htons(MDNS_PORT);
+ local.sin6_port = htons(FLX_MDNS_PORT);
if (bind(fd, (struct sockaddr*) &local, sizeof(local)) < 0) {
g_warning("bind() failed: %s\n", strerror(errno));