talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit e33f136772170acc1d4cd8c370f355bea67cf3b0
parent 5d33b9375ad270c0b9bb40afaf3967b60c57d183
Author: Ricardo Mones <ricardo@mones.org>
Date:   Sun, 27 Apr 2014 02:51:39 +0200

Implement support for federated avatars

Diffstat:
Msrc/plugins/libravatar/TODO | 5-----
Msrc/plugins/libravatar/libravatar.c | 20++++++++++++++++----
2 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/src/plugins/libravatar/TODO b/src/plugins/libravatar/TODO @@ -1,13 +1,8 @@ Enhancements, possibilities and random ideas -------------------------------------------- -- Retrieve federated domain records (!) - Support federated IDN domains (??) (Claws Mail itself doesn't support it http://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=1670) -- Domain validation when searching for federated avatars, or at least - exclude some domains (eg.: localhost) (???) -- Check box to enable/disable domain validation (?) - http://data.iana.org/TLD/tlds-alpha-by-domain.txt may be useful. - Button for checking custom default URL is not 404 (!) check on apply (?) - Make it run in cache-less mode if cache dir cannot be created (??) - Only cache "mystery man" once for all hashes (what if changes) (?) diff --git a/src/plugins/libravatar/libravatar.c b/src/plugins/libravatar/libravatar.c @@ -31,6 +31,7 @@ #include "libravatar.h" #include "libravatar_prefs.h" #include "libravatar_missing.h" +#include "libravatar_federation.h" #include "prefs_common.h" #include "procheader.h" #include "procmsg.h" @@ -76,10 +77,21 @@ static gboolean libravatar_header_update_hook(gpointer source, gpointer data) static gchar *federated_base_url_from_address(const gchar *address) { - /* - TODO: no federation supported right now - Details on http://wiki.libravatar.org/running_your_own/ - */ +#if (defined USE_GNUTLS && GLIB_CHECK_VERSION(2,22,0)) + gchar *base_url = NULL; + + if (!libravatarprefs.allow_federated) { + debug_print("federated domains disabled by configuration\n"); + goto default_url; + } + + base_url = federated_url_for_address(address); + if (base_url != NULL) { + return base_url; + } + +default_url: +#endif return g_strdup(libravatarprefs.base_url); }