avahi: Ignore local services.

* guix/avahi.scm (avahi-browse-service-thread): Add "ignore-local?" argument
and honor it.
This commit is contained in:
Mathieu Othacehe 2020-12-10 09:46:50 +01:00
parent 71dd1be597
commit 0faef87178
No known key found for this signature in database
GPG key ID: 8354763531769CA6

View file

@ -92,6 +92,7 @@ (define (interface->ip-address interface)
(define* (avahi-browse-service-thread proc
#:key
types
(ignore-local? #t)
(family AF_INET)
(stop-loop? (const #f))
(timeout 100))
@ -116,7 +117,9 @@ (define (service-resolver-callback resolver interface protocol event
;; Add the service if the host is unknown. This means that if a
;; service is available on multiple network interfaces for a single
;; host, only the first interface found will be considered.
(unless (hash-ref %known-hosts service-name)
(unless (or (hash-ref %known-hosts service-name)
(and ignore-local?
(member lookup-result-flag/local flags)))
(let* ((address (inet-ntop family address))
(local-address (interface->ip-address interface))
(service* (avahi-service