summaryrefslogtreecommitdiff
path: root/net/rtsp_proxy/files/patch-ad
blob: 7a13eb1b40086d66e26ad307496676432b79b483 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
--- ../shared_udp.c	Tue Jul  6 17:42:26 1999
+++ ../shared_udp.c	Tue Jul 20 23:54:38 1999
@@ -259,7 +259,16 @@
 			gNextPort++;
 		if (gNextPort > gUDPPortMax)
 			gNextPort = gUDPPortMin;
-	} while (bind_socket_to_address(skt1, fromIP, port1 = gNextPort++, false) != 0);
+	} while (bind_socket_to_address(skt1, INADDR_ANY, port1 = gNextPort++, false) != 0);
+
+// i've changed the previous bind and the next one below to bind to any
+// IP number rather than using 'fromIP'. 'fromIP' is obtained from gProxyIP
+// which is in turn obtained from 'get_local_ip_address'. this function
+// gets the current hostname and then resolves that into an address. however,
+// since a proxy server runs on a bridging system with multiple IP addresses,
+// this is as likely as not to return the wrong IP address, which results in
+// the proxy missing all of the traffic from the server. not binding to a
+// specific address is cheap but gets a result.
 
 	if (withSib) {
 retry_rtcp:
@@ -271,7 +280,7 @@
 			else
 				goto bail_error;
 		}
-		if (bind_socket_to_address(skt2, fromIP, port2 = gNextPort++, false) != 0) {
+		if (bind_socket_to_address(skt2, INADDR_ANY, port2 = gNextPort++, false) != 0) {
 			close_socket(skt1);
 			close_socket(skt2);
 			skt1 = INVALID_SOCKET;