void MurmurIce::authenticateSlot(int &res, QString &uname, const QList<QSslCertificate> &certlist, const QString &certhash, bool certstrong, const QString &pw) { ::Server *server = qobject_cast< ::Server *> (sender()); ServerAuthenticatorPrx prx = mi->qmServerAuthenticator.value(server->iServerNum); ::std::string newname; ::Murmur::GroupNameList groups; ::Murmur::CertificateList certs; certs.resize(certlist.size()); for (int i=0;i<certlist.size();++i) { ::Murmur::CertificateDer der; QByteArray qba = certlist.at(i).toDer(); der.resize(qba.size()); const char *ptr = qba.constData(); for (int j=0;j<qba.size();++j) der[j] = ptr[j]; certs[i] = der; } try { res = prx->authenticate(u8(uname), u8(pw), certs, u8(certhash), certstrong, newname, groups); } catch (...) { badAuthenticator(server); } if (res >= 0) { if (newname.length() > 0) uname = u8(newname); QStringList qsl; foreach(const ::std::string &str, groups) { qsl << u8(str); } if (! qsl.isEmpty()) server->setTempGroups(res, NULL, qsl); }
void MurmurIce::nameToIdSlot(int &id, const QString &name) { ::Server *server = qobject_cast< ::Server *> (sender()); ServerAuthenticatorPrx prx = mi->qmServerAuthenticator.value(server->iServerNum); try { id = prx->nameToId(u8(name)); } catch (...) { badAuthenticator(server); } }
void MurmurIce::idToNameSlot(QString &name, int id) { ::Server *server = qobject_cast< ::Server *> (sender()); ServerAuthenticatorPrx prx = mi->qmServerAuthenticator.value(server->iServerNum); try { name = u8(prx->idToName(id)); } catch (...) { badAuthenticator(server); } }
void MurmurIce::idToNameSlot(QString &name, int id) { ::Server *server = qobject_cast< ::Server *> (sender()); const ServerAuthenticatorPrx prx = getServerAuthenticator(server); try { name = u8(prx->idToName(id)); } catch (...) { badAuthenticator(server); } }
void MurmurIce::idToTextureSlot(QByteArray &qba, int id) { ::Server *server = qobject_cast< ::Server *> (sender()); ServerAuthenticatorPrx prx = mi->qmServerAuthenticator.value(server->iServerNum); try { const ::Murmur::Texture &tex = prx->idToTexture(id); qba.resize(static_cast<int>(tex.size())); char *ptr = qba.data(); for (unsigned int i=0;i<tex.size();++i) ptr[i] = tex[i]; } catch (...) { badAuthenticator(server); } }