comparison libpurple/protocols/jabber/si.c @ 31449:1c660ba17ba1

propagate from branch 'im.pidgin.pidgin' (head 6f879669a6513a5c40335bbaefe842389a92b39e) to branch 'im.pidgin.cpw.qulogic.cairo' (head 4ab0199887f74442673fd46dcbb662bc7f070bc4)
author Marcus Lundblad <ml@update.uu.se>
date Sun, 21 Nov 2010 20:30:12 +0000
parents 372bec4b2ff9
children 29b4f2c52533 a8cc50c2279f
comparison
equal deleted inserted replaced
31448:9a705087d64e 31449:1c660ba17ba1
981 981
982 static void 982 static void
983 jabber_si_xfer_ibb_error_cb(JabberIBBSession *sess) 983 jabber_si_xfer_ibb_error_cb(JabberIBBSession *sess)
984 { 984 {
985 PurpleXfer *xfer = (PurpleXfer *) jabber_ibb_session_get_user_data(sess); 985 PurpleXfer *xfer = (PurpleXfer *) jabber_ibb_session_get_user_data(sess);
986 JabberStream *js = jabber_ibb_session_get_js(sess);
987 PurpleConnection *gc = js->gc;
988 PurpleAccount *account = purple_connection_get_account(gc);
989 986
990 purple_debug_error("jabber", "an error occurred during IBB file transfer\n"); 987 purple_debug_error("jabber", "an error occurred during IBB file transfer\n");
991 purple_xfer_error(purple_xfer_get_type(xfer), account,
992 jabber_ibb_session_get_who(sess),
993 _("An error occurred on the in-band bytestream transfer\n"));
994 purple_xfer_cancel_remote(xfer); 988 purple_xfer_cancel_remote(xfer);
995 } 989 }
996 990
997 static void 991 static void
998 jabber_si_xfer_ibb_closed_cb(JabberIBBSession *sess) 992 jabber_si_xfer_ibb_closed_cb(JabberIBBSession *sess)
999 { 993 {
1000 PurpleXfer *xfer = (PurpleXfer *) jabber_ibb_session_get_user_data(sess); 994 PurpleXfer *xfer = (PurpleXfer *) jabber_ibb_session_get_user_data(sess);
1001 JabberStream *js = jabber_ibb_session_get_js(sess);
1002 PurpleConnection *gc = js->gc;
1003 PurpleAccount *account = purple_connection_get_account(gc);
1004 995
1005 purple_debug_info("jabber", "the remote user closed the transfer\n"); 996 purple_debug_info("jabber", "the remote user closed the transfer\n");
1006 if (purple_xfer_get_bytes_remaining(xfer) > 0) { 997 if (purple_xfer_get_bytes_remaining(xfer) > 0) {
1007 purple_xfer_error(purple_xfer_get_type(xfer), account,
1008 jabber_ibb_session_get_who(sess), _("Transfer was closed."));
1009 purple_xfer_cancel_remote(xfer); 998 purple_xfer_cancel_remote(xfer);
1010 } else { 999 } else {
1011 purple_xfer_set_completed(xfer, TRUE); 1000 purple_xfer_set_completed(xfer, TRUE);
1012 purple_xfer_end(xfer); 1001 purple_xfer_end(xfer);
1013 } 1002 }
1135 1124
1136 static void 1125 static void
1137 jabber_si_xfer_ibb_opened_cb(JabberIBBSession *sess) 1126 jabber_si_xfer_ibb_opened_cb(JabberIBBSession *sess)
1138 { 1127 {
1139 PurpleXfer *xfer = (PurpleXfer *) jabber_ibb_session_get_user_data(sess); 1128 PurpleXfer *xfer = (PurpleXfer *) jabber_ibb_session_get_user_data(sess);
1140 JabberStream *js = jabber_ibb_session_get_js(sess);
1141 PurpleConnection *gc = js->gc;
1142 PurpleAccount *account = purple_connection_get_account(gc);
1143 1129
1144 if (jabber_ibb_session_get_state(sess) == JABBER_IBB_SESSION_OPENED) { 1130 if (jabber_ibb_session_get_state(sess) == JABBER_IBB_SESSION_OPENED) {
1145 purple_xfer_start(xfer, -1, NULL, 0); 1131 purple_xfer_start(xfer, -1, NULL, 0);
1146 purple_xfer_prpl_ready(xfer); 1132 purple_xfer_prpl_ready(xfer);
1147 } else { 1133 } else {
1148 /* error */ 1134 /* error */
1149 purple_xfer_error(purple_xfer_get_type(xfer), account,
1150 jabber_ibb_session_get_who(sess),
1151 _("Failed to open in-band bytestream"));
1152 purple_xfer_end(xfer); 1135 purple_xfer_end(xfer);
1153 } 1136 }
1154 } 1137 }
1155 1138
1156 static void 1139 static void
1664 return xfer; 1647 return xfer;
1665 } 1648 }
1666 1649
1667 void jabber_si_xfer_send(PurpleConnection *gc, const char *who, const char *file) 1650 void jabber_si_xfer_send(PurpleConnection *gc, const char *who, const char *file)
1668 { 1651 {
1669 JabberStream *js;
1670
1671 PurpleXfer *xfer; 1652 PurpleXfer *xfer;
1672
1673 js = gc->proto_data;
1674 1653
1675 xfer = jabber_si_new_xfer(gc, who); 1654 xfer = jabber_si_new_xfer(gc, who);
1676 1655
1677 if (file) 1656 if (file)
1678 purple_xfer_request_accepted(xfer, file); 1657 purple_xfer_request_accepted(xfer, file);