- return nets;
- }
-
- while(networksQuery.next()) {
- NetworkInfo net;
- net.networkId = networksQuery.value(0).toInt();
- net.networkName = networksQuery.value(1).toString();
- net.identity = networksQuery.value(2).toInt();
- net.codecForServer = networksQuery.value(3).toString().toAscii();
- net.codecForEncoding = networksQuery.value(4).toString().toAscii();
- net.codecForDecoding = networksQuery.value(5).toString().toAscii();
- net.useRandomServer = networksQuery.value(6).toInt() == 1 ? true : false;
- net.perform = networksQuery.value(7).toString().split("\n");
- net.useAutoIdentify = networksQuery.value(8).toInt() == 1 ? true : false;
- net.autoIdentifyService = networksQuery.value(9).toString();
- net.autoIdentifyPassword = networksQuery.value(10).toString();
- net.useAutoReconnect = networksQuery.value(11).toInt() == 1 ? true : false;
- net.autoReconnectInterval = networksQuery.value(12).toUInt();
- net.autoReconnectRetries = networksQuery.value(13).toInt();
- net.unlimitedReconnectRetries = networksQuery.value(14).toInt() == 1 ? true : false;
- net.rejoinChannels = networksQuery.value(15).toInt() == 1 ? true : false;
-
- serversQuery.bindValue(":networkid", net.networkId.toInt());
- safeExec(serversQuery);
- if(!watchQuery(serversQuery)) {
- db.commit();
- unlock();
- return nets;
- }
-
- Network::ServerList servers;
- while(serversQuery.next()) {
- Network::Server server;
- server.host = serversQuery.value(0).toString();
- server.port = serversQuery.value(1).toUInt();
- server.password = serversQuery.value(2).toString();
- server.useSsl = serversQuery.value(3).toInt() == 1 ? true : false;
- server.sslVersion = serversQuery.value(4).toInt();
- server.useProxy = serversQuery.value(5).toInt() == 1 ? true : false;
- server.proxyType = serversQuery.value(6).toInt();
- server.proxyHost = serversQuery.value(7).toString();
- server.proxyPort = serversQuery.value(8).toUInt();
- server.proxyUser = serversQuery.value(9).toString();
- server.proxyPass = serversQuery.value(10).toString();
- servers << server;
- }
- net.serverList = servers;
- nets << net;
- }
-
- db.commit();
- unlock();
- return nets;
-}
-
-QList<NetworkId> SqliteStorage::connectedNetworks(UserId user) {
- QList<NetworkId> connectedNets;
-
- QSqlDatabase db = logDb();
- db.transaction();
-
- QSqlQuery query(db);
- query.prepare(queryString("select_connected_networks"));
- query.bindValue(":userid", user.toInt());
- lockForRead();
- safeExec(query);
- watchQuery(query);
-
- while(query.next()) {
- connectedNets << query.value(0).toInt();
- }
-
- db.commit();
- unlock();
- return connectedNets;
-}
-
-void SqliteStorage::setNetworkConnected(UserId user, const NetworkId &networkId, bool isConnected) {
- QSqlDatabase db = logDb();
- db.transaction();
-
- QSqlQuery query(db);
- query.prepare(queryString("update_network_connected"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkid", networkId.toInt());
- query.bindValue(":connected", isConnected ? 1 : 0);
-
- lockForWrite();
- safeExec(query);
- watchQuery(query);
- db.commit();
- unlock();
-}
-
-QHash<QString, QString> SqliteStorage::persistentChannels(UserId user, const NetworkId &networkId) {
- QHash<QString, QString> persistentChans;
-
- QSqlDatabase db = logDb();
- db.transaction();
-
- QSqlQuery query(db);
- query.prepare(queryString("select_persistent_channels"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkid", networkId.toInt());
-
- lockForRead();
- safeExec(query);
- watchQuery(query);
- while(query.next()) {
- persistentChans[query.value(0).toString()] = query.value(1).toString();
- }
- unlock();
-
- return persistentChans;
-}
-
-void SqliteStorage::setChannelPersistent(UserId user, const NetworkId &networkId, const QString &channel, bool isJoined) {
- QSqlDatabase db = logDb();
- db.transaction();
-
- QSqlQuery query(db);
- query.prepare(queryString("update_buffer_persistent_channel"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkId", networkId.toInt());
- query.bindValue(":buffercname", channel.toLower());
- query.bindValue(":joined", isJoined ? 1 : 0);
-
- lockForWrite();
- safeExec(query);
- watchQuery(query);
- db.commit();
- unlock();
-}
-
-void SqliteStorage::setPersistentChannelKey(UserId user, const NetworkId &networkId, const QString &channel, const QString &key) {
- QSqlDatabase db = logDb();
- db.transaction();
-
- QSqlQuery query(db);
- query.prepare(queryString("update_buffer_set_channel_key"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkId", networkId.toInt());
- query.bindValue(":buffercname", channel.toLower());
- query.bindValue(":key", key);
-
- lockForWrite();
- safeExec(query);
- watchQuery(query);
- db.commit();
- unlock();
-}
-
-QString SqliteStorage::awayMessage(UserId user, NetworkId networkId) {
- QSqlDatabase db = logDb();
- db.transaction();
-
- QSqlQuery query(db);
- query.prepare(queryString("select_network_awaymsg"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkid", networkId.toInt());
-
- lockForRead();
- safeExec(query);
- watchQuery(query);
- QString awayMsg;
- if(query.first())
- awayMsg = query.value(0).toString();
- db.commit();
- unlock();
-
- return awayMsg;
-}
-
-void SqliteStorage::setAwayMessage(UserId user, NetworkId networkId, const QString &awayMsg) {
- QSqlDatabase db = logDb();
- db.transaction();
-
- QSqlQuery query(db);
- query.prepare(queryString("update_network_set_awaymsg"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkid", networkId.toInt());
- query.bindValue(":awaymsg", awayMsg);
-
- lockForWrite();
- safeExec(query);
- watchQuery(query);
- db.commit();
- unlock();
-}
-
-QString SqliteStorage::userModes(UserId user, NetworkId networkId) {
- QSqlDatabase db = logDb();
- db.transaction();
-
- QSqlQuery query(db);
- query.prepare(queryString("select_network_usermode"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkid", networkId.toInt());
-
- lockForRead();
- safeExec(query);
- watchQuery(query);
- QString modes;
- if(query.first())
- modes = query.value(0).toString();
- db.commit();
- unlock();
-
- return modes;
-}
-
-void SqliteStorage::setUserModes(UserId user, NetworkId networkId, const QString &userModes) {
- QSqlDatabase db = logDb();
- db.transaction();
-
- QSqlQuery query(db);
- query.prepare(queryString("update_network_set_usermode"));
- query.bindValue(":userid", user.toInt());
- query.bindValue(":networkid", networkId.toInt());
- query.bindValue(":usermode", userModes);
-
- lockForWrite();
- safeExec(query);
- watchQuery(query);
- db.commit();
- unlock();
-}
-
-BufferInfo SqliteStorage::bufferInfo(UserId user, const NetworkId &networkId, BufferInfo::Type type, const QString &buffer, bool create) {
- QSqlDatabase db = logDb();
- db.transaction();
-
- QSqlQuery query(db);
- query.prepare(queryString("select_bufferByName"));
- query.bindValue(":networkid", networkId.toInt());
- query.bindValue(":userid", user.toInt());
- query.bindValue(":buffercname", buffer.toLower());
-
- lockForRead();
- safeExec(query);
-
- if(query.first()) {
- BufferInfo bufferInfo = BufferInfo(query.value(0).toInt(), networkId, (BufferInfo::Type)query.value(1).toInt(), 0, buffer);
- if(query.next()) {
- qCritical() << "SqliteStorage::getBufferInfo(): received more then one Buffer!";
- qCritical() << " Query:" << query.lastQuery();
- qCritical() << " bound Values:";
- QList<QVariant> list = query.boundValues().values();
- for (int i = 0; i < list.size(); ++i)
- qCritical() << i << ":" << list.at(i).toString().toAscii().data();
- Q_ASSERT(false);