Use gmtime_r if available as gmtime is not MT-safe.
Original commit message from CVS:
* configure.ac:
* gst-libs/gst/rtsp/gstrtspconnection.c: (add_date_header):
Use gmtime_r if available as gmtime is not MT-safe.
Fixes bug #511810.
diff --git a/ChangeLog b/ChangeLog
index 98adc93..ae92899 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2008-02-02 Sebastian Dröge <slomo@circular-chaos.org>
+ * configure.ac:
+ * gst-libs/gst/rtsp/gstrtspconnection.c: (add_date_header):
+ Use gmtime_r if available as gmtime is not MT-safe.
+ Fixes bug #511810.
+
+2008-02-02 Sebastian Dröge <slomo@circular-chaos.org>
+
* gst-libs/gst/rtsp/gstrtspconnection.c: (add_date_header):
Cast glong to time_t as time_t might have a different type on
other platforms, like FreeBSD, and we get a compiler warning
diff --git a/common b/common
index 571dce3..3c54731 160000
--- a/common
+++ b/common
@@ -1 +1 @@
-Subproject commit 571dce3335f9be76978009b3842c050dbb900e6f
+Subproject commit 3c5473161ce19a3530bad279b842d542895b1500
diff --git a/configure.ac b/configure.ac
index 6554c4a..4188b60 100644
--- a/configure.ac
+++ b/configure.ac
@@ -239,7 +239,7 @@
AX_CREATE_STDINT_H
dnl *** checks for functions ***
-AC_CHECK_FUNCS([localtime_r])
+AC_CHECK_FUNCS([localtime_r gmtime_r])
dnl *** checks for types/defines ***
diff --git a/gst-libs/gst/rtsp/gstrtspconnection.c b/gst-libs/gst/rtsp/gstrtspconnection.c
index 9da13fa..5f2200a 100644
--- a/gst-libs/gst/rtsp/gstrtspconnection.c
+++ b/gst-libs/gst/rtsp/gstrtspconnection.c
@@ -370,10 +370,20 @@
gchar date_string[100];
time_t t;
+#ifdef HAVE_GMTIME_R
+ struct tm tm_;
+#endif
+
g_get_current_time (&tv);
t = (time_t) tv.tv_sec;
+
+#ifdef HAVE_GMTIME_R
+ strftime (date_string, sizeof (date_string), "%a, %d %b %Y %H:%M:%S GMT",
+ gmtime_r (&t, &tm_));
+#else
strftime (date_string, sizeof (date_string), "%a, %d %b %Y %H:%M:%S GMT",
gmtime (&t));
+#endif
gst_rtsp_message_add_header (message, GST_RTSP_HDR_DATE, date_string);
}