From: <the...@us...> - 2006-12-02 09:01:36
|
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. |