chiark / gitweb /
Portability fixes (missing struct in_addr, INADDR_LOOPBACK defs, rrs=0
[adns.git] / src / event.c
index db3dad68e776168a2c645aa14e801413cf837dd7..582e95c54f893bcde8e1d843f6889b6d1e6e304c 100644 (file)
@@ -27,6 +27,8 @@
 #include <stdlib.h>
 
 #include <netdb.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
 #include <arpa/inet.h>
 
 #include "internal.h"
@@ -100,7 +102,7 @@ void adns__tcp_tryconnect(adns_state ads, struct timeval now) {
     addr.sin_family= AF_INET;
     addr.sin_port= htons(DNS_PORT);
     addr.sin_addr= ads->servers[ads->tcpserver].addr;
-    r= connect(fd,&addr,sizeof(addr));
+    r= connect(fd,(const struct sockaddr*)&addr,sizeof(addr));
     ads->tcpsocket= fd;
     ads->tcpstate= server_connecting;
     if (r==0) { tcp_connected(ads,now); continue; }
@@ -305,7 +307,8 @@ static int internal_callback(adns_state ads, int maxfd,
     count++;
     for (;;) {
       udpaddrlen= sizeof(udpaddr);
-      r= recvfrom(ads->udpsocket,udpbuf,sizeof(udpbuf),0,&udpaddr,&udpaddrlen);
+      r= recvfrom(ads->udpsocket,udpbuf,sizeof(udpbuf),0,
+                 (struct sockaddr*)&udpaddr,&udpaddrlen);
       if (r<0) {
        if (!(errno == EAGAIN || errno == EWOULDBLOCK ||
              errno == EINTR || errno == ENOMEM || errno == ENOBUFS))