static void recv_file_init(PurpleXfer* xfer) { qq_account* ac = purple_connection_get_protocol_data(purple_account_get_connection(xfer->account)); LwqqClient* lc = ac->qq; LwqqMsgFileMessage* file = xfer->data; const char* filename = purple_xfer_get_local_filename(xfer); xfer->start_time = time(NULL); LwqqAsyncEvent* ev = lwqq_msg_accept_file(lc,file,filename); if(ev == NULL){ lwqq_puts("file trans error "); purple_xfer_error(PURPLE_XFER_RECEIVE, ac->account, purple_xfer_get_remote_user(xfer), "接受文件失败"); purple_xfer_cancel_local(xfer); return; } lwqq_async_event_set_progress(ev,file_trans_on_progress,xfer); lwqq_async_add_event_listener(ev,_C_(p,recv_file_complete,xfer)); }
static void recv_file_init(PurpleXfer* xfer) { qq_account* ac = purple_connection_get_protocol_data(purple_account_get_connection(xfer->account)); LwqqClient* lc = ac->qq; LwqqMsgFileMessage* file = xfer->data; const char* filename = purple_xfer_get_local_filename(xfer); xfer->start_time = time(NULL); LwqqAsyncEvent* ev = lwqq_msg_accept_file(lc,file,filename); if(ev == NULL){ lwqq_puts("file trans error "); purple_xfer_error(PURPLE_XFER_RECEIVE, ac->account, purple_xfer_get_remote_user(xfer), _("Receive file failed")); purple_xfer_cancel_local(xfer); return; } LwqqHttpRequest* req = lwqq_async_event_get_conn(ev); lwqq_http_on_progress(req, file_trans_on_progress, xfer); lwqq_http_set_option(req, LWQQ_HTTP_CANCELABLE,1L); lwqq_async_add_event_listener(ev,_C_(2p,recv_file_complete,xfer,ev)); }