Mercurial > pidgin
comparison libpurple/protocols/msn/nexus.h @ 25452:6a0304f317cf
I was hoping this wouldn't be necessary, but it seems that the possibility
has increased now that we update the display name in the AB.
If two SOAP requests fail because of outdated tokens for the same server,
it's possible that the second one could fail miserably. That's because both
times, the update request would be made with the original cipher secret.
However, the response for the first request would overwrite this secret,
and the second response would attempt decryption with this new secret
instead of the original.
Now, we queue up the callbacks if a token-update is already in progress.
This results in a single update if there happens to be multiple failures at
a time, and it stops this incorrect decryption problem.
Fixes #8415.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Sun, 15 Feb 2009 02:11:58 +0000 |
parents | a0e957b7b923 |
children | 462cb893521b |
comparison
equal
deleted
inserted
replaced
25451:4f2953f909fb | 25452:6a0304f317cf |
---|---|
202 typedef struct _MsnTicketToken MsnTicketToken; | 202 typedef struct _MsnTicketToken MsnTicketToken; |
203 struct _MsnTicketToken { | 203 struct _MsnTicketToken { |
204 GHashTable *token; | 204 GHashTable *token; |
205 char *secret; | 205 char *secret; |
206 time_t expiry; | 206 time_t expiry; |
207 GSList *updates; | |
207 }; | 208 }; |
208 | 209 |
209 typedef struct _MsnNexus MsnNexus; | 210 typedef struct _MsnNexus MsnNexus; |
210 | 211 |
211 struct _MsnNexus | 212 struct _MsnNexus |