int mwFileTransfer_accept(struct mwFileTransfer *ft) { struct mwServiceFileTransfer *srvc; struct mwFileTransferHandler *handler; int ret; g_return_val_if_fail(ft != NULL, -1); g_return_val_if_fail(ft->channel != NULL, -1); g_return_val_if_fail(mwFileTransfer_isPending(ft), -1); g_return_val_if_fail(mwChannel_isIncoming(ft->channel), -1); g_return_val_if_fail(mwChannel_isState(ft->channel, mwChannel_WAIT), -1); g_return_val_if_fail(ft->service != NULL, -1); srvc = ft->service; g_return_val_if_fail(srvc->handler != NULL, -1); handler = srvc->handler; ret = mwChannel_accept(ft->channel); if(ret) { mwFileTransfer_close(ft, ERR_FAILURE); } else { ft_state(ft, mwFileTransfer_OPEN); if(handler->ft_opened) handler->ft_opened(ft); } return ret; }
int mwConference_accept(struct mwConference *conf) { /* - if conference is not INVITED, return -1 - accept the conference channel - send an empty JOIN message */ struct mwChannel *chan; int ret; g_return_val_if_fail(conf != NULL, -1); g_return_val_if_fail(conf->state == mwConference_INVITED, -1); chan = conf->channel; ret = mwChannel_accept(chan); if(! ret) ret = mwChannel_sendEncrypted(chan, msg_JOIN, NULL, FALSE); return ret; }