Mercurial > pidgin
comparison src/protocols/oscar/ft.c @ 4895:9e50494f63a1
[gaim-migrate @ 5227]
IM image support.
javabsp did most of the hard work, I just cleaned it up and fixed the bugs ;-)
committer: Tailor Script <tailor@pidgin.im>
author | Nathan Walp <nwalp@pidgin.im> |
---|---|
date | Wed, 26 Mar 2003 06:19:44 +0000 |
parents | 26837f462a66 |
children | 6c02ee2b471d |
comparison
equal
deleted
inserted
replaced
4894:eea963dcd1ed | 4895:9e50494f63a1 |
---|---|
670 int recvd = 0; | 670 int recvd = 0; |
671 int i, isawaymsg; | 671 int i, isawaymsg; |
672 | 672 |
673 isawaymsg = flags & 0x0001; | 673 isawaymsg = flags & 0x0001; |
674 | 674 |
675 if (!(msg = calloc(1, payloadlength+1))) | 675 if (!(msg = calloc(1, payloadlength+1))) { |
676 free(snptr); | |
676 return -ENOMEM; | 677 return -ENOMEM; |
678 } | |
677 | 679 |
678 while (payloadlength - recvd) { | 680 while (payloadlength - recvd) { |
679 if (payloadlength - recvd >= 1024) | 681 if (payloadlength - recvd >= 1024) |
680 i = aim_recv(conn->fd, &msg[recvd], 1024); | 682 i = aim_recv(conn->fd, &msg[recvd], 1024); |
681 else | 683 else |
682 i = aim_recv(conn->fd, &msg[recvd], payloadlength - recvd); | 684 i = aim_recv(conn->fd, &msg[recvd], payloadlength - recvd); |
683 if (i <= 0) { | 685 if (i <= 0) { |
684 free(msg); | 686 free(msg); |
687 free(snptr); | |
685 return -1; | 688 return -1; |
686 } | 689 } |
687 recvd = recvd + i; | 690 recvd = recvd + i; |
688 if ((userfunc = aim_callhandler(sess, conn, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_IMAGETRANSFER))) | 691 if ((userfunc = aim_callhandler(sess, conn, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_IMAGETRANSFER))) |
689 ret = userfunc(sess, &fr, snptr, (double)recvd / payloadlength); | 692 ret = userfunc(sess, &fr, snptr, (double)recvd / payloadlength); |
692 if ((userfunc = aim_callhandler(sess, conn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMINCOMING))) | 695 if ((userfunc = aim_callhandler(sess, conn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMINCOMING))) |
693 ret = userfunc(sess, &fr, snptr, msg, payloadlength, encoding, isawaymsg); | 696 ret = userfunc(sess, &fr, snptr, msg, payloadlength, encoding, isawaymsg); |
694 | 697 |
695 free(msg); | 698 free(msg); |
696 } | 699 } |
700 | |
701 free(snptr); | |
697 | 702 |
698 return ret; | 703 return ret; |
699 } | 704 } |
700 | 705 |
701 /** | 706 /** |