packages/libadns/: Various minor fixes.
[termux-packages] / packages / libadns / getprotoent.patch
diff --git a/packages/libadns/getprotoent.patch b/packages/libadns/getprotoent.patch
new file mode 100644 (file)
index 0000000..9454bf9
--- /dev/null
@@ -0,0 +1,56 @@
+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~