diff options
-rw-r--r-- | mdns.c | 8 | ||||
-rw-r--r-- | mdns.h | 9 | ||||
-rw-r--r-- | mdns_avahi.c | 32 | ||||
-rw-r--r-- | player.c | 5 |
4 files changed, 27 insertions, 27 deletions
@@ -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."); } @@ -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."); } @@ -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 |