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 certificate-signals Certificate Signals
@signals
@signal certificate-stored
@signal certificate-deleted
@endsignals
@see certificate.h
<hr>
@signaldef certificate-stored
@signalproto
void (*certificate_stored)(PurpleCertificatePool *pool, const gchar *id, gpointer data);
@endsignalproto
@signaldesc
Emitted when a pool stores a certificate. Connect to the pool instance.
@param pool Pool the certificate has been stored into
@param id Key the certificate was stored under
@endsignaldef
@signaldef certificate-deleted
@signalproto
void (*certificate_deleted)(PurpleCertificatePool *pool, const gchar *id, gpointer data);
@endsignalproto
@signaldesc
Emitted when a pool deletes a certificate. Connect to the pool instance.
@param pool Pool the certificate was deleted from
@param id Key that was deleted
@endsignaldef
*/
// vim: syntax=c.doxygen tw=75 et