pidgin/pidgin

Implement SNI support for the gnutls SSL plugin.
release-2.x.y
2019-12-16, Mihai Moldovan
6dba8046e1b1
Implement SNI support for the gnutls SSL plugin.

Note that gnutls is picky in regard to what it accepts as the server name - it
MUST be a domain name. IP addresses are not supported according to the
documentation.

Hence, filter out IP addresses and hope that whatever is not recognized as
such an address is actually a domain name. This will probably fail for more
exotic addresses (especially in IPv6 realm), but wiring up a full-blown parser
is too much effort and SSL plugins are not part of purple-3 anyway.

Fixes #17300
/** @page notify-signals Notification Signals
@signals
@signal displaying-userinfo
@signal displaying-email-notification
@signal displaying-emails-notification
@endsignals
@see notify.h
@signaldef displaying-userinfo
@signalproto
void (*displaying_userinfo)(PurpleAccount *account, const char *who, PurpleNotifyUserInfo *user_info);
@endsignalproto
@signaldesc
Emitted before userinfo is handed to the UI to display.
@a user_info can be manipulated via the PurpleNotifyUserInfo API in notify.c.
@note
If adding a PurpleNotifyUserInfoEntry, be sure not to free it -- PurpleNotifyUserInfo assumes responsibility for its objects.
@param account The account on which the info was obtained.
@param who The name of the buddy whose info is to be displayed.
@param user_info The information to be displayed, as PurpleNotifyUserInfoEntry objects
@endsignaldef
@signaldef displaying-email-notification
@signalproto
void (*displaying_email_notification)(const char *subject,
const char *from,
const char *to,
const char *url);
@endsignalproto
@signaldesc
Emitted before notification of a single email is handed to the UI to display.
@param subject Subject of email being notified of.
@param from Who the email is from.
@param to Who the email is to.
@param url A url to view the email.
@since 2.1.0
@endsignaldef
@signaldef displaying-emails-notification
@signalproto
void (*displaying_emails_notification)(const char **subjects,
const char **froms,
const char **tos,
const char **urls,
guint count);
@endsignalproto
@signaldesc
Emitted before notification of multiple emails is handed to the UI to display.
@param subjects Subjects of emails being notified of.
@param froms Who the emails are from.
@param tos Who the emails are to.
@param urls The urls to view the emails.
@param count Number of emails being notified of.
@since 2.1.0
@endsignaldef
*/
// vim: syntax=c.doxygen tw=75 et