Mercurial > pidgin
changeset 6826:2adf21e70601
[gaim-migrate @ 7371]
Fixed message length problems for binary and text.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Sat, 13 Sep 2003 23:28:08 +0000 |
parents | 936133f7c755 |
children | 1cfbb731aa1f |
files | src/protocols/msn/msg.c src/protocols/msn/msg.h src/protocols/msn/servconn.c src/protocols/msn/switchboard.c |
diffstat | 4 files changed, 15 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/protocols/msn/msg.c Sat Sep 13 21:01:26 2003 +0000 +++ b/src/protocols/msn/msg.c Sat Sep 13 23:28:08 2003 +0000 @@ -298,7 +298,7 @@ } char * -msn_message_build_string(const MsnMessage *msg) +msn_message_to_string(const MsnMessage *msg, size_t *ret_size) { GList *l; char *msg_start; @@ -332,7 +332,7 @@ len = strlen(buf) + msg->size + 1; - str = g_new0(char, len); + str = g_new0(char, len + 1); g_strlcpy(str, buf, len); @@ -434,6 +434,9 @@ } } + if (ret_size != NULL) + *ret_size = len - 1; + return str; }
--- a/src/protocols/msn/msg.h Sat Sep 13 21:01:26 2003 +0000 +++ b/src/protocols/msn/msg.h Sat Sep 13 23:28:08 2003 +0000 @@ -133,11 +133,12 @@ /** * Converts a message to a string. * - * @param msg The message. + * @param msg The message. + * @param ret_size The returned size of the string. * * @return The string representation of a message. */ -char *msn_message_build_string(const MsnMessage *msg); +char *msn_message_to_string(const MsnMessage *msg, size_t *ret_size); /** * Returns TRUE if the message is outgoing.
--- a/src/protocols/msn/servconn.c Sat Sep 13 21:01:26 2003 +0000 +++ b/src/protocols/msn/servconn.c Sat Sep 13 23:28:08 2003 +0000 @@ -336,10 +336,8 @@ { g_return_val_if_fail(servconn != NULL, 0); -#if 0 gaim_debug(GAIM_DEBUG_MISC, "msn", "C: %s%s", buf, (*(buf + size - 1) == '\n' ? "" : "\n")); -#endif return write(servconn->fd, buf, size); }
--- a/src/protocols/msn/switchboard.c Sat Sep 13 21:01:26 2003 +0000 +++ b/src/protocols/msn/switchboard.c Sat Sep 13 23:28:08 2003 +0000 @@ -46,6 +46,9 @@ msn_message_set_body(msg, MSN_CLIENTINFO); if (!msn_switchboard_send_msg(swboard, msg)) { + gaim_debug_warning("msn", + "Unable to send clientcaps. " + "Disconnecting from switchboard.\n"); msn_switchboard_destroy(swboard); msn_message_destroy(msg); @@ -110,7 +113,7 @@ } #endif - return FALSE; + return TRUE; } static gboolean @@ -634,13 +637,14 @@ msn_switchboard_send_msg(MsnSwitchBoard *swboard, MsnMessage *msg) { char *buf; + size_t len; int ret; g_return_val_if_fail(swboard != NULL, FALSE); g_return_val_if_fail(msg != NULL, FALSE); msn_message_set_transaction_id(msg, ++swboard->trId); - buf = msn_message_build_string(msg); + buf = msn_message_to_string(msg, &len); g_return_val_if_fail(buf != NULL, FALSE); @@ -653,7 +657,7 @@ return TRUE; } - ret = msn_servconn_write(swboard->servconn, buf, strlen(buf)); + ret = msn_servconn_write(swboard->servconn, buf, len); g_free(buf);