Mercurial > pidgin
changeset 15087:337dfc40a538
[gaim-migrate @ 17873]
Update our current rate information stuff when the server
slaps us on the wrist for sending SNACs too rapidly
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sat, 02 Dec 2006 08:56:35 +0000 |
parents | eed75cc6cb88 |
children | 25c3a33c6485 |
files | libgaim/protocols/oscar/family_oservice.c |
diffstat | 1 files changed, 16 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/libgaim/protocols/oscar/family_oservice.c Sat Dec 02 08:37:24 2006 +0000 +++ b/libgaim/protocols/oscar/family_oservice.c Sat Dec 02 08:56:35 2006 +0000 @@ -430,22 +430,27 @@ { int ret = 0; aim_rxcallback_t userfunc; - guint16 code, rateclass; - guint32 currentavg, maxavg, windowsize, clear, alert, limit, disconnect; + guint16 code, classid; + struct rateclass *rateclass; code = byte_stream_get16(bs); - rateclass = byte_stream_get16(bs); + classid = byte_stream_get16(bs); + + rateclass = rateclass_find(conn->rateclasses, classid); + if (rateclass == NULL) + /* This should never really happen */ + return 0; - windowsize = byte_stream_get32(bs); - clear = byte_stream_get32(bs); - alert = byte_stream_get32(bs); - limit = byte_stream_get32(bs); - disconnect = byte_stream_get32(bs); - currentavg = byte_stream_get32(bs); - maxavg = byte_stream_get32(bs); + rateclass->windowsize = byte_stream_get32(bs); + rateclass->clear = byte_stream_get32(bs); + rateclass->alert = byte_stream_get32(bs); + rateclass->limit = byte_stream_get32(bs); + rateclass->disconnect = byte_stream_get32(bs); + rateclass->current = byte_stream_get32(bs); + rateclass->max = byte_stream_get32(bs); if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) - ret = userfunc(od, conn, frame, code, rateclass, windowsize, clear, alert, limit, disconnect, currentavg, maxavg); + ret = userfunc(od, conn, frame, code, classid, rateclass->windowsize, rateclass->clear, rateclass->alert, rateclass->limit, rateclass->disconnect, rateclass->current, rateclass->max); return ret; }