/* priave session handling functions, called by libmeanwhile callbacks */ void MeanwhileSession::handleSessionStateChange( enum mwSessionState state, gpointer data) { HERE; this->state = state; switch (state) { case mwSession_STARTING: case mwSession_HANDSHAKE: case mwSession_HANDSHAKE_ACK: case mwSession_LOGIN: case mwSession_LOGIN_CONT: case mwSession_LOGIN_ACK: break; case mwSession_LOGIN_REDIR: handleRedirect((char *)data); break; case mwSession_STARTED: { struct mwUserStatus stat = { mwStatus_ACTIVE, 0, 0L }; mwSession_setUserStatus(session, &stat); struct mwLoginInfo *logininfo = mwSession_getLoginInfo(session); if (logininfo) { account->myself()->setNickName(getNickName(logininfo)); } syncContactsFromServer(); } break; case mwSession_STOPPING: { unsigned int info = GPOINTER_TO_UINT(data); if (info & ERR_FAILURE) { if (info == INCORRECT_LOGIN) account->password().setWrong(); char *reason = mwError(info); emit serverNotification(QString(reason)); free(reason); } } emit sessionStateChange( static_cast<MeanwhileProtocol *>(account->protocol()) ->statusOffline); break; case mwSession_STOPPED: break; case mwSession_UNKNOWN: default: mwDebug() << "Unhandled state change " << state << endl; } }
void CSametimeProto::InitConference() { debugLog(_T("CSametimeProto::InitConference()")); my_login_info = mwSession_getLoginInfo(session); service_conference = mwServiceConference_new(session, &mwConference_handler); mwSession_addService(session, (struct mwService*)service_conference); HookProtoEvent(ME_GC_EVENT, &CSametimeProto::GcEventHook); }
const char *mwPlace_getTitle(struct mwPlace *place) { g_return_val_if_fail(place != NULL, NULL); if(! place->title) { struct mwSession *session; struct mwLoginInfo *li; session = mwService_getSession(MW_SERVICE(place->service)); li = mwSession_getLoginInfo(session); place->title = place_generate_title(li? li->user_name: NULL); } return place->title; }