File indexing completed on 2024-06-23 05:07:02

0001 /***************************************************************************
0002  *   SPDX-FileCopyrightText: 2006 Till Adam <adam@kde.org>                 *
0003  *                                                                         *
0004  *   SPDX-License-Identifier: LGPL-2.0-or-later                            *
0005  ***************************************************************************/
0006 
0007 #include "loginhandler.h"
0008 
0009 #include "connection.h"
0010 
0011 using namespace Akonadi;
0012 using namespace Akonadi::Server;
0013 
0014 LoginHandler::LoginHandler(AkonadiServer &akonadi)
0015     : Handler(akonadi)
0016 {
0017 }
0018 
0019 bool LoginHandler::parseStream()
0020 {
0021     const auto &cmd = Protocol::cmdCast<Protocol::LoginCommand>(m_command);
0022 
0023     if (cmd.sessionId().isEmpty()) {
0024         return failureResponse(QStringLiteral("Missing session identifier"));
0025     }
0026 
0027     connection()->setSessionId(cmd.sessionId());
0028     connection()->setState(Server::Authenticated);
0029 
0030     return successResponse<Protocol::LoginResponse>();
0031 }