As long as the avahi-daemon is running (ready or not really ready, depending on system load and timing), CUPS is set in avahi mode, so it never start without the avahi support if avahi is launched before.
Here is the precise way of working (based on the dnssdRegisterPrinter function in scheduler/dirsvc.c)
- On start (or when a new printer is added) CUPS use the client avahi library to register the printer.
- If the avahi daemon is running, ready or not, the client library returns a kDNSServiceErr_NoError, that leads to the registration of cupsdUpdateDNSSDBrowse as a callback function triggered by I/O on the mdns socket.
- In the other case, there is no registration of cupsdUpdateDNSSDBrowse, and there won't as it only happens on start or when a new printer is added. So Cups works in this case without avahi.
As long as the avahi-daemon is running (ready or not really ready, depending on system load and timing), CUPS is set in avahi mode, so it never start without the avahi support if avahi is launched before.
Here is the precise way of working (based on the dnssdRegisterPr inter function in scheduler/dirsvc.c) NoError, that leads to the registration of cupsdUpdateDNSS DBrowse as a callback function triggered by I/O on the mdns socket. DBrowse, and there won't as it only happens on start or when a new printer is added. So Cups works in this case without avahi.
- On start (or when a new printer is added) CUPS use the client avahi library to register the printer.
- If the avahi daemon is running, ready or not, the client library returns a kDNSServiceErr_
- In the other case, there is no registration of cupsdUpdateDNSS