Mercurial > pidgin.yaz
changeset 29214:24b341ae63f7
msn: Use the PurpleXfer size if available.
This fixes file transfers not being detected as complete when there is
no file on the system (the receiving end isn't able to tell how much
data to expect).
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Mon, 28 Dec 2009 21:19:51 +0000 |
parents | ac6c2dda0eae |
children | 07ec4a569da1 |
files | libpurple/protocols/msn/slplink.c |
diffstat | 1 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/msn/slplink.c Wed Dec 23 07:47:14 2009 +0000 +++ b/libpurple/protocols/msn/slplink.c Mon Dec 28 21:19:51 2009 +0000 @@ -669,7 +669,7 @@ #define MAX_FILE_NAME_LEN 0x226 static gchar * -gen_context(const char *file_name, const char *file_path) +gen_context(PurpleXfer *xfer, const char *file_name, const char *file_path) { struct stat st; gsize size = 0; @@ -683,7 +683,10 @@ glong uni_len = 0; gsize len; - if (g_stat(file_path, &st) == 0) + if (xfer) + size = purple_xfer_get_size(xfer); + + if (size == 0 && g_stat(file_path, &st) == 0) size = st.st_size; if(!file_name) { @@ -761,7 +764,7 @@ xfer->data = slpcall; - context = gen_context(fn, fp); + context = gen_context(xfer, fn, fp); msn_slpcall_invite(slpcall, MSN_FT_GUID, 2, context);