| 68 void msim_user_free(MsimUser *user) |
68 void msim_user_free(MsimUser *user) |
| 69 { |
69 { |
| 70 if (!user) |
70 if (!user) |
| 71 return; |
71 return; |
| 72 |
72 |
| 73 purple_util_fetch_url_cancel(user->url_data); |
73 if (user->url_data != NULL) |
| |
74 purple_util_fetch_url_cancel(user->url_data); |
| 74 |
75 |
| 75 g_free(user->client_info); |
76 g_free(user->client_info); |
| 76 g_free(user->gender); |
77 g_free(user->gender); |
| 77 g_free(user->location); |
78 g_free(user->location); |
| 78 g_free(user->headline); |
79 g_free(user->headline); |
| 377 /* TODO: use ETag for checksum */ |
378 /* TODO: use ETag for checksum */ |
| 378 previous_url = purple_buddy_icons_get_checksum_for_user(user->buddy); |
379 previous_url = purple_buddy_icons_get_checksum_for_user(user->buddy); |
| 379 |
380 |
| 380 /* Only download if URL changed */ |
381 /* Only download if URL changed */ |
| 381 if (!previous_url || !g_str_equal(previous_url, user->image_url)) { |
382 if (!previous_url || !g_str_equal(previous_url, user->image_url)) { |
| |
383 if (user->url_data != NULL) |
| |
384 purple_util_fetch_url_cancel(user->url_data); |
| 382 user->url_data = purple_util_fetch_url(user->image_url, TRUE, NULL, TRUE, msim_downloaded_buddy_icon, (gpointer)user); |
385 user->url_data = purple_util_fetch_url(user->image_url, TRUE, NULL, TRUE, msim_downloaded_buddy_icon, (gpointer)user); |
| 383 } |
386 } |
| 384 } else if (g_str_equal(key_str, "LastImageUpdated")) { |
387 } else if (g_str_equal(key_str, "LastImageUpdated")) { |
| 385 /* TODO: use somewhere */ |
388 /* TODO: use somewhere */ |
| 386 user->last_image_updated = atol(value_str); |
389 user->last_image_updated = atol(value_str); |