GNU bug report logs -
#48561
"Daemon not running" exception when avahi-daemon is not running
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Hi Mathieu,
Mathieu Othacehe schreef op vr 21-05-2021 om 15:23 [+0200]:
> + (catch 'avahi-error
> + (lambda ()
> + (avahi-browse-service-thread service-proc
> + #:types %services))
> + (lambda (key err function . _)
> + (cond
> + ((eq? err error/no-daemon)
> + (warning (G_ "Avahi daemon is not running, \
> +cannot auto-discover substitutes servers.~%"))))
> + (exit 1)))))))
Shouldn't this code print an an error message when err is something
other than error/no-daemon? You can use error->string. Two examples
from (guile-avahi)Error handling:
2.4 Error Handling
==================
Avahi errors are implemented as Scheme exceptions (*note exceptions in
Guile: (guile)Exceptions.). Each time a Avahi function returns an
error, an exception with key 'avahi-error' is raised. The additional
arguments that are thrown include an error code and the name of the
Avahi procedure that raised the exception. The error code is pretty
much like an enumerate value: it is one of the 'error/' variables
exported by the '(avahi)' module (*note Enumerates and Constants::).
Exceptions can be turned into error messages using the 'error->string'
procedure.
The following examples illustrates how Avahi exceptions can be
handled:
(let ((poll (make-simple-poll)))
;;
;; ...
;;
(catch 'avahi-error
(lambda ()
(run-simple-poll (simple-poll poll)))
(lambda (key err function . currently-unused)
(format (current-error-port)
"an Avahi error was raised by `~a': ~a~%"
function (error->string err)))))
Again, error values can be compared using 'eq?':
;; `avahi-error' handler.
(lambda (key err function . currently-unused)
(if (eq? err error/no-daemon)
(format (current-error-port)
"~a: the Avahi daemon is not running~%"
function)))
Otherwise LGTM, but I haven't tested.
Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 4 years and 56 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.