[FFmpeg-devel] [PATCH] lavf/http: Add 301 and 503 error codes to http_write_reply()
gajjanag at mit.edu
Thu Aug 20 02:39:14 CEST 2015
On Wed, Aug 19, 2015 at 7:59 PM, Stephan Holljes
<klaxa1337 at googlemail.com> wrote:
> On Thu, Aug 20, 2015 at 12:11 AM, Ganesh Ajjanagadde <gajjanag at mit.edu> wrote:
>> On Wed, Aug 19, 2015 at 12:14 PM, Stephan Holljes
>> <klaxa1337 at googlemail.com> wrote:
>>> libavformat/http.c | 8 ++++++++
>>> 1 file changed, 8 insertions(+)
>>> diff --git a/libavformat/http.c b/libavformat/http.c
>>> index a136918..4dbef3f 100644
>>> --- a/libavformat/http.c
>>> +++ b/libavformat/http.c
>>> @@ -348,11 +348,19 @@ static int http_write_reply(URLContext* h, int status_code)
>>> reply_text = "OK";
>>> content_type = "application/octet-stream";
>>> + case 301:
>>> + reply_code = 301;
>>> + reply_text = "Moved Permanently";
>>> + break;
>> 301 is usually used for URL redirection,
>> and you don't seem to do anything beyond setting the message.
>> There needs to be additional logic somewhere to handle this.
>> Nevertheless, it is still ok as a patch to me,
>> since I assume this will be handled later on.
>> I strongly suggest adding something to clarify this in the commit message.
> I did not think about that and so far I have only used it in my
> modified ffserver code. What makes a 301 reply different from the
> other replies? Maybe I didn't understand the RFC correctly.
Quoting from the RFC:
"The new permanent URI SHOULD be given by the Location field in the response.
Unless the request method was HEAD,
the entity of the response SHOULD contain a short hypertext note with
a hyperlink to the new URI(s). "
My point is that somewhere in the response a new URI must be provided,
so that the client can go to the redirected location.
I don't know where/how such logic should go, but it needs to be done.
>>> case AVERROR_HTTP_SERVER_ERROR:
>>> case 500:
>>> reply_code = 500;
>>> reply_text = "Internal server error";
>>> + case 503:
>>> + reply_code = 503;
>>> + reply_text = "Service Unavailable";
>>> + break;
>> Looks ok to me.
>>> return AVERROR(EINVAL);
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel at ffmpeg.org
>> ffmpeg-devel mailing list
>> ffmpeg-devel at ffmpeg.org
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
More information about the ffmpeg-devel