From d93fdcbf5c0e70ca03aaad2581fd328f277cd7cb Mon Sep 17 00:00:00 2001
From: Luca Barbato <lu_zero@gentoo.org>
Date: Fri, 6 Aug 2010 10:26:30 +0000
Subject: [PATCH] Preserve status reason

It is used to provide meaningful error messages.

Originally committed as revision 24714 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavformat/rtsp.c | 6 ++++--
 libavformat/rtsp.h | 5 +++++
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index 689ad295959..2b244d8679a 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -824,6 +824,7 @@ int ff_rtsp_read_reply(AVFormatContext *s, RTSPMessageHeader *reply,
             get_word(buf1, sizeof(buf1), &p);
             get_word(buf1, sizeof(buf1), &p);
             reply->status_code = atoi(buf1);
+            av_strlcpy(reply->reason, p, sizeof(reply->reason));
         } else {
             ff_rtsp_parse_line(reply, p, &rt->auth_state);
             av_strlcat(rt->last_reply, p,    sizeof(rt->last_reply));
@@ -961,9 +962,10 @@ retry:
         goto retry;
 
     if (reply->status_code > 400){
-        av_log(s, AV_LOG_ERROR, "method %s failed, %d\n",
+        av_log(s, AV_LOG_ERROR, "method %s failed: %d%s\n",
                method,
-               reply->status_code);
+               reply->status_code,
+               reply->reason);
         av_log(s, AV_LOG_DEBUG, "%s\n", rt->last_reply);
     }
 
diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h
index 2853253e4b5..1dba9961c3b 100644
--- a/libavformat/rtsp.h
+++ b/libavformat/rtsp.h
@@ -159,6 +159,11 @@ typedef struct RTSPMessageHeader {
      * http://tools.ietf.org/html/draft-stiemerling-rtsp-announce-00
      * for a complete list of supported values. */
     int notice;
+
+    /** The "reason" is meant to specify better the meaning of the error code
+     * returned
+     */
+    char reason[256];
 } RTSPMessageHeader;
 
 /**
-- 
GitLab