23 #include "service_browse_handler.h" 25 #include <logging/logger.h> 46 __webview_service = webview_service;
69 __logger->log_warn(
"WebviewServiceBrowseHandler",
"Browsing for %s.%s in domain %s failed",
78 const char *host_name,
79 const struct sockaddr *addr,
80 const socklen_t addr_size,
82 std::list<std::string> &txt,
85 if (__service_list.find(name) != __service_list.end()) {
86 delete __service_list[name];
87 __service_list.erase(name);
90 for (std::list<std::string>::iterator i = txt.begin(); i != txt.end(); ++i) {
91 std::string::size_type eqind = i->find(
"=");
92 if (eqind != std::string::npos) {
93 std::string key = i->substr(0, eqind);
94 std::string val = i->substr(eqind + 1);
95 if (key ==
"fawkesver") {
97 addr, addr_size, txt);
99 if (! (*s == *__webview_service)) {
100 __logger->log_debug(
"WebviewServiceBrowseHandler",
"Service %s.%s on %s:%u added",
101 name, type, host_name, port);
102 __service_list[name] = s;
118 if (__service_list.find(name) != __service_list.end()) {
119 delete __service_list[name];
120 __service_list.erase(name);
122 __logger->log_debug(
"WebviewServiceBrowseHandler",
"Service %s.%s has been removed",
133 return __service_list;
Fawkes library namespace.
virtual void service_removed(const char *name, const char *type, const char *domain)
A service has been removed from the network.
virtual void service_added(const char *name, const char *type, const char *domain, const char *host_name, const struct sockaddr *addr, const socklen_t addr_size, uint16_t port, std::list< std::string > &txt, int flags)
A service has been announced on the network.
virtual void cache_exhausted()
Cache exhausted.
Representation of a service announced or found via service discovery (i.e.
WebviewServiceBrowseHandler(fawkes::Logger *logger, fawkes::NetworkService *webview_service)
Constructor.
ServiceList & service_list()
Get the service list.
virtual void all_for_now()
All results have been retrieved.
std::map< std::string, fawkes::NetworkService * > ServiceList
A map of services.
virtual void browse_failed(const char *name, const char *type, const char *domain)
Failed to browse for a given service.