Thanks.
[ --enable-bonjour Bonjour services discovery (default enabled)])
if test "${enable_bonjour}" != "no"
then
- PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3 avahi-client < 0.6,
- [AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
+ PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
+ [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
+ [AC_DEFINE(HAVE_AVAHI_06, [], [Define if you have avahi-client 0.6 or greater])],)
+ AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
VLC_ADD_LDFLAGS([bonjour access_output_http],[$BONJOUR_LIBS])
VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
VLC_ADD_PLUGINS([bonjour]) ],
#include <vlc/sout.h>
#include <avahi-client/client.h>
+#ifdef HAVE_AVAHI_06
+# include <avahi-client/publish.h>
+# include <avahi-client/lookup.h>
+#endif
#include <avahi-common/alternative.h>
#include <avahi-common/simple-watch.h>
#include <avahi-common/malloc.h>
}
error = avahi_entry_group_add_service( p_sys->group, AVAHI_IF_UNSPEC,
+#ifdef HAVE_AVAHI_06
+ AVAHI_PROTO_UNSPEC, 0, p_sys->psz_name,
+#else
AVAHI_PROTO_UNSPEC, p_sys->psz_name,
+#endif
p_sys->psz_stype, NULL, NULL,
p_sys->i_port,
p_sys->psz_txt, NULL );
if( p_sys->group != NULL )
avahi_entry_group_reset( p_sys->group );
}
+#ifdef HAVE_AVAHI_06
+ else if( state == AVAHI_CLIENT_FAILURE &&
+ (avahi_client_errno(c) == AVAHI_ERR_DISCONNECTED) )
+#else
else if( state == AVAHI_CLIENT_DISCONNECTED )
+#endif
{
msg_Err( p_sys->p_log, "avahi client disconnected" );
avahi_simple_poll_quit( p_sys->simple_poll );
}
p_sys->client = avahi_client_new( avahi_simple_poll_get(p_sys->simple_poll),
+#ifdef HAVE_AVAHI_06
+ 0,
+#endif
client_callback, p_sys, &err );
if( p_sys->client == NULL )
{
#include <vlc/intf.h>
#include <avahi-client/client.h>
+#ifdef HAVE_AVAHI_06
+# include <avahi-client/publish.h>
+# include <avahi-client/lookup.h>
+#endif
#include <avahi-common/simple-watch.h>
#include <avahi-common/malloc.h>
#include <avahi-common/error.h>
services_discovery_t *p_sd = ( services_discovery_t* )userdata;
services_discovery_sys_t *p_sys = p_sd->p_sys;
+#ifdef HAVE_AVAHI_06
+ if( state == AVAHI_CLIENT_FAILURE &&
+ (avahi_client_errno(c) == AVAHI_ERR_DISCONNECTED) )
+#else
if( state == AVAHI_CLIENT_DISCONNECTED )
+#endif
{
msg_Err( p_sd, "avahi client disconnected" );
avahi_simple_poll_quit( p_sys->simple_poll );
const AvahiAddress *address,
uint16_t port,
AvahiStringList *txt,
+#ifdef HAVE_AVAHI_06
+ AvahiLookupResultFlags flags,
+#endif
void* userdata )
{
services_discovery_t *p_sd = ( services_discovery_t* )userdata;
services_discovery_sys_t *p_sys = p_sd->p_sys;
+#ifdef HAVE_AVAHI_06
+ if( event == AVAHI_RESOLVER_FAILURE )
+#else
if( event == AVAHI_RESOLVER_TIMEOUT )
+#endif
{
msg_Err( p_sd,
"failed to resolve service '%s' of type '%s' in domain '%s'",
const char *name,
const char *type,
const char *domain,
+#ifdef HAVE_AVAHI_06
+ AvahiLookupResultFlags flags,
+#endif
void* userdata )
{
services_discovery_t *p_sd = ( services_discovery_t* )userdata;
{
if( avahi_service_resolver_new( p_sys->client, interface, protocol,
name, type, domain, AVAHI_PROTO_UNSPEC,
+#ifdef HAVE_AVAHI_06
+ 0,
+#endif
resolve_callback, userdata ) == NULL )
{
msg_Err( p_sd, "failed to resolve service '%s': %s", name,
}
p_sys->client = avahi_client_new( avahi_simple_poll_get(p_sys->simple_poll),
+#ifdef HAVE_AVAHI_06
+ 0,
+#endif
client_callback, p_sd, &err );
if( p_sys->client == NULL )
{
p_sys->sb = avahi_service_browser_new( p_sys->client, AVAHI_IF_UNSPEC,
AVAHI_PROTO_UNSPEC,
"_vlc-http._tcp", NULL,
+#ifdef HAVE_AVAHI_06
+ 0,
+#endif
browse_callback, p_sd );
if( p_sys->sb == NULL )
{