"identicon",
"monsterid",
"wavatar",
- "retro"
+ "retro",
+ "robohash",
+ "pagan"
};
-static guint update_hook_id;
-static guint render_hook_id;
+static gulong update_hook_id = HOOK_NONE;
+static gulong render_hook_id = HOOK_NONE;
static gchar *cache_dir = NULL; /* dir-separator terminated */
static gboolean libravatar_header_update_hook(gpointer source, gpointer data)
static gchar *federated_base_url_from_address(const gchar *address)
{
-#if (defined USE_GNUTLS && GLIB_CHECK_VERSION(2,22,0))
+#if defined USE_GNUTLS
gchar *base_url = NULL;
if (!libravatarprefs.allow_federated) {
return g_strconcat(cache_dir, md5, NULL);
}
-static size_t write_image_data_cb(void *ptr, size_t size, size_t nmemb, void *stream)
-{
- size_t written = fwrite(ptr, size, nmemb, (FILE *)stream);
- debug_print("received %zu bytes from avatar server\n", written);
-
- return written;
-}
-
static GtkWidget *image_widget_from_url(const gchar *url, const gchar *md5)
{
GtkWidget *image = NULL;
base, md5, AVATAR_SIZE,
def_mode[libravatarprefs.default_mode - 10]);
} else if (libravatarprefs.default_mode == DEF_MODE_URL) {
- return g_strdup_printf("%s/%s?s=%u&d=%s",
- base, md5, AVATAR_SIZE,
- libravatarprefs.default_mode_url);
+ gchar *escaped = g_uri_escape_string(libravatarprefs.default_mode_url, "/", TRUE);
+ gchar *url = g_strdup_printf("%s/%s?s=%u&d=%s",
+ base, md5, AVATAR_SIZE, escaped);
+ g_free(escaped);
+ return url;
} else if (libravatarprefs.default_mode == DEF_MODE_NONE) {
- return g_strdup_printf("%s/%s?s=%u",
+ return g_strdup_printf("%s/%s?s=%u&d=404",
base, md5, AVATAR_SIZE);
}
static void unregister_hooks()
{
- if (render_hook_id != -1) {
+ if (render_hook_id != HOOK_NONE) {
hooks_unregister_hook(AVATAR_IMAGE_RENDER_HOOKLIST,
render_hook_id);
- render_hook_id = -1;
+ render_hook_id = HOOK_NONE;
}
- if (update_hook_id != -1) {
+ if (update_hook_id != HOOK_NONE) {
hooks_unregister_hook(AVATAR_HEADER_UPDATE_HOOKLIST,
update_hook_id);
- update_hook_id = -1;
+ update_hook_id = HOOK_NONE;
}
}
update_hook_id = hooks_register_hook(AVATAR_HEADER_UPDATE_HOOKLIST,
libravatar_header_update_hook,
NULL);
- if (update_hook_id == -1) {
+ if (update_hook_id == HOOK_NONE) {
*error = g_strdup(_("Failed to register avatar header update hook"));
return -1;
}
render_hook_id = hooks_register_hook(AVATAR_IMAGE_RENDER_HOOKLIST,
libravatar_image_render_hook,
NULL);
- if (render_hook_id == -1) {
+ if (render_hook_id == HOOK_NONE) {
unregister_hooks();
*error = g_strdup(_("Failed to register avatar image render hook"));
return -1;