]> git.meshlink.io Git - catta/blobdiff - avahi-compat-libdns_sd/warn.c
* nicer display of txt records
[catta] / avahi-compat-libdns_sd / warn.c
index 72c101f337dd9b9ecd13a414e768af43caf8812c..0f7f6dc647eeb6c32db710385c10f7e66a96f7b6 100644 (file)
 
 #ifndef COMPAT_LAYER
 #define COMPAT_LAYER "Apple Bonjour"
-#endif 
+#endif
+
+#ifndef CGI_SUBSYSTEM
+#define CGI_SUBSYSTEM "libdns_sd"
+#endif
 
 static pthread_mutex_t linkage_mutex = PTHREAD_MUTEX_INITIALIZER;
 static int linkage_warning = 0;
 
+#ifdef __linux__
+
 const char *avahi_exe_name(void) {
     static char exe_name[1024] = "";
     static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
@@ -75,6 +81,18 @@ const char *avahi_exe_name(void) {
     return exe_name;
 }
 
+#else
+
+#ifdef __GNUC__
+#warning "avahi_exe_name() needs to be implemented for your operating system"
+#endif
+
+const char *avahi_exe_name(void) {
+    return "(unknown)";
+}
+
+#endif
+
 void avahi_warn(const char *fmt, ...) {
     char msg[512]  = "*** WARNING *** ";
     va_list ap;
@@ -102,16 +120,17 @@ void avahi_warn_linkage(void) {
     linkage_warning = 1;
     pthread_mutex_unlock(&linkage_mutex);
 
-    if (!w && !getenv("AVAHI_COMPAT_NOWARN"))
-        avahi_warn("The programme '%s' uses the "COMPAT_LAYER" compatiblity layer of Avahi. "
-                   "Please fix your application to use the native API of Avahi!",
-                   avahi_exe_name());
+    if (!w && !getenv("AVAHI_COMPAT_NOWARN")) {
+        avahi_warn("The programme '%s' uses the "COMPAT_LAYER" compatiblity layer of Avahi.", avahi_exe_name());
+        avahi_warn("Please fix your application to use the native API of Avahi!");
+        avahi_warn("For more information see <http://0pointer.de/avahi-compat?s="CGI_SUBSYSTEM"&e=%s>", avahi_exe_name());
+    }
 }
 
 void avahi_warn_unsupported(const char *function) {
-    avahi_warn("The programme '%s' called '%s()' which is not supported (or only supported partially) in the "COMPAT_LAYER" compatiblity layer of Avahi. "
-               "Please fix your application to use the native API of Avahi!",
-               avahi_exe_name(), function);
+    avahi_warn("The programme '%s' called '%s()' which is not supported (or only supported partially) in the "COMPAT_LAYER" compatiblity layer of Avahi.", avahi_exe_name(), function);
+    avahi_warn("Please fix your application to use the native API of Avahi!");
+    avahi_warn("For more information see <http://0pointer.de/avahi-compat?s="CGI_SUBSYSTEM"&e=%s&f=%s>", avahi_exe_name(), function);
 }