Skip to content
Snippets Groups Projects
Commit 3daa12e4 authored by zorglub's avatar zorglub
Browse files

Avahi 0.6 patch by Diego 'Flameeyes' Pettenò flameeyes at gentoo d0t org

Thanks.
parent 5c59e3cf
No related branches found
No related tags found
No related merge requests found
......@@ -4542,8 +4542,10 @@ AC_ARG_ENABLE(bonjour,
[ --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]) ],
......
......@@ -33,6 +33,10 @@
#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>
......@@ -114,7 +118,11 @@ static int create_service( bonjour_t *p_sys )
}
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 );
......@@ -155,7 +163,12 @@ static void client_callback( AvahiClient *c,
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 );
......@@ -221,6 +234,9 @@ void *bonjour_start_service( vlc_object_t *p_log, char *psz_stype,
}
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 )
{
......
......@@ -30,6 +30,10 @@
#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>
......@@ -82,7 +86,12 @@ static void client_callback( AvahiClient *c, AvahiClientState state,
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 );
......@@ -104,12 +113,19 @@ static void resolve_callback(
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'",
......@@ -186,6 +202,9 @@ static void browse_callback(
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;
......@@ -195,6 +214,9 @@ static void browse_callback(
{
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,
......@@ -246,6 +268,9 @@ static int Open( vlc_object_t *p_this )
}
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 )
{
......@@ -257,6 +282,9 @@ static int Open( vlc_object_t *p_this )
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 )
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment