void CSametimeProto::InitMeanwhileServices() { debugLog(_T("InitMeanwhileServices() start")); if (options.encrypt_session) { mwSession_addCipher(session, mwCipher_new_RC2_128(session)); mwSession_addCipher(session, mwCipher_new_RC2_40(session)); } InitUserList(); InitMessaging(); InitFiles(); InitConference(); mwSession_setProperty(session, "PROTO_STRUCT_PTR", this, NULL); mwSession_setProperty(session, mwSession_AUTH_USER_ID, options.id, NULL); mwSession_setProperty(session, mwSession_AUTH_PASSWORD, options.pword, NULL); mwSession_setProperty(session, mwSession_CLIENT_TYPE_ID, (void*)options.client_id, NULL); if (options.use_old_default_client_ver) { mwSession_setProperty(session, mwSession_CLIENT_VER_MAJOR, GUINT_TO_POINTER(db_get_w(0, m_szModuleName, "ClientVersionMajor", MW_PROTOCOL_VERSION_MAJOR)), 0); mwSession_setProperty(session, mwSession_CLIENT_VER_MINOR, GUINT_TO_POINTER(db_get_w(0, m_szModuleName, "ClientVersionMinor", MW_PROTOCOL_VERSION_MINOR)), 0); } else { mwSession_setProperty(session, mwSession_CLIENT_VER_MAJOR, GUINT_TO_POINTER(db_get_w(0, m_szModuleName, "ClientVersionMajor", 0x001e)), 0); mwSession_setProperty(session, mwSession_CLIENT_VER_MINOR, GUINT_TO_POINTER(db_get_w(0, m_szModuleName, "ClientVersionMinor", 0x196f)), 0); } }
void CSametimeProto::InitMeanwhileServices() { debugLog(_T("InitMeanwhileServices() start")); if (options.encrypt_session) { mwSession_addCipher(session, mwCipher_new_RC2_128(session)); mwSession_addCipher(session, mwCipher_new_RC2_40(session)); } InitUserList(); InitMessaging(); InitFiles(); InitConference(); mwSession_setProperty(session, "PROTO_STRUCT_PTR", this, NULL); mwSession_setProperty(session, mwSession_AUTH_USER_ID, options.id, NULL); mwSession_setProperty(session, mwSession_AUTH_PASSWORD, options.pword, NULL); mwSession_setProperty(session, mwSession_CLIENT_TYPE_ID, (void*)options.client_id, NULL); mwSession_setProperty(session, mwSession_CLIENT_VER_MAJOR, (void*)options.client_versionMajor, NULL); mwSession_setProperty(session, mwSession_CLIENT_VER_MINOR, (void*)options.client_versionMinor, NULL); }
MeanwhileSession::MeanwhileSession(MeanwhileAccount *acc) : session(0), state(mwSession_STOPPED), account(acc), socket(0) { HERE; /* set up main session hander */ memset(&sessionHandler, 0, sizeof(sessionHandler)); set_session_handler(io_write, IOWrite); set_session_handler(io_close, IOClose); set_session_handler(on_stateChange, StateChange); set_session_handler(on_setPrivacyInfo, SetPrivacyInfo); set_session_handler(on_setUserStatus, SetUserStatus); set_session_handler(on_admin, Admin); set_session_handler(on_announce, Announce); set_session_handler(clear, Clear); session = mwSession_new(&sessionHandler); mwSession_setClientData(session, this, 0L); /* set up the aware service */ memset(&awareHandler, 0, sizeof(awareHandler)); set_aware_handler(on_attrib, Attrib); awareService = mwServiceAware_new(session, &awareHandler); mwSession_addService(session, (struct mwService *)awareService); /* create an aware list */ memset(&awareListHandler, 0, sizeof(awareListHandler)); set_aware_list_handler(on_aware, Aware); set_aware_list_handler(on_attrib, Attrib); awareList = mwAwareList_new(awareService, &awareListHandler); mwAwareList_setClientData(awareList, this, 0L); /* set up an im service */ memset(&imHandler, 0, sizeof(imHandler)); set_im_handler(conversation_opened, ConvOpened); set_im_handler(conversation_closed, ConvClosed); set_im_handler(conversation_recv, ConvReceived); imHandler.place_invite = 0L; imHandler.clear = 0L; imService = mwServiceIm_new(session, &imHandler); mwService_setClientData((struct mwService *)imService, this, 0L); mwSession_addService(session, (struct mwService *) imService); /* add resolve service */ resolveService = mwServiceResolve_new(session); mwService_setClientData((struct mwService *)resolveService, this, 0L); mwSession_addService(session, (struct mwService *) resolveService); /* storage service */ storageService = mwServiceStorage_new(session); mwService_setClientData((struct mwService *)storageService, this, 0L); mwSession_addService(session, (struct mwService *) storageService); #if 0 /* conference service setup - just declines invites for now. */ memset(&conf_handler, 0, sizeof(conf_handler)); conf_handler.on_invited = _conference_invite; srvc_conf = mwServiceConference_new(session, &conf_handler); mwService_setClientData((struct mwService *)srvc_conf, this, 0L); mwSession_addService(session, (struct mwService *) srvc_conf); #endif /* add a necessary cipher */ mwSession_addCipher(session, mwCipher_new_RC2_40(session)); mwSession_addCipher(session, mwCipher_new_RC2_128(session)); }