diff options
-rw-r--r-- | frontend_svr.c | 6 | ||||
-rw-r--r-- | tools/vdrdiscovery.c | 25 | ||||
-rw-r--r-- | tools/vdrdiscovery.h | 4 |
3 files changed, 22 insertions, 13 deletions
diff --git a/frontend_svr.c b/frontend_svr.c index 0e55881f..9774fc10 100644 --- a/frontend_svr.c +++ b/frontend_svr.c @@ -4,7 +4,7 @@ * See the main source file 'xineliboutput.c' for copyright information and * how to reach the author. * - * $Id: frontend_svr.c,v 1.43 2007-06-11 19:34:04 phintuka Exp $ + * $Id: frontend_svr.c,v 1.44 2007-06-11 19:39:06 phintuka Exp $ * */ @@ -858,7 +858,7 @@ bool cXinelibServer::Listen(int listen_port) CLOSESOCKET(fd_discovery); if(xc.remote_usebcast) { fd_discovery = udp_discovery_init(); - if(udp_discovery_broadcast(fd_discovery, m_Port) < 0) + if(udp_discovery_broadcast(fd_discovery, m_Port, xc.remote_local_ip) < 0) CLOSESOCKET(fd_discovery); else LOGMSG("Listening for UDP broadcasts on port %d", m_Port); @@ -1737,7 +1737,7 @@ void cXinelibServer::Handle_Discovery_Broadcast(void) if(udp_discovery_recv(fd_discovery, buf, 0, &from) > 0) if(udp_discovery_is_valid_search(buf)) - udp_discovery_broadcast(fd_discovery, m_Port); + udp_discovery_broadcast(fd_discovery, m_Port, xc.remote_local_ip); } void cXinelibServer::Action(void) diff --git a/tools/vdrdiscovery.c b/tools/vdrdiscovery.c index 2383130d..da5bfb2a 100644 --- a/tools/vdrdiscovery.c +++ b/tools/vdrdiscovery.c @@ -7,7 +7,7 @@ * See the main source file 'xineliboutput.c' for copyright information and * how to reach the author. * - * $Id: vdrdiscovery.c,v 1.3 2007-06-11 16:40:43 phintuka Exp $ + * $Id: vdrdiscovery.c,v 1.4 2007-06-11 19:39:06 phintuka Exp $ * */ @@ -106,17 +106,26 @@ static inline int udp_discovery_send(int fd_discovery, int port, char *msg) } #ifndef FE_STANDALONE -int udp_discovery_broadcast(int fd_discovery, int server_port) +int udp_discovery_broadcast(int fd_discovery, int server_port, const char *server_address) { char *msg = NULL; int result; - asprintf(&msg, - DISCOVERY_1_0_HDR //"VDR xineliboutput DISCOVERY 1.0" "\r\n" - DISCOVERY_1_0_SVR //"Server port: %d" "\r\n" - DISCOVERY_1_0_VERSION //"Server version: xineliboutput-" XINELIBOUTPUT_VERSION "\r\n" - "\r\n", - server_port); + if(server_address && *server_address) + asprintf(&msg, + DISCOVERY_1_0_HDR //"VDR xineliboutput DISCOVERY 1.0" "\r\n" + DISCOVERY_1_0_SVR //"Server port: %d" "\r\n" + DISCOVERY_1_0_ADDR //"Server Address: %d.%d.%d.%d \r\n" + DISCOVERY_1_0_VERSION //"Server version: xineliboutput-" XINELIBOUTPUT_VERSION "\r\n" + "\r\n", + server_port, server_address); + else + asprintf(&msg, + DISCOVERY_1_0_HDR //"VDR xineliboutput DISCOVERY 1.0" "\r\n" + DISCOVERY_1_0_SVR //"Server port: %d" "\r\n" + DISCOVERY_1_0_VERSION //"Server version: xineliboutput-" XINELIBOUTPUT_VERSION "\r\n" + "\r\n", + server_port); result = udp_discovery_send(fd_discovery, DISCOVERY_PORT, msg); diff --git a/tools/vdrdiscovery.h b/tools/vdrdiscovery.h index 51146268..7c4d18ae 100644 --- a/tools/vdrdiscovery.h +++ b/tools/vdrdiscovery.h @@ -7,7 +7,7 @@ * See the main source file 'xineliboutput.c' for copyright information and * how to reach the author. * - * $Id: vdrdiscovery.h,v 1.2 2007-01-01 06:17:11 phintuka Exp $ + * $Id: vdrdiscovery.h,v 1.3 2007-06-11 19:39:06 phintuka Exp $ * */ @@ -24,7 +24,7 @@ extern "C" { int udp_discovery_find_server(int *port, char *address); #else int udp_discovery_init(void); -int udp_discovery_broadcast(int fd_discovery, int server_port); +int udp_discovery_broadcast(int fd_discovery, int server_port, const char *server_address); int udp_discovery_recv(int fd_discovery, char *buf, int timeout, struct sockaddr_in *source); int udp_discovery_is_valid_search(const char *buf); |