bool Certificate::setStatus(const Account* a, Status s) { if (!a) return false; //This status is stored as a 3bit bitmask in 3 64bit integers const int maskId = a->d_ptr->internalId(); const int position = (maskId*3)/64; const int offset = (maskId*3)%64; //Only 63 accounts are currently supported if (position > 3) return false; d_ptr->m_Statuses[position] = static_cast<int>(s) << offset; ConfigurationManagerInterface& configurationManager = DBus::ConfigurationManager::instance(); //Notify the daemon if (hasRemote()) { configurationManager.setCertificateStatus(a->id(),d_ptr->m_Id,CertificateModelPrivate::m_StatusMap[s]); } else { //d_ptr->m_Id = configurationManager.pinCertificatePath(path()); //TODO register the certificate in the daemon } return true; }
string Client::clientAddress(bool includePort) const { if (!hasRemote()) { return ""; } if (includePort) { return getRemote().toString(); } return getRemote().host(); }
void Client::reportState(BSONObjBuilder& builder) { builder.append("desc", desc()); if (_connectionId) { builder.appendNumber("connectionId", _connectionId); } if (hasRemote()) { builder.append("client", getRemote().toString()); } }
void Client::reportState(BSONObjBuilder& builder) { builder.append("desc", desc()); std::stringstream ss; ss << _threadId; builder.append("threadId", ss.str()); if (_connectionId) { builder.appendNumber("connectionId", _connectionId); } if (hasRemote()) { builder.append("client", getRemote().toString()); } }
/** * Register this certificate in the daemon */ bool Certificate::pin() { if (hasRemote()) return true; /*switch(d_ptr->m_LoadingType) { case LoadingType::FROM_PATH: DBus::ConfigurationManager::instance().addCertificate(d_ptr->m_Id); //FIXME wrong function, wait for daemon implementation break; case LoadingType::FROM_CONTENT: DBus::ConfigurationManager::instance().addCertificate(d_ptr->m_Path.toString().toLatin1()); break; case LoadingType::FROM_ID: // return DBus::ConfigurationManager::instance().addCertificateRemote(d_ptr->m_Id); //FIXME break; } //TODO use the new pinning API*/ return false; }