Mercurial > pidgin.yaz
view doc/blist-signals.dox @ 9798:255596f41014
[gaim-migrate @ 10666]
This is patch number 1002252 by Joe Shaw.
He writes:
If you start a file transfer with a yahoo user and then
unplug the network, wait a couple minutes, and plug it
back in, a minute or so later the gaim UI will
completely freeze, eventually consume all your memory
and crash.
This is because ft.c:transfer_cb() does not correctly
handle the case in which both READ and WRITE conditions
are coming in, and because the yahoo_xfer_read() and
yahoo_xfer_write() functions are incorrectly returning
0 on errors instead of -1.
Since transfer_cb() is getting both conditions, it only
checks READ first and gets back 0 bytes (because the
connection has been hung up). 0 is not explicitly
handled, so nothing is done and we get ourselves into
an infinite loop.
committer: Tailor Script <tailor@pidgin.im>
author | Tim Ringenbach <marv@pidgin.im> |
---|---|
date | Sat, 21 Aug 2004 02:02:25 +0000 |
parents | 2583056be3a4 |
children | 201617d49573 |
line wrap: on
line source
/** @page blist-signals Buddy List Signals @signals @signal buddy-away @signal buddy-back @signal buddy-idle @signal buddy-unidle @signal buddy-signed-on @signal buddy-signed-off @signal update-idle @signal blist-node-extended-menu @endsignals <hr> @signaldef buddy-away @signalproto void (*buddy_away)(struct buddy *buddy); @endsignalproto @signaldesc Emitted when a buddy on your buddy list goes away. @param buddy The buddy that went away. @endsignaldef @signaldef buddy-back @signalproto void (*buddy_back)(struct buddy *buddy); @endsignalproto @signaldesc Emitted when a buddy on your buddy list comes back from being away. @param buddy The buddy that came back from being away. @endsignaldef @signaldef buddy-idle @signalproto void (*buddy_idle)(struct buddy *buddy); @endsignalproto @signaldesc Emitted when a buddy on your buddy list becomes idle. @param buddy The buddy that became idle. @endsignaldef @signaldef buddy-unidle @signalproto void (*buddy_unidle)(struct buddy *buddy); @endsignalproto @signaldesc Emitted when a buddy on your buddy list returns from being idle. @param buddy The buddy that returned from being idle. @endsignaldef @signaldef buddy-idle-updated @signalproto void (*buddy_idle_updated)(struct buddy *buddy); @endsignalproto @signaldesc Emitted when a buddy's idle time changes. The exceptions are when the buddy goes from being idle to being unidle, or from unidle to idle. @param buddy The buddy whose idle time changed. @endsignaldef @signaldef buddy-signed-on @signalproto void (*buddy_signed_on)(struct buddy *buddy); @endsignalproto @signaldesc Emitted when a buddy on your buddy list signs on. @param buddy The buddy that signed on. @endsignaldef @signaldef buddy-signed-off @signalproto void (*buddy_signed_off)(struct buddy *buddy); @endsignalproto @signaldesc Emitted when a buddy on your buddy list signs off. @param buddy The buddy that signed off. @endsignaldef @signaldef update-idle @signalproto void (*update_idle)(); @endsignalproto @signaldesc Emitted when the buddy list is refreshed and the idle times are updated. @endsignaldef @signaldef blist-node-extended-menu @signalproto void (*blist_node_extended_menu)(GaimBlistNode *node, GList **menu) @endsignalproto @signaldesc Emitted when a buddlist menu is being constructed @a menu is a pointer to a GList of GaimBlistNodeAction's allowing a plugin to add menu items @endsignaldef */ // vim: syntax=c tw=75 et