Commit Graph

21 Commits

Author SHA1 Message Date
Max Kellermann
00cf036d58 lib/avahi/Client: relax assertion after COLLISION/REGISTERING
Turns out that `AVAHI_CLIENT_S_COLLISION` can occur after
`AVAHI_CLIENT_S_RUNNING`, and `connected==true`.  Relaxing this fixes
a bogus assertion failure.
2024-03-11 15:32:24 +01:00
Max Kellermann
aef2c5dc14 lib/avahi/Service: add field visible
Now individual services can be hidden or shown at any time.
2024-01-18 18:50:06 +01:00
Max Kellermann
8d02986b0e lib/avahi/Publisher: add missing defer_register_services.Cancel() calls 2024-01-18 18:50:01 +01:00
Max Kellermann
461da92064 lib/avahi/Publisher: make the service list dynamic
This allows editing the list of services at any time instead of
passing a constant list at construction time.  To do this, Service
instances are now caller-owned and managed in an IntrusiveList instead
of Publisher-owned in a std::forward_list.
2024-01-18 18:48:27 +01:00
Max Kellermann
5023432802 lib/avahi/Publisher: use DeferEvent for RegisterServices()
Prepares making the service list dyammic; the DeferEvent not only
moves the operation out of the current stack frame, but also allows
combining several AddService() calls.
2024-01-18 18:24:08 +01:00
Max Kellermann
4a14248004 lib/avahi/Publisher: move code to RegisterServices(AvahiEntryGroup) 2024-01-18 18:24:04 +01:00
Max Kellermann
1b241fc97a lib/avahi/Publisher: allow RegisterServices() to throw 2024-01-18 18:24:01 +01:00
Max Kellermann
09d1ab7abe lib/avahi/Publisher: move try/catch in GroupCallback() to the top level 2024-01-18 18:23:57 +01:00
Max Kellermann
d28cb93835 lib/avahi/Client: add method IsConnected()
Publish only if the client is really connected.
2024-01-18 18:23:52 +01:00
Max Kellermann
6b43338e06 lib/avahi/Client: add assert() 2024-01-18 18:23:48 +01:00
Max Kellermann
9a7a49350c lib/avahi/Client: free the AvahiClient on AVAHI_CLIENT_FAILURE
Previously the AvahiClient was only freed when AVAHI_ERR_DISCONNECTED
was detected, but all other error conditions would lead to a memory
leak.
2024-01-18 18:23:45 +01:00
Max Kellermann
f85629afa6 lib/avahi/Client: is if with initializer 2024-01-18 18:23:42 +01:00
Max Kellermann
a39473a912 lib/avahi/Service: add API docs 2024-01-18 18:23:37 +01:00
Max Kellermann
05d0e9b8bb lib/avahi/Publisher: reuse the AvahiEntryGroup
The libavahi-client documentation recommends reusing AvahiEntryGroup
instances instead of freeing them and creating new ones.
2024-01-18 18:23:30 +01:00
Max Kellermann
b8210bbc45 lib/avahi/Poll: fix copyright header 2023-09-16 22:39:03 +02:00
Max Kellermann
00d5e6e9c7 lib/avahi/Publisher: use libfmt 2023-03-06 20:10:06 +01:00
Max Kellermann
148aca23be use SPDX IDs, replacing the long copyright headers 2023-03-06 14:59:48 +01:00
Max Kellermann
cc0def15c4 Copyright year 2022 2022-07-14 17:59:35 +02:00
Max Kellermann
bc3415ce8b Copyright year 2022 2022-06-30 09:41:53 +02:00
Max Kellermann
3f1acd3642 lib/avahi/Publisher: fix comment typo 2022-06-30 09:38:44 +02:00
Max Kellermann
4564d251a8 zeroconf/avahi: move generic sources to lib/avahi 2022-06-30 09:37:30 +02:00