*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
-#include <stdlib.h>
#include <vlc/vlc.h>
+#include "bonjour.h"
#ifdef HAVE_AVAHI_CLIENT
-#include <vlc/intf.h>
-#include <vlc/sout.h>
+#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 );
/*****************************************************************************
* bonjour_start_service
*****************************************************************************/
-void *bonjour_start_service( vlc_object_t *p_log, char *psz_stype,
- char *psz_name, int i_port, char *psz_txt )
+void *bonjour_start_service( vlc_object_t *p_log, const char *psz_stype,
+ const char *psz_name, int i_port, char *psz_txt )
{
int err;
bonjour_t *p_sys;
}
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 )
{
{
bonjour_t *p_sys = (bonjour_t *)_p_sys;
- if( p_sys->poll_thread->b_thread )
- {
- p_sys->poll_thread->b_die = 1;
- vlc_thread_join( p_sys->poll_thread );
- }
-
+ vlc_object_kill( p_sys->poll_thread );
+ vlc_thread_join( p_sys->poll_thread );
vlc_object_destroy( p_sys->poll_thread );
if( p_sys->group != NULL )