summaryrefslogtreecommitdiff
path: root/libavformat/rtsp.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/rtsp.c')
-rw-r--r--libavformat/rtsp.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 8550bf2912..0a7adfbbe0 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -1381,10 +1381,12 @@ int ff_rtsp_connect(AVFormatContext *s)
char host[1024], path[1024], tcpname[1024], cmd[2048], auth[128];
char *option_list, *option, *filename;
URLContext *rtsp_hd;
- int port, err;
+ int port, err, tcp_fd;
RTSPMessageHeader reply1, *reply = &reply1;
int lower_transport_mask = 0;
char real_challenge[64];
+ struct sockaddr_storage peer;
+ socklen_t peer_len = sizeof(peer);
if (!ff_network_init())
return AVERROR(EIO);
@@ -1455,6 +1457,12 @@ redirect:
rt->rtsp_hd = rtsp_hd;
rt->seq = 0;
+ tcp_fd = url_get_file_handle(rtsp_hd);
+ if (!getpeername(tcp_fd, (struct sockaddr*) &peer, &peer_len)) {
+ getnameinfo((struct sockaddr*) &peer, peer_len, host, sizeof(host),
+ NULL, 0, NI_NUMERICHOST);
+ }
+
/* request options supported by the server; this also detects server
* type */
av_strlcpy(rt->control_uri, s->filename,