diff options
author | Paul Aurich <darkrain42@pidgin.im> | 2009-02-08 21:56:03 +0000 |
---|---|---|
committer | Paul Aurich <darkrain42@pidgin.im> | 2009-02-08 21:56:03 +0000 |
commit | 58976fee46d9ed69e5c40c671f9aa48b777accc8 (patch) | |
tree | 6b7bf7a22ee8a2b2c015bdcc35601f127902571d | |
parent | ae4a8cc00bf7aad195b9a95dbcbdc291bac7fdf8 (diff) | |
download | pidgin-58976fee46d9ed69e5c40c671f9aa48b777accc8.tar.gz |
Report the correct UTC time (thanks for noticing this, Marcus).
-rw-r--r-- | libpurple/protocols/jabber/iq.c | 15 |
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); } |