After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 617636 - [rtsp] uses unicode characters in date string
[rtsp] uses unicode characters in date string
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
0.10.29
Other Linux
: Normal normal
: 0.10.30
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-05-04 10:58 UTC by Vladimir Eremeev
Modified: 2010-05-05 12:27 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
rtsp: weekday and month names in RTSP date string should be in C locale (1.67 KB, patch)
2010-05-04 14:39 UTC, Tim-Philipp Müller
committed Details | Review

Description Vladimir Eremeev 2010-05-04 10:58:46 UTC
Here is the conversation, captured with the Wireshark.
=====8<=====
OPTIONS rtsp://192.168.24.221/test.mov RTSP/1.0
CSeq: 1
User-Agent: RealMedia Player Version 6.0.9.1235 (linux-2.0-libc6-i386-gcc2.95)
ClientChallenge: 9e26d33f2984236010ef6253fb1887f7
CompanyID: KnKV4M4I/B2FjJ1TToLycw==
GUID: 00000000-0000-0000-0000-000000000000
RegionData: 0
PlayerStarttime: [28/03/2003:22:50:23 00:00]
ClientID: Linux_2.4_6.0.9.1235_play32_RN01_EN_586
Date: ......, 04 ...... 2010 08:57:04 GMT

RTSP/1.0 400 Bad Request
Server: feng/2.1.0_rc1
Date: Tue, 04 May 2010 08:59:06 GMT
=====8<=====

The Date: header contains Unicode characters.
This conversation was resulted by the command

$ gst-launch rtspsrc location="rtsp://192.168.24.221/test.mov" debug=true ! fakesink

The command output is the following.

=====8<=====
Setting pipeline to PAUSED ...
RTSP request message 0xbff2fc94
 request line:
   method: 'OPTIONS'
   uri:    'rtsp://192.168.24.221/test.mov'
   version: '1.0'
 headers:
   key: 'User-Agent', value: 'RealMedia Player Version 6.0.9.1235
(linux-2.0-libc6-i386-gcc2.95)'
   key: 'ClientChallenge', value: '9e26d33f2984236010ef6253fb1887f7'
   key: 'CompanyID', value: 'KnKV4M4I/B2FjJ1TToLycw=='
   key: 'GUID', value: '00000000-0000-0000-0000-000000000000'
   key: 'RegionData', value: '0'
   key: 'PlayerStarttime', value: '[28/03/2003:22:50:23 00:00]'
   key: 'ClientID', value: 'Linux_2.4_6.0.9.1235_play32_RN01_EN_586'
 body:
RTSP response message 0xbff2fc78
 status line:
   code:   '400'
   reason: 'Bad Request'
   version: '1.0'
 headers:
   key: 'Server', value: 'feng/2.1.0_rc1'
   key: 'Date', value: 'Tue, 04 May 2010 08:52:11 GMT'
 body: length 0
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Could not read
from resource.
Additional debug info:
gstrtspsrc.c(4066): gst_rtspsrc_send ():
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0:
Got error response: 400 (Bad Request).
Setting pipeline to NULL ...
Freeing pipeline ..
=====8<=====

The RTSP standard states 

http://www.ietf.org/rfc/rfc2616.txt

All HTTP date/time stamps MUST be represented in Greenwich Mean Time (GMT),
without exception. For the purposes of HTTP, GMT is exactly equal to UTC
(Coordinated Universal Time). This is indicated in the first two formats by the
inclusion of "GMT" as the three-letter abbreviation for time zone, and MUST be
assumed when reading the asctime format. HTTP-date is case sensitive and MUST
NOT include additional LWS beyond that specifically included as SP in the
grammar.

       HTTP-date    = rfc1123-date | rfc850-date | asctime-date
       rfc1123-date = wkday "," SP date1 SP time SP "GMT"
       rfc850-date  = weekday "," SP date2 SP time SP "GMT"
       asctime-date = wkday SP date3 SP time SP 4DIGIT
       date1        = 2DIGIT SP month SP 4DIGIT
                      ; day month year (e.g., 02 Jun 1982)
       date2        = 2DIGIT "-" month "-" 2DIGIT
                      ; day-month-year (e.g., 02-Jun-82)
       date3        = month SP ( 2DIGIT | ( SP 1DIGIT ))
                      ; month day (e.g., Jun  2)
       time         = 2DIGIT ":" 2DIGIT ":" 2DIGIT
                      ; 00:00:00 - 23:59:59
       wkday        = "Mon" | "Tue" | "Wed"
                    | "Thu" | "Fri" | "Sat" | "Sun"
       weekday      = "Monday" | "Tuesday" | "Wednesday"
                    | "Thursday" | "Friday" | "Saturday" | "Sunday"
       month        = "Jan" | "Feb" | "Mar" | "Apr"
                    | "May" | "Jun" | "Jul" | "Aug"
                    | "Sep" | "Oct" | "Nov" | "Dec"

I've also filed a bug to the FENG RTSP server: http://bugs.lscube.org/show_bug.cgi?id=14
Comment 1 Tim-Philipp Müller 2010-05-04 14:39:21 UTC
Created attachment 160263 [details] [review]
rtsp: weekday and month names in RTSP date string should be in C locale

Does this patch help?
Comment 2 Tim-Philipp Müller 2010-05-05 12:26:24 UTC
commit 7fee2c0fe7aeb9f743a6676bef07ed657e8025e2
Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>
Date:   Tue May 4 15:32:59 2010 +0100

    rtsp: weekday and month names in RTSP date string should be in C locale
    
    Create date string using C locale weekday and month names.
    
    Fixes #617636.