summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--frontend_svr.c6
-rw-r--r--tools/vdrdiscovery.c25
-rw-r--r--tools/vdrdiscovery.h4
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);