fix some typos. patch by Andreas Rönnquist
[claws.git] / src / plugins / libravatar / libravatar.c
index 780e9c95598851698f5b3776629e3e5b308fb89c..b733d26b304adc003edf4497b671e5ae85e7434d 100644 (file)
@@ -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"
@@ -69,6 +70,7 @@ static gboolean libravatar_header_update_hook(gpointer source, gpointer data)
 
                debug_print("libravatar added '%s'\n", a);
                procmsg_msginfo_add_avatar(acd->msginfo, AVATAR_LIBRAVATAR, a);
+               g_free(a);
        }
 
        return FALSE; /* keep getting */
@@ -76,10 +78,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);
 }
 
@@ -147,8 +160,8 @@ static GtkWidget *image_widget_from_url(const gchar *url, const gchar *md5)
        }
        curl_easy_setopt(curl, CURLOPT_URL, url);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_image_data_cb);
-       curl_easy_setopt(eh, CURLOPT_TIMEOUT, prefs_common_get_prefs()->io_timeout_secs);
-       curl_easy_setopt(eh, CURLOPT_NOSIGNAL, 1);
+       curl_easy_setopt(curl, CURLOPT_TIMEOUT, prefs_common_get_prefs()->io_timeout_secs);
+       curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
 
        filename = cache_name_for_md5(md5);
        file = fopen(filename, "wb");
@@ -181,7 +194,7 @@ static GtkWidget *image_widget_from_url(const gchar *url, const gchar *md5)
                if (filesize == 0)
                        missing_add_md5(libravatarmisses, md5);
        } else {
-               g_warning("could not open '%s' for writting\n", filename);
+               g_warning("could not open '%s' for writing\n", filename);
        }
        curl_easy_cleanup(curl);
        g_free(filename);
@@ -263,6 +276,7 @@ static gboolean libravatar_image_render_hook(gpointer source, gpointer data)
                        if (ar->image) /* previous plugin set one */
                                gtk_widget_destroy(ar->image);
                        ar->image = image;
+                       ar->type  = AVATAR_LIBRAVATAR;
                        return FALSE;
                }
                /* not cached copy: try network */
@@ -279,6 +293,7 @@ static gboolean libravatar_image_render_hook(gpointer source, gpointer data)
                                if (ar->image) /* previous plugin set one */
                                        gtk_widget_destroy(ar->image);
                                ar->image = image;
+                               ar->type  = AVATAR_LIBRAVATAR;
                        }
                }
                g_free(base);
@@ -442,7 +457,7 @@ const gchar *plugin_desc(void)
                 "info about libravatar at http://www.libravatar.org/. If you have\n"
                 "a gravatar.com profile but not a libravatar one, those will also\n"
                 "be retrieved (when redirections are allowed in plugin config).\n"
-                "Plugin config page it's available from main window at:\n"
+                "Plugin config page is available from main window at:\n"
                 "/Configuration/Preferences/Plugins/Libravatar.\n\n"
                 "This plugin uses libcurl to retrieve images, so if you're behind a\n"
                 "proxy please refer to curl(1) manpage for details on 'http_proxy'\n"