# HG changeset patch # User Mark Doliner # Date 1165874598 0 # Node ID 5a764819161103658c392f381373ce76b17edbfc # Parent 50f263712df150e54220b1d1ca9b3d9cc0479192 [gaim-migrate @ 17964] Minor cleanup. No functionality change. Someone at work asked me if I just sit around and audit code all day. committer: Tailor Script diff -r 50f263712df1 -r 5a7648191611 libgaim/protocols/yahoo/yahoo_picture.c --- a/libgaim/protocols/yahoo/yahoo_picture.c Mon Dec 11 19:44:35 2006 +0000 +++ b/libgaim/protocols/yahoo/yahoo_picture.c Mon Dec 11 22:03:18 2006 +0000 @@ -345,7 +345,7 @@ static void yahoo_send_picture_update_foreach(gpointer key, gpointer value, gpointer data) { - char *who = key; + const char *who = key; YahooFriend *f = value; struct yspufe *d = data; @@ -438,8 +438,6 @@ GaimAccount *account; struct yahoo_data *yd; - g_return_if_fail(d != NULL); - gc = d->gc; account = gaim_connection_get_account(gc); yd = gc->proto_data; @@ -448,7 +446,7 @@ yd->buddy_icon_connect_data = NULL; if (source < 0) { - gaim_debug_error("yahoo", "Buddy icon upload failed, no file desc.\n"); + gaim_debug_error("yahoo", "Buddy icon upload failed: %s\n", error_message); yahoo_buddy_icon_upload_data_free(d); return; } @@ -500,36 +498,23 @@ { GaimAccount *account = gaim_connection_get_account(gc); struct yahoo_data *yd = gc->proto_data; - GaimProxyConnectData *connect_data = NULL; - g_return_if_fail(d != NULL); - - if (yd->buddy_icon_connect_data) { + if (yd->buddy_icon_connect_data != NULL) { /* Cancel any in-progress buddy icon upload */ gaim_proxy_connect_cancel(yd->buddy_icon_connect_data); yd->buddy_icon_connect_data = NULL; } - if (yd->jp) { - if ((connect_data = gaim_proxy_connect(NULL, account, gaim_account_get_string(account, "xferjp_host", YAHOOJP_XFER_HOST), - gaim_account_get_int(account, "xfer_port", YAHOO_XFER_PORT), - yahoo_buddy_icon_upload_connected, d)) == NULL) - { - gaim_debug_error("yahoo", "Uploading our buddy icon failed to connect.\n"); - yahoo_buddy_icon_upload_data_free(d); - } - } else { - if ((connect_data = gaim_proxy_connect(NULL, account, gaim_account_get_string(account, "xfer_host", YAHOO_XFER_HOST), - gaim_account_get_int(account, "xfer_port", YAHOO_XFER_PORT), - yahoo_buddy_icon_upload_connected, d)) == NULL) - { - gaim_debug_error("yahoo", "Uploading our buddy icon failed to connect.\n"); - yahoo_buddy_icon_upload_data_free(d); - } - } + yd->buddy_icon_connect_data = gaim_proxy_connect(NULL, account, + yd->jp ? gaim_account_get_string(account, "xferjp_host", YAHOOJP_XFER_HOST) + : gaim_account_get_string(account, "xfer_host", YAHOO_XFER_HOST), + gaim_account_get_int(account, "xfer_port", YAHOO_XFER_PORT), + yahoo_buddy_icon_upload_connected, d); - if (connect_data) { - yd->buddy_icon_connect_data = connect_data; + if (yd->buddy_icon_connect_data == NULL) + { + gaim_debug_error("yahoo", "Uploading our buddy icon failed to connect.\n"); + yahoo_buddy_icon_upload_data_free(d); } } @@ -537,61 +522,56 @@ { struct yahoo_data *yd = gc->proto_data; GaimAccount *account = gc->account; - FILE *file; - struct stat st; + gchar *icondata; + gsize len; + GError *error = NULL; if (iconfile == NULL) { - if (yd->picture_url) - g_free(yd->picture_url); + g_free(yd->picture_url); yd->picture_url = NULL; gaim_account_set_string(account, YAHOO_PICURL_SETTING, NULL); gaim_account_set_int(account, YAHOO_PICCKSUM_SETTING, 0); gaim_account_set_int(account, YAHOO_PICEXPIRE_SETTING, 0); if (yd->logged_in) + /* Tell everyone we ain't got one no more */ yahoo_send_picture_update(gc, 0); - /* TODO: check if we're connected and tell everyone we ain't not one no more */ - } else if (!g_stat(iconfile, &st)) { - file = g_fopen(iconfile, "rb"); - if (file) { - GString *s = g_string_sized_new(st.st_size); - size_t len; - struct yahoo_buddy_icon_upload_data *d; - int oldcksum = gaim_account_get_int(account, YAHOO_PICCKSUM_SETTING, 0); - int expire = gaim_account_get_int(account, YAHOO_PICEXPIRE_SETTING, 0); - const char *oldurl = gaim_account_get_string(account, YAHOO_PICURL_SETTING, NULL); - len = fread(s->str, 1, st.st_size, file); - fclose(file); - g_string_set_size(s, len); - yd->picture_checksum = g_string_hash(s); + } else if (g_file_get_contents(iconfile, &icondata, &len, &error)) { + GString *s = g_string_new_len(icondata, len); + struct yahoo_buddy_icon_upload_data *d; + int oldcksum = gaim_account_get_int(account, YAHOO_PICCKSUM_SETTING, 0); + int expire = gaim_account_get_int(account, YAHOO_PICEXPIRE_SETTING, 0); + const char *oldurl = gaim_account_get_string(account, YAHOO_PICURL_SETTING, NULL); + + yd->picture_checksum = g_string_hash(s); - if ((yd->picture_checksum == oldcksum) && (expire > (time(NULL) + 60*60*24)) && - oldcksum && expire && oldurl) { - gaim_debug_misc("yahoo", "buddy icon is up to date. Not reuploading.\n"); - g_string_free(s, TRUE); - if (yd->picture_url) - g_free(yd->picture_url); - yd->picture_url = g_strdup(oldurl); - return; - } + if ((yd->picture_checksum == oldcksum) && + (expire > (time(NULL) + 60*60*24)) && oldurl) + { + gaim_debug_misc("yahoo", "buddy icon is up to date. Not reuploading.\n"); + g_string_free(s, TRUE); + g_free(yd->picture_url); + yd->picture_url = g_strdup(oldurl); + return; + } - d = g_new0(struct yahoo_buddy_icon_upload_data, 1); - d->gc = gc; - d->str = s; - d->fd = -1; - d->filename = g_strdup(iconfile); + d = g_new0(struct yahoo_buddy_icon_upload_data, 1); + d->gc = gc; + d->str = s; + d->fd = -1; + d->filename = g_strdup(iconfile); - if (!yd->logged_in) { - yd->picture_upload_todo = d; - return; - } + if (!yd->logged_in) { + yd->picture_upload_todo = d; + return; + } - yahoo_buddy_icon_upload(gc, d); - } else - gaim_debug_error("yahoo", - "Can't open buddy icon file!\n"); + yahoo_buddy_icon_upload(gc, d); + } else gaim_debug_error("yahoo", - "Can't stat buddy icon file!\n"); -} + "Could not read buddy icon file '%s': %s\n", + iconfile, error->message); + g_error_free(error); + }