Opened 5 years ago

Last modified 5 years ago

#16251 new patch

[PATCH] SILC prpl fixes and enhancements

Reported by: priikone Owned by: elb
Milestone: Patches Needing Review Component: SILC
Version: 2.10.9 Keywords:


Enclosed patch adds support for SILC Toolkit 1.1.11 and 1.1.12 which brings a new default private message (IM) protection method by negotiating a secret key via SILC network. All private messages by default will be protected end-to-end.

It also enhances the silc_say() operation by handling different message types correctly and delivering them to correct window, if possible. Changes to it also fixes ticket #12263 by handling the command error messages correctly (it used to close the connection if command message error was received, which was incorrect). I was able to reproduce the problem and no longer can after this fix.

The patch also fixes or at least helps ticket #15170 by handling the command reply status value correctly in WHOIS command reply by using SILC_STATUS_IS_ERROR() macro. It also fixes userinfo retrieval when same nickname is used multiple times in the network (if same nick was used multiple times userinfo was never returned at all).

The patch also fixes tickets #13247, #12504 and probably others that crash in disconnect or re-connect. The basic problem was that silc_client_free() was called immediately after silc_client_stop() without giving chance for the library to actually stop, thus freeing memory underneath the library. Additionally, the library also handled the crypto library initialization/uninitialization which meant that in re-connect it was possible to uninitialize the crypto library underneath a new client which was attempting to re-connect. This is now fixed by using dont_register_crypto_library client parameter and registering the crypto library once when the prpl is initialized, and by giving silc_client_stop() chance to finish. I was able to reproduce the crashes and no longer can after these fixes.

The patch removes bunch of TODOs by using correct purple_notify_user_info_add_pair_plaintext() instead of _html().

Attachments (1)

pidgin.diff (13.6 KB) - added by datallah 5 years ago.
Patch from

Download all attachments as: .zip

Change History (3)

comment:1 Changed 5 years ago by priikone

Actually I can't attach the patch because trac gives some captcha error without giving chance to prove it's not spam. The diff is at

comment:2 Changed 5 years ago by datallah

  • Milestone set to Patches Needing Review

Changed 5 years ago by datallah

Note: See TracTickets for help on using tickets.
All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public. Do not post confidential information, especially passwords!