Mercurial > pidgin
comparison libpurple/protocols/mxit/formcmds.c @ 32672:3828a61c44da
A boring and large patch so I can merge heads.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Fri, 23 Dec 2011 08:21:58 +0000 |
parents | 9ad5fcde4af4 |
children |
comparison
equal
deleted
inserted
replaced
32671:0e69949b3e61 | 32672:3828a61c44da |
---|---|
23 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA | 23 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
24 */ | 24 */ |
25 | 25 |
26 | 26 |
27 #include "internal.h" | 27 #include "internal.h" |
28 #include <glib/gprintf.h> | 28 #include <glib.h> |
29 | 29 |
30 #include "purple.h" | 30 #include "purple.h" |
31 | 31 |
32 #include "protocol.h" | 32 #include "protocol.h" |
33 #include "mxit.h" | 33 #include "mxit.h" |
84 * @param error_message Descriptive error message | 84 * @param error_message Descriptive error message |
85 */ | 85 */ |
86 static void mxit_cb_ii_returned(PurpleUtilFetchUrlData* url_data, gpointer user_data, const gchar* url_text, gsize len, const gchar* error_message) | 86 static void mxit_cb_ii_returned(PurpleUtilFetchUrlData* url_data, gpointer user_data, const gchar* url_text, gsize len, const gchar* error_message) |
87 { | 87 { |
88 struct ii_url_request* iireq = (struct ii_url_request*) user_data; | 88 struct ii_url_request* iireq = (struct ii_url_request*) user_data; |
89 char* ii_data; | |
90 int* intptr = NULL; | 89 int* intptr = NULL; |
91 int id; | 90 int id; |
92 | 91 |
93 #ifdef MXIT_DEBUG_COMMANDS | 92 #ifdef MXIT_DEBUG_COMMANDS |
94 purple_debug_info(MXIT_PLUGIN_ID, "Inline Image returned from %s\n", iireq->url); | 93 purple_debug_info(MXIT_PLUGIN_ID, "Inline Image returned from %s\n", iireq->url); |
104 if (g_hash_table_lookup(iireq->mx->session->iimages, iireq->url)) { | 103 if (g_hash_table_lookup(iireq->mx->session->iimages, iireq->url)) { |
105 /* inline image found in the cache, so we just ignore this reply */ | 104 /* inline image found in the cache, so we just ignore this reply */ |
106 goto done; | 105 goto done; |
107 } | 106 } |
108 | 107 |
109 /* make a copy of the data */ | 108 /* we now have the inline image, store a copy in the imagestore */ |
110 ii_data = g_malloc(len); | 109 id = purple_imgstore_add_with_id(g_memdup(url_text, len), len, NULL); |
111 memcpy(ii_data, (const char*) url_text, len); | |
112 | |
113 /* we now have the inline image, store it in the imagestore */ | |
114 id = purple_imgstore_add_with_id(ii_data, len, NULL); | |
115 | 110 |
116 /* map the inline image id to purple image id */ | 111 /* map the inline image id to purple image id */ |
117 intptr = g_malloc(sizeof(int)); | 112 intptr = g_malloc(sizeof(int)); |
118 *intptr = id; | 113 *intptr = id; |
119 g_hash_table_insert(iireq->mx->session->iimages, iireq->url, intptr); | 114 g_hash_table_insert(iireq->mx->session->iimages, iireq->url, intptr); |
365 else { | 360 else { |
366 /* send the request for the inline image */ | 361 /* send the request for the inline image */ |
367 purple_debug_info(MXIT_PLUGIN_ID, "sending request for inline image '%s'\n", iireq->url); | 362 purple_debug_info(MXIT_PLUGIN_ID, "sending request for inline image '%s'\n", iireq->url); |
368 | 363 |
369 /* request the image (reference: "libpurple/util.h") */ | 364 /* request the image (reference: "libpurple/util.h") */ |
370 purple_util_fetch_url_request(iireq->url, TRUE, NULL, TRUE, NULL, FALSE, mxit_cb_ii_returned, iireq); | 365 purple_util_fetch_url(iireq->url, TRUE, NULL, TRUE, -1, mxit_cb_ii_returned, iireq); |
371 mx->img_count++; | 366 mx->img_count++; |
372 } | 367 } |
373 } | 368 } |
374 } | 369 } |
375 | 370 |