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")))))
|
(name "mdns")))))
|
||||||
@end example
|
@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
|
Note that, in this case, in addition to setting the
|
||||||
@code{name-service-switch} of the @code{operating-system} declaration,
|
@code{name-service-switch} of the @code{operating-system} declaration,
|
||||||
@code{nscd-service} must be told where to find the @code{nss-mdns}
|
@code{nscd-service} must be told where to find the @code{nss-mdns}
|
||||||
|
@ -5207,6 +5211,21 @@ configuration file:
|
||||||
@noindent
|
@noindent
|
||||||
@dots{} and then refer to @var{%my-base-services} instead of
|
@dots{} and then refer to @var{%my-base-services} instead of
|
||||||
@var{%base-services} in the @code{operating-system} declaration.
|
@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
|
The reference for name service switch configuration is given below. It
|
||||||
is a direct mapping of the C library's configuration file format, so
|
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
|
static checks: you'll know about syntax errors and typos as soon as you
|
||||||
run @command{guix system}.
|
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
|
@deftp {Data Type} name-service-switch
|
||||||
|
|
||||||
This is the data type representation the configuration of libc's name
|
This is the data type representation the configuration of libc's name
|
||||||
|
|
|
@ -29,6 +29,8 @@ (define-module (gnu system nss)
|
||||||
lookup-specification
|
lookup-specification
|
||||||
|
|
||||||
%default-nss
|
%default-nss
|
||||||
|
%mdns-host-lookup-nss
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%compat
|
%compat
|
||||||
%dns
|
%dns
|
||||||
|
@ -148,6 +150,27 @@ (define %default-nss
|
||||||
;; Default NSS configuration.
|
;; Default NSS configuration.
|
||||||
(name-service-switch))
|
(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.
|
;;; Serialization.
|
||||||
|
|
Loading…
Reference in a new issue