Feature: authenticate to the server without sending the password
Either using password-authentication key exchange or via authorized keys
This commit is contained in:
@@ -23,10 +23,12 @@ extern NetworkClientSocketPool _networkclientsocket_pool;
|
||||
/** Class for handling the server side of the game connection. */
|
||||
class ServerNetworkGameSocketHandler : public NetworkClientSocketPool::PoolItem<&_networkclientsocket_pool>, public NetworkGameSocketHandler, public TCPListenHandler<ServerNetworkGameSocketHandler, PACKET_SERVER_FULL, PACKET_SERVER_BANNED> {
|
||||
protected:
|
||||
std::unique_ptr<class NetworkAuthenticationServerHandler> authentication_handler; ///< The handler for the authentication.
|
||||
|
||||
NetworkRecvStatus Receive_CLIENT_JOIN(Packet &p) override;
|
||||
NetworkRecvStatus Receive_CLIENT_IDENTIFY(Packet &p) override;
|
||||
NetworkRecvStatus Receive_CLIENT_GAME_INFO(Packet &p) override;
|
||||
NetworkRecvStatus Receive_CLIENT_GAME_PASSWORD(Packet &p) override;
|
||||
NetworkRecvStatus Receive_CLIENT_AUTH_RESPONSE(Packet &p) override;
|
||||
NetworkRecvStatus Receive_CLIENT_COMPANY_PASSWORD(Packet &p) override;
|
||||
NetworkRecvStatus Receive_CLIENT_GETMAP(Packet &p) override;
|
||||
NetworkRecvStatus Receive_CLIENT_MAP_OK(Packet &p) override;
|
||||
@@ -44,16 +46,17 @@ protected:
|
||||
NetworkRecvStatus SendGameInfo();
|
||||
NetworkRecvStatus SendNewGRFCheck();
|
||||
NetworkRecvStatus SendWelcome();
|
||||
NetworkRecvStatus SendNeedGamePassword();
|
||||
NetworkRecvStatus SendAuthRequest();
|
||||
NetworkRecvStatus SendAuthCompleted();
|
||||
NetworkRecvStatus SendNeedCompanyPassword();
|
||||
|
||||
public:
|
||||
/** Status of a client */
|
||||
enum ClientStatus {
|
||||
STATUS_INACTIVE, ///< The client is not connected nor active.
|
||||
STATUS_AUTH_GAME, ///< The client is authorizing with game (server) password.
|
||||
STATUS_IDENTIFY, ///< The client is identifying itself.
|
||||
STATUS_NEWGRFS_CHECK, ///< The client is checking NewGRFs.
|
||||
STATUS_AUTH_GAME, ///< The client is authorizing with game (server) password.
|
||||
STATUS_AUTH_COMPANY, ///< The client is authorizing with company password.
|
||||
STATUS_AUTHORIZED, ///< The client is authorized.
|
||||
STATUS_MAP_WAIT, ///< The client is waiting as someone else is downloading the map.
|
||||
|
||||
Reference in New Issue
Block a user