mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
nss: Add '%mdns-host-lookup-nss'.
* gnu/system/nss.scm (%mdns-host-lookup-nss): New variable. * doc/guix.texi (Name Service Switch): Document it.
This commit is contained in:
parent
6b888efff6
commit
15137a29c2
2 changed files with 42 additions and 5 deletions
|
@ -5180,6 +5180,10 @@ for host names ending in @code{.local}:
|
|||
(name "mdns")))))
|
||||
@end example
|
||||
|
||||
Don't worry: the @code{%mdns-host-lookup-nss} variable (see below)
|
||||
contains this configuration, so you won't have to type it if all you
|
||||
want is to have @code{.local} host lookup working.
|
||||
|
||||
Note that, in this case, in addition to setting the
|
||||
@code{name-service-switch} of the @code{operating-system} declaration,
|
||||
@code{nscd-service} must be told where to find the @code{nss-mdns}
|
||||
|
@ -5207,6 +5211,21 @@ configuration file:
|
|||
@noindent
|
||||
@dots{} and then refer to @var{%my-base-services} instead of
|
||||
@var{%base-services} in the @code{operating-system} declaration.
|
||||
Lastly, this relies on the availability of the Avahi service
|
||||
(@pxref{Desktop Services, @code{avahi-service}}).
|
||||
|
||||
For convenience, the following variables provide typical NSS
|
||||
configurations.
|
||||
|
||||
@defvr {Scheme Variable} %default-nss
|
||||
This is the default name service switch configuration, a
|
||||
@code{name-service-switch} object.
|
||||
@end defvr
|
||||
|
||||
@defvr {Scheme Variable} %mdns-host-lookup-nss
|
||||
This is the name service switch configuration with support for host name
|
||||
lookup over multicast DNS (mDNS) for host names ending in @code{.local}.
|
||||
@end defvr
|
||||
|
||||
The reference for name service switch configuration is given below. It
|
||||
is a direct mapping of the C library's configuration file format, so
|
||||
|
@ -5217,11 +5236,6 @@ not only of adding this warm parenthetic feel that we like, but also
|
|||
static checks: you'll know about syntax errors and typos as soon as you
|
||||
run @command{guix system}.
|
||||
|
||||
@defvr {Scheme Variable} %default-nss
|
||||
This is the default name service switch configuration, a
|
||||
@code{name-service-switch} object.
|
||||
@end defvr
|
||||
|
||||
@deftp {Data Type} name-service-switch
|
||||
|
||||
This is the data type representation the configuration of libc's name
|
||||
|
|
|
@ -29,6 +29,8 @@ (define-module (gnu system nss)
|
|||
lookup-specification
|
||||
|
||||
%default-nss
|
||||
%mdns-host-lookup-nss
|
||||
|
||||
%files
|
||||
%compat
|
||||
%dns
|
||||
|
@ -148,6 +150,27 @@ (define %default-nss
|
|||
;; Default NSS configuration.
|
||||
(name-service-switch))
|
||||
|
||||
(define %mdns-host-lookup-nss
|
||||
(name-service-switch
|
||||
(hosts (list %files ;first, check /etc/hosts
|
||||
|
||||
;; If the above did not succeed, try with 'mdns_minimal'.
|
||||
(name-service
|
||||
(name "mdns_minimal")
|
||||
|
||||
;; 'mdns_minimal' is authoritative for '.local'. When it
|
||||
;; returns "not found", no need to try the next methods.
|
||||
(reaction (lookup-specification
|
||||
(not-found => return))))
|
||||
|
||||
;; Then fall back to DNS.
|
||||
(name-service
|
||||
(name "dns"))
|
||||
|
||||
;; Finally, try with the "full" 'mdns'.
|
||||
(name-service
|
||||
(name "mdns"))))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Serialization.
|
||||
|
|
Loading…
Reference in a new issue