Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Steve Lhomme
VLC
Commits
3daa12e4
Commit
3daa12e4
authored
Dec 04, 2005
by
zorglub
Browse files
Avahi 0.6 patch by Diego 'Flameeyes' Pettenò flameeyes at gentoo d0t org
Thanks.
parent
5c59e3cf
Changes
3
Hide whitespace changes
Inline
Side-by-side
configure.ac
View file @
3daa12e4
...
...
@@ -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]) ],
...
...
modules/access_output/bonjour.c
View file @
3daa12e4
...
...
@@ -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
)
{
...
...
modules/services_discovery/bonjour.c
View file @
3daa12e4
...
...
@@ -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
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment