summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mdns.c8
-rw-r--r--mdns.h9
-rw-r--r--mdns_avahi.c32
-rw-r--r--player.c5
4 files changed, 27 insertions, 27 deletions
diff --git a/mdns.c b/mdns.c
index 2edbbf5..0651cdc 100644
--- a/mdns.c
+++ b/mdns.c
@@ -104,9 +104,9 @@ void mdns_unregister(void) {
}
}
-void mdns_dacp_monitor(char *dacp_id, uint16_t *port, void **private_pointer) {
+void mdns_dacp_monitor(rtsp_conn_info *conn) {
if ((config.mdns) && (config.mdns->mdns_dacp_monitor)) {
- int error = config.mdns->mdns_dacp_monitor(dacp_id, port, private_pointer);
+ int error = config.mdns->mdns_dacp_monitor(conn);
if (error) {
debug(1, "Error starting a DACP monitor.");
}
@@ -114,9 +114,9 @@ void mdns_dacp_monitor(char *dacp_id, uint16_t *port, void **private_pointer) {
debug(1, "Can't start a DACP monitor.");
}
-void mdns_dacp_dont_monitor(void **private_pointer) {
+void mdns_dacp_dont_monitor(rtsp_conn_info *conn) {
if ((config.mdns) && (config.mdns->mdns_dacp_dont_monitor)) {
- config.mdns->mdns_dacp_dont_monitor(private_pointer);
+ config.mdns->mdns_dacp_dont_monitor(conn);
} else
debug(1, "Can't stop a DACP monitor.");
}
diff --git a/mdns.h b/mdns.h
index 035eb78..a55eea9 100644
--- a/mdns.h
+++ b/mdns.h
@@ -3,13 +3,14 @@
#include "config.h"
#include <stdint.h>
+#include <player.h>
extern int mdns_pid;
void mdns_unregister(void);
void mdns_register(void);
-void mdns_dacp_monitor(char *dacp_id, uint16_t *port, void **private_pointer);
-void mdns_dacp_dont_monitor(void **private_pointer);
+void mdns_dacp_monitor(rtsp_conn_info *conn);
+void mdns_dacp_dont_monitor(rtsp_conn_info *conn);
void mdns_ls_backends(void);
@@ -17,8 +18,8 @@ typedef struct {
char *name;
int (*mdns_register)(char *apname, int port);
void (*mdns_unregister)(void);
- int (*mdns_dacp_monitor)(char *dacp_id, uint16_t *port, void **private_pointer);
- void (*mdns_dacp_dont_monitor)(void **private_pointer);
+ int (*mdns_dacp_monitor)(rtsp_conn_info *conn);
+ void (*mdns_dacp_dont_monitor)(rtsp_conn_info *conn);
} mdns_backend;
#ifdef CONFIG_METADATA
diff --git a/mdns_avahi.c b/mdns_avahi.c
index e632a86..cb99f46 100644
--- a/mdns_avahi.c
+++ b/mdns_avahi.c
@@ -377,9 +377,7 @@ static void avahi_unregister(void) {
service_name = NULL;
}
-int avahi_dacp_monitor(char *dacp_id, uint16_t *port, void **private_pointer) {
-
- dacp_browser_struct **pdbs = (dacp_browser_struct **)private_pointer;
+int avahi_dacp_monitor(rtsp_conn_info *conn) {
dacp_browser_struct *dbs = (dacp_browser_struct *)malloc(sizeof(dacp_browser_struct));
@@ -435,24 +433,24 @@ int avahi_dacp_monitor(char *dacp_id, uint16_t *port, void **private_pointer) {
}
return -1;
}
- *pdbs = dbs;
+ conn->mdns_private_pointer = (void *)dbs;
return 0;
}
-void avahi_dacp_dont_monitor(void **private_pointer) {
- dacp_browser_struct **pdbs = (dacp_browser_struct **)private_pointer;
- if (*pdbs) {
+void avahi_dacp_dont_monitor(rtsp_conn_info *conn) {
+ dacp_browser_struct *dbs = (dacp_browser_struct *)conn->mdns_private_pointer;
+ if (dbs) {
// stop and dispose of everything
- if ((*pdbs)->service_poll)
- avahi_threaded_poll_stop((*pdbs)->service_poll);
- if ((*pdbs)->service_browser)
- avahi_service_browser_free((*pdbs)->service_browser);
- if ((*pdbs)->service_client)
- avahi_client_free((*pdbs)->service_client);
- if ((*pdbs)->service_poll)
- avahi_threaded_poll_free((*pdbs)->service_poll);
- free((char *)(*pdbs));
- *pdbs = NULL;
+ if ((dbs)->service_poll)
+ avahi_threaded_poll_stop((dbs)->service_poll);
+ if ((dbs)->service_browser)
+ avahi_service_browser_free((dbs)->service_browser);
+ if ((dbs)->service_client)
+ avahi_client_free((dbs)->service_client);
+ if ((dbs)->service_poll)
+ avahi_threaded_poll_free((dbs)->service_poll);
+ free((char *)(dbs));
+ conn->mdns_private_pointer = NULL;
} else {
debug(1, "DHCP Monitor is not running.");
}
diff --git a/player.c b/player.c
index 813ac30..5ec8ce9 100644
--- a/player.c
+++ b/player.c
@@ -1579,7 +1579,8 @@ static void *player_thread_func(void *arg) {
// start an mdns/zeroconf thread to look for DACP messages containing our DACP_ID and getting the
// port number
- mdns_dacp_monitor(conn->dacp_id, &conn->dacp_port, &conn->dacp_private);
+ //mdns_dacp_monitor(conn->dacp_id, &conn->dacp_port, &conn->dacp_private);
+ mdns_dacp_monitor(conn);
conn->framesProcessedInThisEpoch = 0;
conn->framesGeneratedInThisEpoch = 0;
@@ -2186,7 +2187,7 @@ static void *player_thread_func(void *arg) {
}
// stop watching for DACP port number stuff
- mdns_dacp_dont_monitor(&conn->dacp_private); // begin looking out for information about the client
+ mdns_dacp_dont_monitor(conn); // begin looking out for information about the client
// as a remote control. Specifically we might need
// the port number