diff -r d0fa35e02d4a -r b14e55964c97 src/protocols/irc/irc.c --- a/src/protocols/irc/irc.c Mon May 05 20:38:49 2003 +0000 +++ b/src/protocols/irc/irc.c Mon May 05 20:57:12 2003 +0000 @@ -1683,16 +1683,17 @@ if (p) *p = 0; - vector = g_strsplit(word_eol[5], " ", 2); + vector = g_strsplit(word_eol[5], ".", 2); if (gettimeofday(&now, NULL) == 0 && vector != NULL) { - if (now.tv_usec - atol(vector[1]) < 0) { + if (vector[1] && now.tv_usec - atol(vector[1]) < 0) { ping_time.tv_sec = now.tv_sec - atol(vector[0]) - 1; ping_time.tv_usec = now.tv_usec - atol(vector[1]) + 1000000; } else { ping_time.tv_sec = now.tv_sec - atol(vector[0]); - ping_time.tv_usec = now.tv_usec - atol(vector[1]); + if(vector[1]) + ping_time.tv_usec = now.tv_usec - atol(vector[1]); } g_snprintf(buf, sizeof(buf), @@ -2794,8 +2795,11 @@ irc_ctcp_ping(struct gaim_connection *gc, const char *who) { char buf[IRC_BUF_LEN]; - - g_snprintf (buf, sizeof(buf), "\001PING %ld\001", time(NULL)); + struct timeval now; + + gettimeofday(&now, NULL); + g_snprintf (buf, sizeof(buf), "\001PING %lu.%.03lu\001", now.tv_sec, + now.tv_usec/1000); irc_send_privmsg(gc, who, buf, FALSE); }