Mercurial > pidgin.yaz
comparison libpurple/protocols/msnp9/user.c @ 21674:4bc7d44f543a
Prevent exceeding the server limit on friendly name length when setting
buddies friendly names on the server. This should fix at least some (if not
all) of the new "Can't connect to MSN OMGWTFBBQ!" problems reported for 2.3.0
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Wed, 28 Nov 2007 01:31:36 +0000 |
parents | af5de2b08fe0 |
children | b08d0296ab88 |
comparison
equal
deleted
inserted
replaced
21673:f9738214f308 | 21674:4bc7d44f543a |
---|---|
124 | 124 |
125 void | 125 void |
126 msn_user_set_friendly_name(MsnUser *user, const char *name) | 126 msn_user_set_friendly_name(MsnUser *user, const char *name) |
127 { | 127 { |
128 MsnCmdProc *cmdproc; | 128 MsnCmdProc *cmdproc; |
129 | 129 const char *encoded; |
130 g_return_if_fail(user != NULL); | 130 |
131 | 131 g_return_if_fail(user != NULL); |
132 if (user->friendly_name && strcmp(user->friendly_name, name)) { | 132 |
133 encoded = purple_url_encode(name); | |
134 | |
135 if (user->friendly_name && strcmp(user->friendly_name, name) && (strlen(encoded) < 387)) { | |
133 /* copy the new name to the server list, but only when new */ | 136 /* copy the new name to the server list, but only when new */ |
134 /* should we check this more thoroughly? */ | 137 /* should we check this more thoroughly? */ |
135 cmdproc = user->userlist->session->notification->cmdproc; | 138 cmdproc = user->userlist->session->notification->cmdproc; |
136 msn_cmdproc_send(cmdproc, "REA", "%s %s", | 139 msn_cmdproc_send(cmdproc, "REA", "%s %s", |
137 user->passport, | 140 user->passport, |
138 purple_url_encode(name)); | 141 encoded); |
139 } | 142 } |
140 | 143 |
141 g_free(user->friendly_name); | 144 g_free(user->friendly_name); |
142 user->friendly_name = g_strdup(name); | 145 user->friendly_name = g_strdup(name); |
143 } | 146 } |