Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-auth/nss-mdns/, sys-auth/nss-mdns/files/
Date: Thu, 06 Sep 2018 21:23:05
Message-Id: 1536268943.95b6bb2723c881536a35404b9f8f227b742a74c6.mgorny@gentoo
1 commit: 95b6bb2723c881536a35404b9f8f227b742a74c6
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Thu Sep 6 20:54:19 2018 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Thu Sep 6 21:22:23 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95b6bb27
7
8 sys-auth/nss-mdns: Clean old up
9
10 sys-auth/nss-mdns/Manifest | 2 -
11 .../files/nss-mdns-0.10-avahi-socket.patch | 14 -
12 sys-auth/nss-mdns/files/nss-mdns-0.10-ipv6.patch | 528 ---------------------
13 sys-auth/nss-mdns/metadata.xml | 4 -
14 sys-auth/nss-mdns/nss-mdns-0.10-r3.ebuild | 57 ---
15 sys-auth/nss-mdns/nss-mdns-0.11.ebuild | 54 ---
16 6 files changed, 659 deletions(-)
17
18 diff --git a/sys-auth/nss-mdns/Manifest b/sys-auth/nss-mdns/Manifest
19 index 821d3ef0c5f..b7a8af7b630 100644
20 --- a/sys-auth/nss-mdns/Manifest
21 +++ b/sys-auth/nss-mdns/Manifest
22 @@ -1,3 +1 @@
23 -DIST nss-mdns-0.10.tar.gz 353130 BLAKE2B 88cc7cbc908f397bbf52f590946b3bc8bc4c71585c9a0a52648ae3dd23b3f5ca9fbd24f0fc7c34dff08d7a4c8d72fec94a51a65650bed41b07aec6c81220d517 SHA512 7c9f4150648dfab34bc6f8551e5b58b0b7065e4c1472efb8ce1b00b2bd75627e5928b2c199d9dae742abe839968a8774e39c7646f8ce855d342b4d90252efc0e
24 -DIST nss-mdns-0.11.tar.gz 382059 BLAKE2B 5523c76d6f7364efde54b9bf303dfdf34c11b96c9348bfd4a62d095215e7d6f32e0d44e22d21677d51700d458a10f9c36f7ccecb7b4add04fcba629ee19abc21 SHA512 9dceb0f244c4cd27b04ca2014637873a0d137464c26780dfdb228502b06b310991494b115e42e1057c45478361d0e441ec73099fbf56a13a5933618b72390af4
25 DIST nss-mdns-0.13.tar.gz 380261 BLAKE2B 555b7b9df8ff15da423712fac04ccbc303395d38a07121906cf31871a8684c71e43809b80674a489d87397902a33f4d19b0ae49a4c384290bad227a24880476f SHA512 f1b379111fb758323179ea3e447d754e934308940b11a8402dfb6033264940d831266d15ae1ee0badfecd5cdc7f589b42e4363dfc058f5e62026017d97eb0a3b
26
27 diff --git a/sys-auth/nss-mdns/files/nss-mdns-0.10-avahi-socket.patch b/sys-auth/nss-mdns/files/nss-mdns-0.10-avahi-socket.patch
28 deleted file mode 100644
29 index 9ada93d2b8f..00000000000
30 --- a/sys-auth/nss-mdns/files/nss-mdns-0.10-avahi-socket.patch
31 +++ /dev/null
32 @@ -1,14 +0,0 @@
33 -https://bugs.gentoo.org/159341
34 -
35 -fix the full path to the socket run dir
36 -
37 ---- src/Makefile.am
38 -+++ src/Makefile.am
39 -@@ -20,7 +20,7 @@
40 - AM_CFLAGS = \
41 - -DMDNS_ALLOW_FILE=\"$(sysconfdir)/mdns.allow\" \
42 - -DRESOLV_CONF_FILE=\"$(sysconfdir)/resolv.conf\" \
43 -- -DAVAHI_SOCKET=\"$(localstatedir)/run/avahi-daemon/socket\"
44 -+ -DAVAHI_SOCKET=\"/var/run/avahi-daemon/socket\"
45 -
46 - #AM_CFLAGS += -DNDEBUG=1 -Os
47
48 diff --git a/sys-auth/nss-mdns/files/nss-mdns-0.10-ipv6.patch b/sys-auth/nss-mdns/files/nss-mdns-0.10-ipv6.patch
49 deleted file mode 100644
50 index 6d6dbc9eab5..00000000000
51 --- a/sys-auth/nss-mdns/files/nss-mdns-0.10-ipv6.patch
52 +++ /dev/null
53 @@ -1,528 +0,0 @@
54 -diff -u src/avahi.c src/avahi.c
55 ---- src/avahi.c 2006-04-29 05:14:09.000000000 +0800
56 -+++ src/avahi.c 2013-01-04 10:00:05.025558790 +0800
57 -@@ -26,6 +26,7 @@
58 - #include <sys/socket.h>
59 - #include <string.h>
60 - #include <stdio.h>
61 -+#include <stdlib.h>
62 - #include <sys/types.h>
63 - #include <arpa/inet.h>
64 - #include <sys/un.h>
65 -@@ -34,6 +35,7 @@
66 -
67 - #include "avahi.h"
68 - #include "util.h"
69 -+#include "query.h"
70 -
71 - #define WHITESPACE " \t"
72 -
73 -@@ -93,7 +95,8 @@
74 - p = ln+1;
75 - p += strspn(p, WHITESPACE);
76 -
77 -- /* Skip interface */
78 -+ /* Parse interface */
79 -+ if (af == AF_INET6) ((ipv6_address_t*)data)->if_idx = strtoul(p, 0, 10);
80 - p += strcspn(p, WHITESPACE);
81 - p += strspn(p, WHITESPACE);
82 -
83 -diff -u src/avahi-test.c src/avahi-test.c
84 ---- src/avahi-test.c 2007-02-09 00:42:23.000000000 +0800
85 -+++ src/avahi-test.c 2013-01-04 09:59:06.174017729 +0800
86 -@@ -24,6 +24,7 @@
87 - #include <stdio.h>
88 -
89 - #include "avahi.h"
90 -+#include "query.h"
91 -
92 - int main(int argc, char *argv[]) {
93 - uint8_t data[64];
94 -@@ -35,15 +36,20 @@
95 - else
96 - printf("AF_INET: failed (%i).\n", r);
97 -
98 --/* if ((r = avahi_resolve_name(AF_INET6, argc >= 2 ? argv[1] : "cocaine.local", data)) == 0) */
99 --/* printf("AF_INET6: %s\n", inet_ntop(AF_INET6, data, t, sizeof(t))); */
100 --/* else */
101 --/* printf("AF_INET6: failed (%i).\n", r); */
102 --
103 - if ((r = avahi_resolve_address(AF_INET, data, t, sizeof(t))) == 0)
104 - printf("REVERSE: %s\n", t);
105 - else
106 - printf("REVERSE: failed (%i).\n", r);
107 -+
108 -+ if ((r = avahi_resolve_name(AF_INET6, argc >= 2 ? argv[1] : "cocaine.local", data)) == 0)
109 -+ printf("AF_INET6: %s, %u\n", inet_ntop(AF_INET6, data, t, sizeof(t)), ((ipv6_address_t*)data)->if_idx);
110 -+ else
111 -+ printf("AF_INET6: failed (%i).\n", r);
112 -+
113 -+ if ((r = avahi_resolve_address(AF_INET6, data, t, sizeof(t))) == 0)
114 -+ printf("REVERSE: %s\n", t);
115 -+ else
116 -+ printf("REVERSE: failed (%i).\n", r);
117 -
118 - return 0;
119 - }
120 -diff -u src/bsdnss.c src/bsdnss.c
121 ---- src/bsdnss.c 2007-02-09 00:42:23.000000000 +0800
122 -+++ src/bsdnss.c 2013-01-04 09:49:45.566389491 +0800
123 -@@ -258,6 +258,8 @@
124 - ai->ai_addrlen = sizeof(struct sockaddr_in6);
125 - memcpy(&((struct sockaddr_in6 *)psa)->sin6_addr, hap,
126 - ai->ai_addrlen);
127 -+ if (((struct sockaddr_in6 *)psa)->sin6_addr[0] == 0xfe && ((struct sockaddr_in6 *)psa)->sin6_addr[0] == 0x80)
128 -+ ((struct sockaddr_in6 *)psa)->sin6_scope_id = ((struct ipv6_address_t*) hap)->if_idx;
129 - break;
130 - default:
131 - ai->ai_addrlen = sizeof(struct sockaddr_storage);
132 -diff -u src/map-file src/map-file
133 ---- src/map-file 2007-01-02 02:36:21.000000000 +0800
134 -+++ src/map-file 2013-01-07 08:56:56.406478774 +0800
135 -@@ -18,6 +18,12 @@
136 - _nss_mdns_minimal_gethostbyname2_r;
137 - _nss_mdns4_minimal_gethostbyname2_r;
138 - _nss_mdns6_minimal_gethostbyname2_r;
139 -+_nss_mdns_gethostbyname4_r;
140 -+_nss_mdns4_gethostbyname4_r;
141 -+_nss_mdns6_gethostbyname4_r;
142 -+_nss_mdns_minimal_gethostbyname4_r;
143 -+_nss_mdns4_minimal_gethostbyname4_r;
144 -+_nss_mdns6_minimal_gethostbyname4_r;
145 - local:
146 - *;
147 - };
148 -diff -u src/nss.c src/nss.c
149 ---- src/nss.c 2013-01-07 15:14:23.000000000 +0800
150 -+++ src/nss.c 2013-01-07 16:52:38.399842517 +0800
151 -@@ -41,22 +41,27 @@
152 -
153 - #if defined(NSS_IPV4_ONLY) && ! defined(MDNS_MINIMAL)
154 - #define _nss_mdns_gethostbyname2_r _nss_mdns4_gethostbyname2_r
155 -+#define _nss_mdns_gethostbyname4_r _nss_mdns4_gethostbyname4_r
156 - #define _nss_mdns_gethostbyname_r _nss_mdns4_gethostbyname_r
157 - #define _nss_mdns_gethostbyaddr_r _nss_mdns4_gethostbyaddr_r
158 - #elif defined(NSS_IPV4_ONLY) && defined(MDNS_MINIMAL)
159 - #define _nss_mdns_gethostbyname2_r _nss_mdns4_minimal_gethostbyname2_r
160 -+#define _nss_mdns_gethostbyname4_r _nss_mdns4_minimal_gethostbyname4_r
161 - #define _nss_mdns_gethostbyname_r _nss_mdns4_minimal_gethostbyname_r
162 - #define _nss_mdns_gethostbyaddr_r _nss_mdns4_minimal_gethostbyaddr_r
163 - #elif defined(NSS_IPV6_ONLY) && ! defined(MDNS_MINIMAL)
164 - #define _nss_mdns_gethostbyname2_r _nss_mdns6_gethostbyname2_r
165 -+#define _nss_mdns_gethostbyname4_r _nss_mdns6_gethostbyname4_r
166 - #define _nss_mdns_gethostbyname_r _nss_mdns6_gethostbyname_r
167 - #define _nss_mdns_gethostbyaddr_r _nss_mdns6_gethostbyaddr_r
168 - #elif defined(NSS_IPV6_ONLY) && defined(MDNS_MINIMAL)
169 - #define _nss_mdns_gethostbyname2_r _nss_mdns6_minimal_gethostbyname2_r
170 -+#define _nss_mdns_gethostbyname4_r _nss_mdns6_minimal_gethostbyname4_r
171 - #define _nss_mdns_gethostbyname_r _nss_mdns6_minimal_gethostbyname_r
172 - #define _nss_mdns_gethostbyaddr_r _nss_mdns6_minimal_gethostbyaddr_r
173 - #elif defined(MDNS_MINIMAL)
174 - #define _nss_mdns_gethostbyname2_r _nss_mdns_minimal_gethostbyname2_r
175 -+#define _nss_mdns_gethostbyname4_r _nss_mdns_minimal_gethostbyname4_r
176 - #define _nss_mdns_gethostbyname_r _nss_mdns_minimal_gethostbyname_r
177 - #define _nss_mdns_gethostbyaddr_r _nss_mdns_minimal_gethostbyaddr_r
178 - #endif
179 -@@ -81,6 +86,12 @@
180 - char *name[MAX_ENTRIES];
181 - } data;
182 - };
183 -+struct user_gai_buf {
184 -+ struct gaih_addrtuple *list_base;
185 -+ int list_size;
186 -+ int list_idx;
187 -+ int wrote_name;
188 -+};
189 -
190 - #ifndef NSS_IPV6_ONLY
191 - static void ipv4_callback(const ipv4_address_t *ipv4, void *userdata) {
192 -@@ -93,6 +104,21 @@
193 - u->data.ipv4[u->count++] = *ipv4;
194 - u->data_len += sizeof(ipv4_address_t);
195 - }
196 -+static void ipv4_gai_callback(const ipv4_address_t *ipv4, void *userdata) {
197 -+ struct user_gai_buf *u = userdata;
198 -+ assert(ipv4 && userdata);
199 -+
200 -+ if (u->list_idx+1 >= u->list_size)
201 -+ return;
202 -+
203 -+ u->list_base[u->list_idx].name = 0;
204 -+ u->list_base[u->list_idx].family = AF_INET;
205 -+ u->list_base[u->list_idx].addr[0] = ipv4->address;
206 -+ u->list_base[u->list_idx].scopeid = 0;
207 -+ if (u->list_idx > 0) u->list_base[u->list_idx-1].next = &u->list_base[u->list_idx];
208 -+ u->list_base[u->list_idx].next = 0;
209 -+ u->list_idx += 1;
210 -+}
211 - #endif
212 -
213 - #ifndef NSS_IPV4_ONLY
214 -@@ -106,6 +132,21 @@
215 - u->data.ipv6[u->count++] = *ipv6;
216 - u->data_len += sizeof(ipv6_address_t);
217 - }
218 -+static void ipv6_gai_callback(const ipv6_address_t *ipv6, void *userdata) {
219 -+ struct user_gai_buf *u = userdata;
220 -+ assert(ipv6 && userdata);
221 -+
222 -+ if (u->list_idx+1 >= u->list_size)
223 -+ return;
224 -+
225 -+ u->list_base[u->list_idx].name = 0;
226 -+ u->list_base[u->list_idx].family = AF_INET6;
227 -+ memcpy(u->list_base[u->list_idx].addr, ipv6->address, sizeof(u->list_base[u->list_idx].addr));
228 -+ u->list_base[u->list_idx].scopeid = ipv6->if_idx;
229 -+ if (u->list_idx > 0) u->list_base[u->list_idx-1].next = &u->list_base[u->list_idx];
230 -+ u->list_base[u->list_idx].next = 0;
231 -+ u->list_idx += 1;
232 -+}
233 - #endif
234 -
235 - static void name_callback(const char*name, void *userdata) {
236 -@@ -538,6 +579,265 @@
237 -
238 - status = NSS_STATUS_SUCCESS;
239 -
240 -+finish:
241 -+#ifdef ENABLE_LEGACY
242 -+ if (fd >= 0)
243 -+ close(fd);
244 -+#endif
245 -+
246 -+ return status;
247 -+}
248 -+
249 -+enum nss_status _nss_mdns_gethostbyname4_r(
250 -+ const char *name,
251 -+ struct gaih_addrtuple **pat,
252 -+ char *buffer,
253 -+ size_t buflen,
254 -+ int *errnop,
255 -+ int *h_errnop,
256 -+ int32_t *ttlp) {
257 -+
258 -+ struct user_gai_buf u;
259 -+ enum nss_status status = NSS_STATUS_UNAVAIL;
260 -+ int i;
261 -+ size_t l, idx;
262 -+ void (*ipv4_func)(const ipv4_address_t *ipv4, void *userdata);
263 -+ void (*ipv6_func)(const ipv6_address_t *ipv6, void *userdata);
264 -+ int name_allowed;
265 -+ int af = AF_UNSPEC;
266 -+
267 -+#ifdef ENABLE_AVAHI
268 -+ int avahi_works = 1;
269 -+ void * data[32];
270 -+#endif
271 -+
272 -+#ifdef ENABLE_LEGACY
273 -+ int fd = -1;
274 -+#endif
275 -+
276 -+ if (pat) {
277 -+ af = (*pat)->family;
278 -+ }
279 -+
280 -+/* DEBUG_TRAP; */
281 -+
282 -+#ifdef NSS_IPV6_ONLY
283 -+ if (af == AF_UNSPEC)
284 -+ af = AF_INET6;
285 -+#endif
286 -+
287 -+#ifdef NSS_IPV4_ONLY
288 -+ if (af == AF_UNSPEC)
289 -+ af = AF_INET;
290 -+#endif
291 -+
292 -+#ifdef NSS_IPV4_ONLY
293 -+ if (af != AF_INET)
294 -+#elif NSS_IPV6_ONLY
295 -+ if (af != AF_INET6)
296 -+#else
297 -+ if (af != AF_INET && af != AF_INET6 && af != AF_UNSPEC)
298 -+#endif
299 -+ {
300 -+ *errnop = EINVAL;
301 -+ *h_errnop = NO_RECOVERY;
302 -+
303 -+ goto finish;
304 -+ }
305 -+
306 -+ if (buflen <
307 -+ sizeof(struct gaih_addrtuple)) {
308 -+
309 -+ *errnop = ERANGE;
310 -+ *h_errnop = NO_RECOVERY;
311 -+ status = NSS_STATUS_TRYAGAIN;
312 -+
313 -+ goto finish;
314 -+ }
315 -+
316 -+ u.list_base = (struct user_gai_buf*) buffer;
317 -+ u.list_size = buflen / sizeof( struct user_gai_buf );
318 -+ u.list_idx = 0;
319 -+ u.wrote_name = 0;
320 -+
321 -+#ifdef NSS_IPV6_ONLY
322 -+ ipv4_func = NULL;
323 -+#else
324 -+ ipv4_func = (af == AF_INET || af == AF_UNSPEC) ? ipv4_gai_callback : NULL;
325 -+#endif
326 -+
327 -+#ifdef NSS_IPV4_ONLY
328 -+ ipv6_func = NULL;
329 -+#else
330 -+ ipv6_func = (af == AF_INET6 || af == AF_UNSPEC) ? ipv6_gai_callback : NULL;
331 -+#endif
332 -+
333 -+ name_allowed = verify_name_allowed(name);
334 -+
335 -+#ifdef ENABLE_AVAHI
336 -+
337 -+ if (avahi_works && name_allowed) {
338 -+ int r;
339 -+
340 -+ if (af == AF_INET || af == AF_UNSPEC) {
341 -+ if ((r = avahi_resolve_name(AF_INET, name, data)) < 0)
342 -+ avahi_works = 0;
343 -+ else if (r == 0) {
344 -+ if (ipv4_func) {
345 -+ ipv4_func((ipv4_address_t*) data, &u);
346 -+ }
347 -+ }
348 -+ else
349 -+ status = NSS_STATUS_NOTFOUND;
350 -+ }
351 -+ if (af == AF_INET6 || af == AF_UNSPEC) {
352 -+ if ((r = avahi_resolve_name(AF_INET6, name, data)) < 0)
353 -+ avahi_works = 0;
354 -+ else if (r == 0) {
355 -+ if (ipv6_func)
356 -+ ipv6_func((ipv6_address_t*)data, &u);
357 -+ }
358 -+ else
359 -+ status = NSS_STATUS_NOTFOUND;
360 -+ }
361 -+ }
362 -+
363 -+#ifdef HONOUR_SEARCH_DOMAINS
364 -+ if (u.list_idx == 0 && avahi_works && !ends_with(name, ".")) {
365 -+ char **domains;
366 -+
367 -+ if ((domains = get_search_domains())) {
368 -+ char **p;
369 -+
370 -+ /* Try to concatenate host names */
371 -+ for (p = domains; *p; p++) {
372 -+ int fullnamesize;
373 -+ char *fullname;
374 -+
375 -+ fullnamesize = strlen(name) + strlen(*p) + 2;
376 -+
377 -+ if (!(fullname = malloc(fullnamesize)))
378 -+ break;
379 -+
380 -+ snprintf(fullname, fullnamesize, "%s.%s", name, *p);
381 -+
382 -+ if (verify_name_allowed(fullname)) {
383 -+ int r;
384 -+
385 -+ if (af == AF_INET || af == AF_UNSPEC) {
386 -+ r = avahi_resolve_name(AF_INET, fullname, data);
387 -+
388 -+ if (r < 0) {
389 -+ /* Lookup failed */
390 -+ avahi_works = 0;
391 -+ free(fullname);
392 -+ break;
393 -+ } else if (r == 0) {
394 -+ /* Lookup succeeded */
395 -+ if (ipv4_func)
396 -+ ipv4_func((ipv4_address_t*) data, &u);
397 -+ }
398 -+ }
399 -+ if (af == AF_INET6 || af == AF_UNSPEC) {
400 -+ r = avahi_resolve_name(AF_INET6, fullname, data);
401 -+
402 -+ if (r < 0) {
403 -+ /* Lookup failed */
404 -+ avahi_works = 0;
405 -+ free(fullname);
406 -+ break;
407 -+ } else if (r == 0) {
408 -+ /* Lookup succeeded */
409 -+ if (ipv6_func)
410 -+ ipv6_func((ipv6_address_t*)data, &u);
411 -+ }
412 -+ }
413 -+ free(fullname);
414 -+ if (u.list_idx > 0) break;
415 -+
416 -+ } else
417 -+ free(fullname);
418 -+ }
419 -+
420 -+ free_domains(domains);
421 -+ }
422 -+ }
423 -+#endif /* HONOUR_SEARCH_DOMAINS */
424 -+#endif /* ENABLE_AVAHI */
425 -+
426 -+#if defined(ENABLE_LEGACY) && defined(ENABLE_AVAHI)
427 -+ if (u.list_idx == 0 && !avahi_works)
428 -+#endif
429 -+
430 -+#if defined(ENABLE_LEGACY)
431 -+ {
432 -+ if ((fd = mdns_open_socket()) < 0) {
433 -+ *errnop = errno;
434 -+ *h_errnop = NO_RECOVERY;
435 -+ goto finish;
436 -+ }
437 -+
438 -+ if (name_allowed) {
439 -+ /* Ignore return value */
440 -+ mdns_query_name(fd, name, ipv4_func, ipv6_func, &u);
441 -+
442 -+ if (!u.list_idx)
443 -+ status = NSS_STATUS_NOTFOUND;
444 -+ }
445 -+
446 -+#ifdef HONOUR_SEARCH_DOMAINS
447 -+ if (u.list_idx == 0 && !ends_with(name, ".")) {
448 -+ char **domains;
449 -+
450 -+ /* Try the search domains if the user did not use a traling '.' */
451 -+
452 -+ if ((domains = get_search_domains())) {
453 -+ char **p;
454 -+
455 -+ for (p = domains; *p; p++) {
456 -+ int fullnamesize = 0;
457 -+ char *fullname = NULL;
458 -+
459 -+ fullnamesize = strlen(name) + strlen(*p) + 2;
460 -+ if (!(fullname = malloc(fullnamesize)))
461 -+ break;
462 -+
463 -+ snprintf(fullname, fullnamesize, "%s.%s", name, *p);
464 -+
465 -+ if (verify_name_allowed(fullname)) {
466 -+
467 -+ /* Ignore return value */
468 -+ mdns_query_name(fd, fullname, ipv4_func, ipv6_func, &u);
469 -+
470 -+ if (u.list_idx > 0) {
471 -+ /* We found something, so let's quit */
472 -+ free(fullname);
473 -+ break;
474 -+ } else
475 -+ status = NSS_STATUS_NOTFOUND;
476 -+
477 -+ }
478 -+
479 -+ free(fullname);
480 -+ }
481 -+
482 -+ free_domains(domains);
483 -+ }
484 -+ }
485 -+#endif /* HONOUR_SEARCH_DOMAINS */
486 -+ }
487 -+#endif /* ENABLE_LEGACY */
488 -+
489 -+ if (u.list_idx == 0) {
490 -+ *errnop = ETIMEDOUT;
491 -+ *h_errnop = HOST_NOT_FOUND;
492 -+ goto finish;
493 -+ }
494 -+
495 -+ *pat = (struct gaih_addrtuple*) buffer;
496 -+
497 -+ status = NSS_STATUS_SUCCESS;
498 -+
499 - finish:
500 - #ifdef ENABLE_LEGACY
501 - if (fd >= 0)
502 -diff -u src/query.c src/query.c
503 ---- src/query.c 2007-02-09 00:42:23.000000000 +0800
504 -+++ src/query.c 2013-01-04 09:57:03.778972196 +0800
505 -@@ -263,7 +263,7 @@
506 - return n_sent;
507 - }
508 -
509 --static int recv_dns_packet(int fd, struct dns_packet **ret_packet, uint8_t *ret_ttl, struct timeval *end) {
510 -+static int recv_dns_packet(int fd, struct dns_packet **ret_packet, uint8_t *ret_ttl, uint32_t *if_idx, struct timeval *end) {
511 - struct dns_packet *p= NULL;
512 - struct msghdr msg;
513 - struct iovec io;
514 -@@ -286,6 +286,10 @@
515 - msg.msg_controllen = sizeof(aux);
516 - msg.msg_flags = 0;
517 -
518 -+#ifndef IP_PKTINFO
519 -+ *if_idx = 0;
520 -+#endif
521 -+
522 - for (;;) {
523 - ssize_t l;
524 - int r;
525 -@@ -304,6 +308,14 @@
526 - *ret_ttl = (uint8_t) (*(uint32_t*) CMSG_DATA(cmsg));
527 - break;
528 - }
529 -+#ifdef IP_PKTINFO
530 -+ if (cmsg->cmsg_level == IPPROTO_IP && cmsg->cmsg_type == IP_PKTINFO)
531 -+ {
532 -+ *if_idx = ((struct in_pktinfo*) CMSG_DATA(cmsg))->ipi_ifindex;
533 -+ break;
534 -+ }
535 -+#endif
536 -+
537 - }
538 -
539 - if (!cmsg)
540 -@@ -427,9 +439,10 @@
541 -
542 - while (!done) {
543 - uint8_t ttl;
544 -+ uint32_t if_idx;
545 - int r;
546 -
547 -- if ((r = recv_dns_packet(fd, &p, &ttl, &end)) < 0)
548 -+ if ((r = recv_dns_packet(fd, &p, &ttl, &if_idx, &end)) < 0)
549 - return -1;
550 - else if (r > 0) /* timeout */
551 - return 1;
552 -@@ -488,6 +501,7 @@
553 - rdlength == sizeof(ipv6_address_t)) {
554 -
555 - ipv6_address_t ipv6;
556 -+ ipv6.if_idx = if_idx;
557 -
558 - if (dns_packet_consume_bytes(p, &ipv6, sizeof(ipv6_address_t)) < 0)
559 - break;
560 -@@ -584,9 +598,10 @@
561 -
562 - while (!done) {
563 - uint8_t ttl;
564 -+ uint32_t if_idx;
565 - int r;
566 -
567 -- if ((r = recv_dns_packet(fd, &p, &ttl, &end)) < 0)
568 -+ if ((r = recv_dns_packet(fd, &p, &ttl, &if_idx, &end)) < 0)
569 - return -1;
570 - else if (r > 0) /* timeout */
571 - return 1;
572 -diff -u src/query.h src/query.h
573 ---- src/query.h 2005-06-21 22:43:23.000000000 +0800
574 -+++ src/query.h 2013-01-03 14:09:22.138018327 +0800
575 -@@ -30,6 +30,7 @@
576 -
577 - typedef struct {
578 - uint8_t address[16];
579 -+ uint32_t if_idx;
580 - } ipv6_address_t;
581 -
582
583 diff --git a/sys-auth/nss-mdns/metadata.xml b/sys-auth/nss-mdns/metadata.xml
584 index a409ede683e..0c9ca91ffcf 100644
585 --- a/sys-auth/nss-mdns/metadata.xml
586 +++ b/sys-auth/nss-mdns/metadata.xml
587 @@ -8,10 +8,6 @@
588 <email>mgorny@g.o</email>
589 <name>Michał Górny</name>
590 </maintainer>
591 - <use>
592 - <flag name="search-domains">Honour search domains from
593 - /etc/resolv.conf (see bug #201948 for possible side effects)</flag>
594 - </use>
595 <longdescription lang="en">
596 Name service switch module for multicast dns.
597 </longdescription>
598
599 diff --git a/sys-auth/nss-mdns/nss-mdns-0.10-r3.ebuild b/sys-auth/nss-mdns/nss-mdns-0.10-r3.ebuild
600 deleted file mode 100644
601 index 4f91439d370..00000000000
602 --- a/sys-auth/nss-mdns/nss-mdns-0.10-r3.ebuild
603 +++ /dev/null
604 @@ -1,57 +0,0 @@
605 -# Copyright 1999-2016 Gentoo Foundation
606 -# Distributed under the terms of the GNU General Public License v2
607 -
608 -EAPI="5"
609 -inherit autotools eutils multilib-minimal
610 -
611 -DESCRIPTION="Name Service Switch module for Multicast DNS"
612 -HOMEPAGE="http://0pointer.de/lennart/projects/nss-mdns/"
613 -SRC_URI="http://0pointer.de/lennart/projects/nss-mdns/${P}.tar.gz"
614 -
615 -LICENSE="GPL-2"
616 -SLOT="0"
617 -KEYWORDS="amd64 ~arm ~hppa ~mips ppc x86"
618 -IUSE="search-domains"
619 -
620 -RDEPEND=">=net-dns/avahi-0.6.31-r2[${MULTILIB_USEDEP}]"
621 -DEPEND="${RDEPEND}"
622 -
623 -src_prepare() {
624 - epatch "${FILESDIR}"/${PN}-0.10-avahi-socket.patch \
625 - "${FILESDIR}"/${PN}-0.10-ipv6.patch
626 - epatch_user
627 - eautoreconf
628 -}
629 -
630 -multilib_src_configure() {
631 - ECONF_SOURCE=${S} \
632 - econf \
633 - $(use_enable search-domains) \
634 - --enable-avahi
635 -}
636 -
637 -multilib_src_install_all() {
638 - dodoc README
639 -
640 - insinto /etc
641 - doins "${FILESDIR}"/mdns.allow
642 -}
643 -
644 -pkg_postinst() {
645 - ewarn
646 - ewarn "You must modify your name service switch look up file to enable"
647 - ewarn "multicast DNS lookups. If you wish to resolve only IPv6 addresses"
648 - ewarn "use mdns6. For IPv4 addresses only, use mdns4. To resolve both"
649 - ewarn "use mdns. Keep in mind that mdns will be slower if there are no"
650 - ewarn "IPv6 addresses published via mDNS on the network. There are also"
651 - ewarn "minimal (mdns?_minimal) libraries which only lookup .local hosts"
652 - ewarn "and 169.254.x.x addresses."
653 - ewarn
654 - ewarn "Add the appropriate mdns into the hosts line in /etc/nsswitch.conf"
655 - ewarn "An example line looks like:"
656 - ewarn "hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4"
657 - ewarn
658 - ewarn "If you want to perform mDNS lookups for domains other than the ones"
659 - ewarn "ending in .local, add them to /etc/mdns.allow"
660 - ewarn
661 -}
662
663 diff --git a/sys-auth/nss-mdns/nss-mdns-0.11.ebuild b/sys-auth/nss-mdns/nss-mdns-0.11.ebuild
664 deleted file mode 100644
665 index d93a77b414f..00000000000
666 --- a/sys-auth/nss-mdns/nss-mdns-0.11.ebuild
667 +++ /dev/null
668 @@ -1,54 +0,0 @@
669 -# Copyright 1999-2018 Gentoo Foundation
670 -# Distributed under the terms of the GNU General Public License v2
671 -
672 -EAPI=6
673 -inherit multilib-minimal
674 -
675 -DESCRIPTION="Name Service Switch module for Multicast DNS"
676 -HOMEPAGE="https://github.com/lathiat/nss-mdns"
677 -SRC_URI="https://github.com/lathiat/nss-mdns/releases/download/v${PV}/${P}.tar.gz"
678 -
679 -LICENSE="GPL-2"
680 -SLOT="0"
681 -KEYWORDS="~amd64 ~arm ~hppa ~mips ~ppc ~x86"
682 -IUSE=""
683 -
684 -RDEPEND=">=net-dns/avahi-0.6.31-r2[${MULTILIB_USEDEP}]"
685 -DEPEND="${RDEPEND}"
686 -
687 -multilib_src_configure() {
688 - local myconf=(
689 - # $(localstatedir)/run/... is used to locate avahi-daemon socket
690 - --localstatedir=/var
691 - )
692 -
693 - ECONF_SOURCE=${S} \
694 - econf "${myconf[@]}"
695 -}
696 -
697 -# the check target only compiles manual-use test programs
698 -src_test() { :; }
699 -
700 -multilib_src_install_all() {
701 - dodoc *.md
702 -
703 - insinto /etc
704 - doins "${FILESDIR}"/mdns.allow
705 -}
706 -
707 -pkg_postinst() {
708 - ewarn "You have to modify your name service switch look up file to enable"
709 - ewarn "multicast DNS lookups. If you wish to resolve only IPv6 addresses"
710 - ewarn "use mdns6. For IPv4 addresses only, use mdns4. To resolve both"
711 - ewarn "use mdns. Keep in mind that mdns will be slower if there are no"
712 - ewarn "IPv6 addresses published via mDNS on the network. There are also"
713 - ewarn "minimal (mdns?_minimal) libraries which only lookup .local hosts"
714 - ewarn "and 169.254.x.x addresses."
715 - ewarn
716 - ewarn "Add the appropriate mdns into the hosts line in /etc/nsswitch.conf."
717 - ewarn "An example line looks like:"
718 - ewarn "hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4"
719 - ewarn
720 - ewarn "If you want to perform mDNS lookups for domains other than the ones"
721 - ewarn "ending in .local, add them to /etc/mdns.allow."
722 -}