Revision: 17873
http://svn.sourceforge.net/gaim/?rev=17873&view=rev
Author: thekingant
Date: 2006-12-02 00:56:35 -0800 (Sat, 02 Dec 2006)
Log Message:
-----------
Update our current rate information stuff when the server
slaps us on the wrist for sending SNACs too rapidly
Modified Paths:
--------------
trunk/libgaim/protocols/oscar/family_oservice.c
Modified: trunk/libgaim/protocols/oscar/family_oservice.c
===================================================================
--- trunk/libgaim/protocols/oscar/family_oservice.c 2006-12-02 08:37:24 UTC (rev 17872)
+++ trunk/libgaim/protocols/oscar/family_oservice.c 2006-12-02 08:56:35 UTC (rev 17873)
@@ -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);
- 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 = rateclass_find(conn->rateclasses, classid);
+ if (rateclass == NULL)
+ /* This should never really happen */
+ return 0;
+ 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;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|