Mon, 12 Sep 2016 08:55:35 -0500
gg: Protect against issues when closing while connecting
Since the GIOStream is cancelled when data is freed, any cancelled
callbacks are called after such data is freed. This patch guards against
cancelled calls by safely returning without accessing any freed data if
the connection has been cancelled (aka closed).
Futhermore, if GG tries to connect and is quickly disconnected,
ggp_tcpsocket_close() is never called. As far as I can tell, it's an
existing bug, but PurpleSockets both work differently when closing and
are closed by the connection if any leak. So the issue wasn't a major
problem. This patch lessens the issue by guarding against it, but it
should be fixed at some point.
|
33100
9c6db78cce0b
Fixup READMEs a bit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23325
diff
changeset
|
1 | If you plan to use Pidgin, Finch and libpurple from our Mercurial repository, |
|
16237
606a402fea87
Beat some older documentation into submission.
Richard Laager <rlaager@pidgin.im>
parents:
16128
diff
changeset
|
2 | PLEASE read this message in its entirety! |
| 5640 | 3 | |
|
16237
606a402fea87
Beat some older documentation into submission.
Richard Laager <rlaager@pidgin.im>
parents:
16128
diff
changeset
|
4 | Pidgin, Finch, and libpurple are a fast-moving project with a somewhat regular |
|
33100
9c6db78cce0b
Fixup READMEs a bit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23325
diff
changeset
|
5 | release schedule. Due to the rate of development, the code in our Mercurial |
|
16237
606a402fea87
Beat some older documentation into submission.
Richard Laager <rlaager@pidgin.im>
parents:
16128
diff
changeset
|
6 | repository undergoes frequent bursts of massive changes, often leaving behind |
| 16128 | 7 | brokenness and partial functionality while the responsible developers rewrite |
| 8 | some portion of code or seek to add new features. | |
| 5640 | 9 | |
|
33100
9c6db78cce0b
Fixup READMEs a bit.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
23325
diff
changeset
|
10 | What this all boils down to is that the code in our Mercurial repository _WILL_ |
|
16237
606a402fea87
Beat some older documentation into submission.
Richard Laager <rlaager@pidgin.im>
parents:
16128
diff
changeset
|
11 | sometimes be broken. Because of this, we ask that users who are not interested |
|
606a402fea87
Beat some older documentation into submission.
Richard Laager <rlaager@pidgin.im>
parents:
16128
diff
changeset
|
12 | in personally tracking down bugs and fixing them (without a lot of |
|
606a402fea87
Beat some older documentation into submission.
Richard Laager <rlaager@pidgin.im>
parents:
16128
diff
changeset
|
13 | assistance from the developers!) use only released versions. Since releases |
|
606a402fea87
Beat some older documentation into submission.
Richard Laager <rlaager@pidgin.im>
parents:
16128
diff
changeset
|
14 | will be made often, this should not prevent anyone from using the newest, |
|
606a402fea87
Beat some older documentation into submission.
Richard Laager <rlaager@pidgin.im>
parents:
16128
diff
changeset
|
15 | shiniest features -- but it will prevent users from having to deal with ugly |
|
606a402fea87
Beat some older documentation into submission.
Richard Laager <rlaager@pidgin.im>
parents:
16128
diff
changeset
|
16 | development bugs that we already know about but haven't gotten around to fixing. |
| 5640 | 17 | |
|
16237
606a402fea87
Beat some older documentation into submission.
Richard Laager <rlaager@pidgin.im>
parents:
16128
diff
changeset
|
18 | If you are interested in hacking on Pidgin, Finch, and/or libpurple, please |
|
33955
55aa58076485
Use https URLs for pidgin.im and developer.pidgin.im.
Mark Doliner <mark@kingant.net>
parents:
33100
diff
changeset
|
19 | check out the information available at: https://developer.pidgin.im |
| 5640 | 20 | |
| 35391 | 21 | By far the best documentation, however, is the documented code. You can pass |
|
35592
a8782ded6acc
Mention where the documentation lives.
Mark Doliner <mark@kingant.net>
parents:
35391
diff
changeset
|
22 | "--enable-gtk-doc" to ./configure then run "make" in the source tree to |
|
a8782ded6acc
Mention where the documentation lives.
Mark Doliner <mark@kingant.net>
parents:
35391
diff
changeset
|
23 | generate pretty documentation in the doc/reference/*/html directories. |
|
a8782ded6acc
Mention where the documentation lives.
Mark Doliner <mark@kingant.net>
parents:
35391
diff
changeset
|
24 | Otherwise (or even if you do!), the header files for each subsystem contain |
|
a8782ded6acc
Mention where the documentation lives.
Mark Doliner <mark@kingant.net>
parents:
35391
diff
changeset
|
25 | documentation for the functions they contain. For instance, conversation.h |
|
a8782ded6acc
Mention where the documentation lives.
Mark Doliner <mark@kingant.net>
parents:
35391
diff
changeset
|
26 | contains documentation for the entire purple_conversation_* API, and account.h |
|
a8782ded6acc
Mention where the documentation lives.
Mark Doliner <mark@kingant.net>
parents:
35391
diff
changeset
|
27 | contains documentation for the purple_account_* API. |
| 5640 | 28 | |
|
16237
606a402fea87
Beat some older documentation into submission.
Richard Laager <rlaager@pidgin.im>
parents:
16128
diff
changeset
|
29 | If you have questions, please feel free to contact the Pidgin, Finch, and |
|
23325
a374a26fe217
Use "email" and "Email" consistently. This is potentially controversial,
Richard Laager <rlaager@pidgin.im>
parents:
16404
diff
changeset
|
30 | libpurple developers by email at devel@pidgin.im or on IRC at irc.freenode.net |
| 16128 | 31 | in #pidgin. Please do as much homework as you can before contacting us; the |
|
16237
606a402fea87
Beat some older documentation into submission.
Richard Laager <rlaager@pidgin.im>
parents:
16128
diff
changeset
|
32 | more you know about your question, the faster and more effectively we can help! |
| 5640 | 33 | |
|
33955
55aa58076485
Use https URLs for pidgin.im and developer.pidgin.im.
Mark Doliner <mark@kingant.net>
parents:
33100
diff
changeset
|
34 | Patches should be posted as Trac tickets at: https://developer.pidgin.im |