* Support getting a user's password salt via initial websocket connection (added to Event_ServerIdentification) * Nonsense stuff to figure out later * move passwordhasher to correct location * protobuf changes * add ext to protobuf * implement request password salt server side * add supportspasswordhash to server identification * check backwards compatibility * reset some changes to master * implement get password salt client side * implement checking hashed passwords on server login * check for registration requirement on getting password salt * properly check password salt response and show errors * remove unused property * add password salt to list of response types Co-authored-by: ZeldaZach <zahalpern+github@gmail.com>
49 lines
1.8 KiB
C++
49 lines
1.8 KiB
C++
#include "localserver.h"
|
|
|
|
#include "localserverinterface.h"
|
|
#include "server_room.h"
|
|
|
|
LocalServer::LocalServer(QObject *parent) : Server(parent)
|
|
{
|
|
setDatabaseInterface(new LocalServer_DatabaseInterface(this));
|
|
addRoom(new Server_Room(0, 0, QString(), QString(), QString(), QString(), false, QString(), QStringList(), this));
|
|
}
|
|
|
|
LocalServer::~LocalServer()
|
|
{
|
|
// LocalServer is single threaded so it doesn't need locks on this
|
|
while (!clients.isEmpty())
|
|
clients.first()->prepareDestroy();
|
|
|
|
prepareDestroy();
|
|
}
|
|
|
|
LocalServerInterface *LocalServer::newConnection()
|
|
{
|
|
LocalServerInterface *lsi = new LocalServerInterface(this, getDatabaseInterface());
|
|
addClient(lsi);
|
|
return lsi;
|
|
}
|
|
|
|
LocalServer_DatabaseInterface::LocalServer_DatabaseInterface(LocalServer *_localServer)
|
|
: Server_DatabaseInterface(_localServer), localServer(_localServer)
|
|
{
|
|
}
|
|
|
|
ServerInfo_User LocalServer_DatabaseInterface::getUserData(const QString &name, bool /*withId*/)
|
|
{
|
|
ServerInfo_User result;
|
|
result.set_name(name.toStdString());
|
|
return result;
|
|
}
|
|
|
|
AuthenticationResult LocalServer_DatabaseInterface::checkUserPassword(Server_ProtocolHandler * /* handler */,
|
|
const QString & /* user */,
|
|
const QString & /* password */,
|
|
const QString & /* clientId */,
|
|
QString & /* reasonStr */,
|
|
int & /* banSecondsLeft */,
|
|
bool /* passwordNeedsHash */)
|
|
{
|
|
return UnknownUser;
|
|
}
|