GNOME Bugzilla – Bug 440928
Improved RTSP version support, and added Date header
Last modified: 2007-06-01 13:07:18 UTC
Please describe the problem: The attached patch fixes the following: * Improves version checking, allowing an RTSP server to reply with "505 RTSP Version not supported". * Adds a Date header to all messages. * Replies with RTSP_EPARSE rather than RTSP_EINVALID in cases where we want to be able to send a response even if something in the request was invalid. * Do not handle an invalid method in parse_request_line(). Defer this to the caller so it can respond with "405 Method Not Allowed". * Improves parsing of the timeout parameter to the Session header, allowing whitespace after the semicolon. Also avoids a compiler warning due to timeout variable shadowing a function argument. Steps to reproduce: Actual results: Expected results: Does this happen every time? Other information:
Created attachment 88730 [details] [review] Improved RTSP version support, and added Date header
Created attachment 89175 [details] [review] Improved RTSP version support, and added Date header This is almost the same patch as before, only that the version to use is no longer passed as an argument to rtsp_message_init_response() and rtsp_message_init_request() as suggested by Wim. It also fixes a compiler warning in rtspconnection.c when -Wshadow is used by changing sin to sa_in in rtsp_connection_connect().
Patch by: Peter Kjellerstedt <pkj at axis com> * gst/rtsp/rtspconnection.c: (rtsp_connection_create), (rtsp_connection_connect), (add_date_header), (rtsp_connection_send), (parse_response_status), (parse_request_line), (parse_line), (rtsp_connection_receive): * gst/rtsp/rtspdefs.c: (rtsp_version_as_text): * gst/rtsp/rtspdefs.h: * gst/rtsp/rtspmessage.c: (key_value_foreach), (rtsp_message_init_request), (rtsp_message_init_response), (rtsp_message_remove_header), (rtsp_message_append_headers), (rtsp_message_dump): * gst/rtsp/rtspmessage.h: Improves version checking, allowing an RTSP server to reply with "505 RTSP Version not supported. Adds a Date header to all messages. Replies with RTSP_EPARSE rather than RTSP_EINVALID in cases where we want to be able to send a response even if something in the request was invalid. EINVAL is only used when passing wrong arguments to functions. Do not handle an invalid method in parse_request_line(). Defer this to the caller so it can respond with "405 Method Not Allowed". Improves parsing of the timeout parameter to the Session header, allowing whitespace after the semicolon. Avoids a compiler warning due to variables shadowing a function argument.