From: Stu T. <nos...@us...> - 2005-01-11 17:28:01
|
Update of /cvsroot/gaim/gaim/src/protocols/msn In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15032/src/protocols/msn Modified Files: Tag: oldstatus cmdproc.c httpconn.c msn.c msn.h nexus.c notification.c session.c slpcall.c switchboard.c userlist.c Log Message: Some things here: - Several memory leak fixes - A few invalid memory access fixes - Fix MSN notification server transfer to be quiet about it - Fix MSN blist sync if user has insane friendly name - 1 typo fix :) ... and quite possibly something else I forgot. Index: cmdproc.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/msn/cmdproc.c,v retrieving revision 1.7.2.7 retrieving revision 1.7.2.8 diff -u -d -p -r1.7.2.7 -r1.7.2.8 --- cmdproc.c 7 Jan 2005 02:48:05 -0000 1.7.2.7 +++ cmdproc.c 11 Jan 2005 17:27:26 -0000 1.7.2.8 @@ -49,6 +49,10 @@ msn_cmdproc_destroy(MsnCmdProc *cmdproc) g_queue_free(cmdproc->txqueue); msn_history_destroy(cmdproc->history); + + if (cmdproc->last_cmd != NULL) + msn_command_destroy(cmdproc->last_cmd); + g_free(cmdproc); } Index: httpconn.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/msn/httpconn.c,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -d -p -r1.1.2.3 -r1.1.2.4 --- httpconn.c 7 Jan 2005 20:56:37 -0000 1.1.2.3 +++ httpconn.c 11 Jan 2005 17:27:26 -0000 1.1.2.4 @@ -68,6 +68,15 @@ msn_httpconn_destroy(MsnHttpConn *httpco if (httpconn->connected) msn_httpconn_disconnect(httpconn); + if (httpconn->full_session_id != NULL) + g_free(httpconn->full_session_id); + + if (httpconn->session_id != NULL) + g_free(httpconn->session_id); + + if (httpconn->host != NULL) + g_free(httpconn->host); + g_free(httpconn); } @@ -669,17 +678,17 @@ msn_httpconn_parse_data(MsnHttpConn *htt if (!wasted) { - if (httpconn->full_session_id != NULL); + if (httpconn->full_session_id != NULL) g_free(httpconn->full_session_id); httpconn->full_session_id = full_session_id; - if (httpconn->session_id != NULL); + if (httpconn->session_id != NULL) g_free(httpconn->session_id); httpconn->session_id = session_id; - if (httpconn->host != NULL); + if (httpconn->host != NULL) g_free(httpconn->host); httpconn->host = gw_ip; @@ -689,6 +698,7 @@ msn_httpconn_parse_data(MsnHttpConn *htt MsnServConn *servconn; /* It's going to die. */ + /* poor thing */ servconn = httpconn->servconn; @@ -696,6 +706,7 @@ msn_httpconn_parse_data(MsnHttpConn *htt servconn->wasted = TRUE; g_free(full_session_id); + g_free(session_id); g_free(gw_ip); } } Index: msn.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/msn/msn.c,v retrieving revision 1.320.2.18 retrieving revision 1.320.2.19 diff -u -d -p -r1.320.2.18 -r1.320.2.19 --- msn.c 7 Jan 2005 02:48:06 -0000 1.320.2.18 +++ msn.c 11 Jan 2005 17:27:26 -0000 1.320.2.19 @@ -47,8 +47,6 @@ #include "imgstore.h" #endif -#define BUDDY_ALIAS_MAXLEN 387 - typedef struct { GaimConnection *gc; Index: msn.h =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/msn/msn.h,v retrieving revision 1.22.2.3 retrieving revision 1.22.2.4 diff -u -d -p -r1.22.2.3 -r1.22.2.4 --- msn.h 7 Jan 2005 02:48:06 -0000 1.22.2.3 +++ msn.h 11 Jan 2005 17:27:26 -0000 1.22.2.4 @@ -69,6 +69,7 @@ #define USEROPT_HOTMAIL 0 +#define BUDDY_ALIAS_MAXLEN 387 #define MSN_FT_GUID "{5D3E02AB-6190-11d3-BBBB-00C04F795683}" Index: nexus.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/msn/nexus.c,v retrieving revision 1.5.2.3 retrieving revision 1.5.2.4 diff -u -d -p -r1.5.2.3 -r1.5.2.4 --- nexus.c 7 Jan 2005 02:48:06 -0000 1.5.2.3 +++ nexus.c 11 Jan 2005 17:27:26 -0000 1.5.2.4 @@ -132,7 +132,8 @@ login_connect_cb(gpointer data, GaimSslC session = nexus->session; g_return_if_fail(session != NULL); - msn_session_set_login_step(session, MSN_LOGIN_STEP_GET_COOKIE); + if (!session->logged_in) + msn_session_set_login_step(session, MSN_LOGIN_STEP_GET_COOKIE); username = g_strdup(gaim_url_encode(gaim_account_get_username(session->account))); @@ -312,7 +313,8 @@ nexus_connect_cb(gpointer data, GaimSslC session = nexus->session; g_return_if_fail(session != NULL); - msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH); + if (!session->logged_in) + msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH); request_str = g_strdup_printf("GET /rdr/pprdr.asp\r\n\r\n"); Index: notification.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/msn/notification.c,v retrieving revision 1.114.2.16 retrieving revision 1.114.2.17 diff -u -d -p -r1.114.2.16 -r1.114.2.17 --- notification.c 7 Jan 2005 02:48:06 -0000 1.114.2.16 +++ notification.c 11 Jan 2005 17:27:26 -0000 1.114.2.17 @@ -111,7 +111,8 @@ connect_cb(MsnServConn *servconn) vers = g_strjoinv(" ", a); - msn_session_set_login_step(session, MSN_LOGIN_STEP_HANDSHAKE); + if (!session->logged_in) + msn_session_set_login_step(session, MSN_LOGIN_STEP_HANDSHAKE); msn_cmdproc_send(cmdproc, "VER", "%s", vers); g_strfreev(a); @@ -199,7 +200,8 @@ msn_got_login_params(MsnSession *session cmdproc = session->notification->cmdproc; - msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH_END); + if (!session->logged_in) + msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH_END); msn_cmdproc_send(cmdproc, "USR", "TWN S %s", login_params); } @@ -233,7 +235,8 @@ usr_cmd(MsnCmdProc *cmdproc, MsnCommand gaim_connection_set_display_name(gc, friendly); - msn_session_set_login_step(session, MSN_LOGIN_STEP_SYN); + if (!session->logged_in) + msn_session_set_login_step(session, MSN_LOGIN_STEP_SYN); msn_cmdproc_send(cmdproc, "SYN", "%s", "0"); } @@ -258,7 +261,8 @@ usr_cmd(MsnCmdProc *cmdproc, MsnCommand g_strfreev(elems); - msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH_START); + if (!session->logged_in) + msn_session_set_login_step(session, MSN_LOGIN_STEP_AUTH_START); msn_nexus_connect(session->nexus); } Index: session.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/msn/session.c,v retrieving revision 1.24.2.10 retrieving revision 1.24.2.11 diff -u -d -p -r1.24.2.10 -r1.24.2.11 --- session.c 7 Jan 2005 02:48:07 -0000 1.24.2.10 +++ session.c 11 Jan 2005 17:27:27 -0000 1.24.2.11 @@ -366,6 +366,9 @@ msn_session_finish_login(MsnSession *ses account = session->account; gc = gaim_account_get_connection(account); + if (session->logged_in) + return; + msn_user_set_buddy_icon(session->user, gaim_account_get_buddy_icon(session->account)); Index: slpcall.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/msn/slpcall.c,v retrieving revision 1.3.2.6 retrieving revision 1.3.2.7 diff -u -d -p -r1.3.2.6 -r1.3.2.7 --- slpcall.c 7 Jan 2005 02:48:07 -0000 1.3.2.6 +++ slpcall.c 11 Jan 2005 17:27:27 -0000 1.3.2.7 @@ -192,10 +192,10 @@ msn_slp_call_timeout(gpointer data) { MsnSlpCall *slpcall; - gaim_debug_info("msn", "slpcall timeout (%p)\n", slpcall); - slpcall = data; + gaim_debug_info("msn", "slpcall timeout (%p)\n", slpcall); + if (!slpcall->pending && !slpcall->progress) { msn_slp_call_destroy(slpcall); Index: switchboard.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/msn/switchboard.c,v retrieving revision 1.76.2.15 retrieving revision 1.76.2.16 diff -u -d -p -r1.76.2.15 -r1.76.2.16 --- switchboard.c 7 Jan 2005 02:48:07 -0000 1.76.2.15 +++ switchboard.c 11 Jan 2005 17:27:27 -0000 1.76.2.16 @@ -352,7 +352,7 @@ msg_error_helper(MsnCmdProc *cmdproc, Ms { const char *format; char *body_str, *body_enc, *pre, *post; - char *str_reason; + const char *str_reason; #if 0 if (swboard->conv == NULL) @@ -651,7 +651,10 @@ bye_cmd(MsnCmdProc *cmdproc, MsnCommand } if (str != NULL) + { msn_switchboard_report_user(swboard, GAIM_MESSAGE_SYSTEM, str); + g_free(str); + } msn_switchboard_destroy(swboard); } Index: userlist.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/protocols/msn/userlist.c,v retrieving revision 1.16.2.4 retrieving revision 1.16.2.5 diff -u -d -p -r1.16.2.4 -r1.16.2.5 --- userlist.c 31 Dec 2004 16:33:58 -0000 1.16.2.4 +++ userlist.c 11 Jan 2005 17:27:27 -0000 1.16.2.5 @@ -467,6 +467,7 @@ void msn_userlist_remove_group(MsnUserList *userlist, MsnGroup *group) { userlist->groups = g_list_remove(userlist->groups, group); + msn_group_destroy(group); } MsnGroup * @@ -630,6 +631,13 @@ msn_userlist_add_buddy(MsnUserList *user store_name = (user != NULL) ? get_store_name(user) : who; + /* this might be a bit of a hack, but it should prevent notification server + * disconnections for people who have buddies with insane friendly names + * who added you to their buddy list from being disconnected. Stu. */ + /* ... No, that sentence didn't parse for me either. Stu. */ + if (strlen(store_name) > BUDDY_ALIAS_MAXLEN) + store_name = who; + /* Then request the add to the server. */ list = lists[list_id]; |