summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Aurich <darkrain42@pidgin.im>2009-02-08 21:56:03 +0000
committerPaul Aurich <darkrain42@pidgin.im>2009-02-08 21:56:03 +0000
commit58976fee46d9ed69e5c40c671f9aa48b777accc8 (patch)
tree6b7bf7a22ee8a2b2c015bdcc35601f127902571d
parentae4a8cc00bf7aad195b9a95dbcbdc291bac7fdf8 (diff)
downloadpidgin-58976fee46d9ed69e5c40c671f9aa48b777accc8.tar.gz
Report the correct UTC time (thanks for noticing this, Marcus).
-rw-r--r--libpurple/protocols/jabber/iq.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/libpurple/protocols/jabber/iq.c b/libpurple/protocols/jabber/iq.c
index db0ee818b7..ff01ac822d 100644
--- a/libpurple/protocols/jabber/iq.c
+++ b/libpurple/protocols/jabber/iq.c
@@ -173,10 +173,15 @@ static void jabber_iq_time_parse(JabberStream *js, const char *from,
const char *xmlns;
JabberIq *iq;
time_t now_t;
+ struct tm now_local;
+ struct tm now_utc;
struct tm *now;
time(&now_t);
now = localtime(&now_t);
+ memcpy(&now_local, now, sizeof(struct tm));
+ now = gmtime(&now_t);
+ memcpy(&now_utc, now, sizeof(struct tm));
xmlns = xmlnode_get_namespace(child);
@@ -194,19 +199,19 @@ static void jabber_iq_time_parse(JabberStream *js, const char *from,
utc = xmlnode_new_child(child, "utc");
if(!strcmp("urn:xmpp:time", xmlns)) {
- tz = purple_get_tzoff_str(now, TRUE);
+ tz = purple_get_tzoff_str(&now_local, TRUE);
xmlnode_insert_data(xmlnode_new_child(child, "tzo"), tz, -1);
- date = purple_utf8_strftime("%FT%TZ", now);
+ date = purple_utf8_strftime("%FT%TZ", &now_utc);
xmlnode_insert_data(utc, date, -1);
} else { /* jabber:iq:time */
- tz = purple_utf8_strftime("%Z", now);
+ tz = purple_utf8_strftime("%Z", &now_local);
xmlnode_insert_data(xmlnode_new_child(child, "tz"), tz, -1);
- date = purple_utf8_strftime("%Y%m%dT%T", now);
+ date = purple_utf8_strftime("%Y%m%dT%T", &now_utc);
xmlnode_insert_data(utc, date, -1);
- display = purple_utf8_strftime("%d %b %Y %T", now);
+ display = purple_utf8_strftime("%d %b %Y %T", &now_local);
xmlnode_insert_data(xmlnode_new_child(child, "display"), display, -1);
}