+diff -ru src.orig/src/event.c src/src/event.c
+--- src.orig/src/event.c 2014-10-20 00:07:03.000000000 +0100
++++ src/src/event.c 2018-05-06 11:38:04.649495279 +0100
+@@ -97,7 +97,6 @@
+ void adns__tcp_tryconnect(adns_state ads, struct timeval now) {
+ int r, fd, tries;
+ adns_rr_addr *addr;
+- struct protoent *proto;
+
+ for (tries=0; tries<ads->nservers; tries++) {
+ switch (ads->tcpstate) {
+@@ -115,13 +114,8 @@
+ assert(!ads->tcprecv.used);
+ assert(!ads->tcprecv_skip);
+
+- proto= getprotobyname("tcp");
+- if (!proto) {
+- adns__diag(ads,-1,0,"unable to find protocol no. for TCP !");
+- return;
+- }
+ addr = &ads->servers[ads->tcpserver];
+- fd= socket(addr->addr.sa.sa_family, SOCK_STREAM, proto->p_proto);
++ fd= socket(addr->addr.sa.sa_family, SOCK_STREAM, IPPROTO_TCP);
+ if (fd<0) {
+ adns__diag(ads,-1,0,"cannot create TCP socket: %s",strerror(errno));
+ return;
+Only in src/src: event.c~
+diff -ru src.orig/src/setup.c src/src/setup.c
+--- src.orig/src/setup.c 2014-10-26 12:03:40.000000000 +0000
++++ src/src/setup.c 2018-05-06 11:37:06.194241291 +0100
+@@ -644,7 +644,6 @@
+
+ static int init_finish(adns_state ads) {
+ struct sockaddr_in sin;
+- struct protoent *proto;
+ struct udpsocket *udp;
+ int i;
+ int r;
+@@ -659,7 +658,6 @@
+ addserver(ads,(struct sockaddr *)&sin, sizeof(sin));
+ }
+
+- proto= getprotobyname("udp"); if (!proto) { r= ENOPROTOOPT; goto x_free; }
+ ads->nudpsockets= 0;
+ for (i=0; i<ads->nservers; i++) {
+ if (adns__udpsocket_by_af(ads, ads->servers[i].addr.sa.sa_family))
+@@ -667,7 +665,7 @@
+ assert(ads->nudpsockets < MAXUDP);
+ udp= &ads->udpsockets[ads->nudpsockets];
+ udp->af= ads->servers[i].addr.sa.sa_family;
+- udp->fd= socket(udp->af,SOCK_DGRAM,proto->p_proto);
++ udp->fd= socket(udp->af,SOCK_DGRAM,IPPROTO_UDP);
+ if (udp->fd < 0) { r= errno; goto x_free; }
+ ads->nudpsockets++;
+ r= adns__setnonblock(ads,udp->fd);
+Only in src/src: setup.c~