#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(AVAHI_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(AVAHI_MDNS_PORT);
inet_pton(AF_INET6, "ff02::fb", &ret_sa->sin6_addr);
}
-int flx_mdns_mcast_join_ipv4 (int index, int fd)
+int avahi_mdns_mcast_join_ipv4 (int index, int fd)
{
struct ip_mreqn mreq;
struct sockaddr_in sa;
return 0;
}
-int flx_mdns_mcast_join_ipv6 (int index, int fd)
+int avahi_mdns_mcast_join_ipv6 (int index, int fd)
{
struct ipv6_mreq mreq6;
struct sockaddr_in6 sa6;
return 0;
}
-int flx_mdns_mcast_leave_ipv4 (int index, int fd)
+int avahi_mdns_mcast_leave_ipv4 (int index, int fd)
{
struct ip_mreqn mreq;
struct sockaddr_in sa;
return 0;
}
-int flx_mdns_mcast_leave_ipv6 (int index, int fd)
+int avahi_mdns_mcast_leave_ipv6 (int index, int fd)
{
struct ipv6_mreq mreq6;
struct sockaddr_in6 sa6;
return 0;
}
-gint flx_open_socket_ipv4(void) {
+gint avahi_open_socket_ipv4(void) {
struct sockaddr_in sa, local;
int fd = -1, ttl, yes;
memset(&local, 0, sizeof(local));
local.sin_family = AF_INET;
- local.sin_port = htons(MDNS_PORT);
+ local.sin_port = htons(AVAHI_MDNS_PORT);
if (bind(fd, (struct sockaddr*) &local, sizeof(local)) < 0) {
g_warning("bind() failed: %s\n", strerror(errno));
goto fail;
}
- if (flx_set_cloexec(fd) < 0) {
+ if (avahi_set_cloexec(fd) < 0) {
g_warning("FD_CLOEXEC failed: %s\n", strerror(errno));
goto fail;
}
- if (flx_set_nonblock(fd) < 0) {
+ if (avahi_set_nonblock(fd) < 0) {
g_warning("O_NONBLOCK failed: %s\n", strerror(errno));
goto fail;
}
return -1;
}
-gint flx_open_socket_ipv6(void) {
+gint avahi_open_socket_ipv6(void) {
struct sockaddr_in6 sa, local;
int fd = -1, ttl, yes;
memset(&local, 0, sizeof(local));
local.sin6_family = AF_INET6;
- local.sin6_port = htons(MDNS_PORT);
+ local.sin6_port = htons(AVAHI_MDNS_PORT);
if (bind(fd, (struct sockaddr*) &local, sizeof(local)) < 0) {
g_warning("bind() failed: %s\n", strerror(errno));
goto fail;
}
- if (flx_set_cloexec(fd) < 0) {
+ if (avahi_set_cloexec(fd) < 0) {
g_warning("FD_CLOEXEC failed: %s\n", strerror(errno));
goto fail;
}
- if (flx_set_nonblock(fd) < 0) {
+ if (avahi_set_nonblock(fd) < 0) {
g_warning("O_NONBLOCK failed: %s\n", strerror(errno));
goto fail;
}
return -1;
}
- if (flx_wait_for_write(fd) < 0)
+ if (avahi_wait_for_write(fd) < 0)
return -1;
}
return 0;
}
-gint flx_send_dns_packet_ipv4(gint fd, gint interface, flxDnsPacket *p) {
+gint avahi_send_dns_packet_ipv4(gint fd, gint interface, AvahiDnsPacket *p) {
struct sockaddr_in sa;
struct msghdr msg;
struct iovec io;
g_assert(fd >= 0);
g_assert(p);
- g_assert(flx_dns_packet_check_valid(p) >= 0);
+ g_assert(avahi_dns_packet_check_valid(p) >= 0);
mdns_mcast_group_ipv4(&sa);
memset(&io, 0, sizeof(io));
- io.iov_base = FLX_DNS_PACKET_DATA(p);
+ io.iov_base = AVAHI_DNS_PACKET_DATA(p);
io.iov_len = p->size;
memset(cmsg_data, 0, sizeof(cmsg_data));
return sendmsg_loop(fd, &msg, MSG_DONTROUTE);
}
-gint flx_send_dns_packet_ipv6(gint fd, gint interface, flxDnsPacket *p) {
+gint avahi_send_dns_packet_ipv6(gint fd, gint interface, AvahiDnsPacket *p) {
struct sockaddr_in6 sa;
struct msghdr msg;
struct iovec io;
g_assert(fd >= 0);
g_assert(p);
- g_assert(flx_dns_packet_check_valid(p) >= 0);
+ g_assert(avahi_dns_packet_check_valid(p) >= 0);
mdns_mcast_group_ipv6(&sa);
memset(&io, 0, sizeof(io));
- io.iov_base = FLX_DNS_PACKET_DATA(p);
+ io.iov_base = AVAHI_DNS_PACKET_DATA(p);
io.iov_len = p->size;
memset(cmsg_data, 0, sizeof(cmsg_data));
return sendmsg_loop(fd, &msg, MSG_DONTROUTE);
}
-flxDnsPacket* flx_recv_dns_packet_ipv4(gint fd, struct sockaddr_in *ret_sa, gint *ret_iface, guint8* ret_ttl) {
- flxDnsPacket *p= NULL;
+AvahiDnsPacket* avahi_recv_dns_packet_ipv4(gint fd, struct sockaddr_in *ret_sa, gint *ret_iface, guint8* ret_ttl) {
+ AvahiDnsPacket *p= NULL;
struct msghdr msg;
struct iovec io;
uint8_t aux[64];
g_assert(ret_iface);
g_assert(ret_ttl);
- p = flx_dns_packet_new(0);
+ p = avahi_dns_packet_new(0);
- io.iov_base = FLX_DNS_PACKET_DATA(p);
+ io.iov_base = AVAHI_DNS_PACKET_DATA(p);
io.iov_len = p->max_size;
memset(&msg, 0, sizeof(msg));
fail:
if (p)
- flx_dns_packet_free(p);
+ avahi_dns_packet_free(p);
return NULL;
}
-flxDnsPacket* flx_recv_dns_packet_ipv6(gint fd, struct sockaddr_in6 *ret_sa, gint *ret_iface, guint8* ret_ttl) {
- flxDnsPacket *p = NULL;
+AvahiDnsPacket* avahi_recv_dns_packet_ipv6(gint fd, struct sockaddr_in6 *ret_sa, gint *ret_iface, guint8* ret_ttl) {
+ AvahiDnsPacket *p = NULL;
struct msghdr msg;
struct iovec io;
uint8_t aux[64];
g_assert(ret_iface);
g_assert(ret_ttl);
- p = flx_dns_packet_new(0);
+ p = avahi_dns_packet_new(0);
- io.iov_base = FLX_DNS_PACKET_DATA(p);
+ io.iov_base = AVAHI_DNS_PACKET_DATA(p);
io.iov_len = p->max_size;
memset(&msg, 0, sizeof(msg));
fail:
if (p)
- flx_dns_packet_free(p);
+ avahi_dns_packet_free(p);
return NULL;
}