# HG changeset patch # User Nathan Walp # Date 1052168232 0 # Node ID 857106f8f971eff61184e391c0b552038de44bab # Parent d4c9c5491812edfeeeb399ccf6ce4db0839455c0 [gaim-migrate @ 5670] don't let CTCP pings segfault gaim ;-) committer: Tailor Script diff -r d4c9c5491812 -r 857106f8f971 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); }