Last change
on this file since f8c9347 was
ea90275,
checked in by dequis <dx@…>, at 2016-11-13T20:10:17Z
|
purple: fix file transfer memory management
This means cancelling transfers on logout to avoid crashes, keeping
track of timeouts, reffing and unreffing the xfers, listening to the
callbacks from UI and purple more carefully and using the correct
functions to free the correct things at the correct moments.
Originally intended to fix a crash triggered when the dcc stall timeout
kicks in after the account is offline, which is apparently very frequent
with telegram (it sends file transfers while fetching history, and
randomly disconnects a while later).
Trying to fix that meant opening a can of worms, but after three days of
work on this bug I'm pretty sure I've finished dealing with the
resulting mess and tested all the typical edge cases.
|
-
Property mode set to
100644
|
File size:
317 bytes
|
Line | |
---|
1 | #ifndef BPURPLE_H |
---|
2 | # define BPURPLE_H |
---|
3 | |
---|
4 | #include <purple.h> |
---|
5 | #include <glib.h> |
---|
6 | |
---|
7 | #define PURPLE_REQUEST_HANDLE "purple_request" |
---|
8 | |
---|
9 | struct purple_data |
---|
10 | { |
---|
11 | PurpleAccount *account; |
---|
12 | |
---|
13 | GHashTable *input_requests; |
---|
14 | guint next_request_id; |
---|
15 | char *chat_list_server; |
---|
16 | GSList *filetransfers; |
---|
17 | }; |
---|
18 | |
---|
19 | #endif /* !BPURPLE_H */ |
---|
Note: See
TracBrowser
for help on using the repository browser.