mirror of https://github.com/OpenTTD/OpenTTD
Codechange: use std::string_view for connection strings
parent
31433882a4
commit
c13956a58a
|
@ -442,7 +442,7 @@ void NetworkAddress::Listen(int socktype, SocketList *sockets)
|
|||
* @param company Pointer to the company variable to set iff indicated.
|
||||
* @return A valid ServerAddress of the parsed information.
|
||||
*/
|
||||
/* static */ ServerAddress ServerAddress::Parse(const std::string &connection_string, uint16_t default_port, CompanyID *company_id)
|
||||
/* static */ ServerAddress ServerAddress::Parse(std::string_view connection_string, uint16_t default_port, CompanyID *company_id)
|
||||
{
|
||||
if (connection_string.starts_with("+")) {
|
||||
std::string_view invite_code = ParseCompanyFromConnectionString(connection_string, company_id);
|
||||
|
@ -451,5 +451,5 @@ void NetworkAddress::Listen(int socktype, SocketList *sockets)
|
|||
|
||||
uint16_t port = default_port;
|
||||
std::string_view ip = ParseFullConnectionString(connection_string, port, company_id);
|
||||
return ServerAddress(SERVER_ADDRESS_DIRECT, std::string(ip) + ":" + std::to_string(port));
|
||||
return ServerAddress(SERVER_ADDRESS_DIRECT, fmt::format("{}:{}", ip, port));
|
||||
}
|
||||
|
|
|
@ -194,13 +194,13 @@ private:
|
|||
* @param type The type of the ServerAdress.
|
||||
* @param connection_string The connection_string that belongs to this ServerAddress type.
|
||||
*/
|
||||
ServerAddress(ServerAddressType type, const std::string &connection_string) : type(type), connection_string(connection_string) {}
|
||||
ServerAddress(ServerAddressType type, std::string &&connection_string) : type(type), connection_string(std::move(connection_string)) {}
|
||||
|
||||
public:
|
||||
ServerAddressType type; ///< The type of this ServerAddress.
|
||||
std::string connection_string; ///< The connection string for this ServerAddress.
|
||||
|
||||
static ServerAddress Parse(const std::string &connection_string, uint16_t default_port, CompanyID *company_id = nullptr);
|
||||
static ServerAddress Parse(std::string_view connection_string, uint16_t default_port, CompanyID *company_id = nullptr);
|
||||
};
|
||||
|
||||
#endif /* NETWORK_CORE_ADDRESS_H */
|
||||
|
|
|
@ -120,7 +120,7 @@ private:
|
|||
|
||||
public:
|
||||
TCPConnecter() {};
|
||||
TCPConnecter(const std::string &connection_string, uint16_t default_port, const NetworkAddress &bind_address = {}, int family = AF_UNSPEC);
|
||||
TCPConnecter(std::string_view connection_string, uint16_t default_port, const NetworkAddress &bind_address = {}, int family = AF_UNSPEC);
|
||||
virtual ~TCPConnecter();
|
||||
|
||||
/**
|
||||
|
@ -161,7 +161,7 @@ private:
|
|||
public:
|
||||
ServerAddress server_address; ///< Address we are connecting to.
|
||||
|
||||
TCPServerConnecter(const std::string &connection_string, uint16_t default_port);
|
||||
TCPServerConnecter(std::string_view connection_string, uint16_t default_port);
|
||||
|
||||
void SetConnected(SOCKET sock);
|
||||
void SetFailure();
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
* @param default_port If not indicated in connection_string, what port to use.
|
||||
* @param bind_address The local bind address to use. Defaults to letting the OS find one.
|
||||
*/
|
||||
TCPConnecter::TCPConnecter(const std::string &connection_string, uint16_t default_port, const NetworkAddress &bind_address, int family) :
|
||||
TCPConnecter::TCPConnecter(std::string_view connection_string, uint16_t default_port, const NetworkAddress &bind_address, int family) :
|
||||
bind_address(bind_address),
|
||||
family(family)
|
||||
{
|
||||
|
@ -38,7 +38,7 @@ TCPConnecter::TCPConnecter(const std::string &connection_string, uint16_t defaul
|
|||
* @param connection_string The address to connect to.
|
||||
* @param default_port If not indicated in connection_string, what port to use.
|
||||
*/
|
||||
TCPServerConnecter::TCPServerConnecter(const std::string &connection_string, uint16_t default_port) :
|
||||
TCPServerConnecter::TCPServerConnecter(std::string_view connection_string, uint16_t default_port) :
|
||||
server_address(ServerAddress::Parse(connection_string, default_port))
|
||||
{
|
||||
switch (this->server_address.type) {
|
||||
|
|
|
@ -472,7 +472,7 @@ static void CheckPauseOnJoin()
|
|||
* @param company_id The company ID to set, if available.
|
||||
* @return A std::string_view into the connection string without the company part.
|
||||
*/
|
||||
std::string_view ParseCompanyFromConnectionString(const std::string &connection_string, CompanyID *company_id)
|
||||
std::string_view ParseCompanyFromConnectionString(std::string_view connection_string, CompanyID *company_id)
|
||||
{
|
||||
std::string_view ip = connection_string;
|
||||
if (company_id == nullptr) return ip;
|
||||
|
@ -516,7 +516,7 @@ std::string_view ParseCompanyFromConnectionString(const std::string &connection_
|
|||
* @param company_id The company ID to set, if available.
|
||||
* @return A std::string_view into the connection string with the (IP) address part.
|
||||
*/
|
||||
std::string_view ParseFullConnectionString(const std::string &connection_string, uint16_t &port, CompanyID *company_id)
|
||||
std::string_view ParseFullConnectionString(std::string_view connection_string, uint16_t &port, CompanyID *company_id)
|
||||
{
|
||||
std::string_view ip = ParseCompanyFromConnectionString(connection_string, company_id);
|
||||
|
||||
|
@ -536,11 +536,11 @@ std::string_view ParseFullConnectionString(const std::string &connection_string,
|
|||
* @param default_port The port to use if none is given.
|
||||
* @return The normalized connection string.
|
||||
*/
|
||||
std::string NormalizeConnectionString(const std::string &connection_string, uint16_t default_port)
|
||||
std::string NormalizeConnectionString(std::string_view connection_string, uint16_t default_port)
|
||||
{
|
||||
uint16_t port = default_port;
|
||||
std::string_view ip = ParseFullConnectionString(connection_string, port);
|
||||
return std::string(ip) + ":" + std::to_string(port);
|
||||
return fmt::format("{}:{}", ip, port);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -551,7 +551,7 @@ std::string NormalizeConnectionString(const std::string &connection_string, uint
|
|||
* @param default_port The default port to set port to if not in connection_string.
|
||||
* @return A valid NetworkAddress of the parsed information.
|
||||
*/
|
||||
NetworkAddress ParseConnectionString(const std::string &connection_string, uint16_t default_port)
|
||||
NetworkAddress ParseConnectionString(std::string_view connection_string, uint16_t default_port)
|
||||
{
|
||||
uint16_t port = default_port;
|
||||
std::string_view ip = ParseFullConnectionString(connection_string, port);
|
||||
|
@ -642,7 +642,7 @@ private:
|
|||
std::string connection_string;
|
||||
|
||||
public:
|
||||
TCPQueryConnecter(const std::string &connection_string) : TCPServerConnecter(connection_string, NETWORK_DEFAULT_PORT), connection_string(connection_string) {}
|
||||
TCPQueryConnecter(std::string_view connection_string) : TCPServerConnecter(connection_string, NETWORK_DEFAULT_PORT), connection_string(connection_string) {}
|
||||
|
||||
void OnFailure() override
|
||||
{
|
||||
|
@ -667,7 +667,7 @@ public:
|
|||
* Query a server to fetch the game-info.
|
||||
* @param connection_string the address to query.
|
||||
*/
|
||||
void NetworkQueryServer(const std::string &connection_string)
|
||||
void NetworkQueryServer(std::string_view connection_string)
|
||||
{
|
||||
if (!_network_available) return;
|
||||
|
||||
|
@ -689,7 +689,7 @@ void NetworkQueryServer(const std::string &connection_string)
|
|||
* @param never_expire Whether the entry can expire (removed when no longer found in the public listing).
|
||||
* @return The entry on the game list.
|
||||
*/
|
||||
NetworkGame *NetworkAddServer(const std::string &connection_string, bool manually, bool never_expire)
|
||||
NetworkGame *NetworkAddServer(std::string_view connection_string, bool manually, bool never_expire)
|
||||
{
|
||||
if (connection_string.empty()) return nullptr;
|
||||
|
||||
|
@ -745,7 +745,7 @@ private:
|
|||
std::string connection_string;
|
||||
|
||||
public:
|
||||
TCPClientConnecter(const std::string &connection_string) : TCPServerConnecter(connection_string, NETWORK_DEFAULT_PORT), connection_string(connection_string) {}
|
||||
TCPClientConnecter(std::string_view connection_string) : TCPServerConnecter(connection_string, NETWORK_DEFAULT_PORT), connection_string(connection_string) {}
|
||||
|
||||
void OnFailure() override
|
||||
{
|
||||
|
@ -782,7 +782,7 @@ public:
|
|||
* @param join_server_password The password for the server.
|
||||
* @return Whether the join has started.
|
||||
*/
|
||||
bool NetworkClientConnectGame(const std::string &connection_string, CompanyID default_company, const std::string &join_server_password)
|
||||
bool NetworkClientConnectGame(std::string_view connection_string, CompanyID default_company, const std::string &join_server_password)
|
||||
{
|
||||
Debug(net, 9, "NetworkClientConnectGame(): connection_string={}", connection_string);
|
||||
|
||||
|
|
|
@ -109,7 +109,7 @@ void ClientNetworkEmergencySave()
|
|||
* Create a new socket for the client side of the game connection.
|
||||
* @param s The socket to connect with.
|
||||
*/
|
||||
ClientNetworkGameSocketHandler::ClientNetworkGameSocketHandler(SOCKET s, const std::string &connection_string) : NetworkGameSocketHandler(s), connection_string(connection_string)
|
||||
ClientNetworkGameSocketHandler::ClientNetworkGameSocketHandler(SOCKET s, std::string_view connection_string) : NetworkGameSocketHandler(s), connection_string(connection_string)
|
||||
{
|
||||
assert(ClientNetworkGameSocketHandler::my_client == nullptr);
|
||||
ClientNetworkGameSocketHandler::my_client = this;
|
||||
|
|
|
@ -74,7 +74,7 @@ protected:
|
|||
static NetworkRecvStatus SendIdentify();
|
||||
void CheckConnection();
|
||||
public:
|
||||
ClientNetworkGameSocketHandler(SOCKET s, const std::string &connection_string);
|
||||
ClientNetworkGameSocketHandler(SOCKET s, std::string_view connection_string);
|
||||
~ClientNetworkGameSocketHandler();
|
||||
|
||||
NetworkRecvStatus CloseConnection(NetworkRecvStatus status) override;
|
||||
|
|
|
@ -718,7 +718,7 @@ public:
|
|||
* Initiate the connecting.
|
||||
* @param address The address of the server.
|
||||
*/
|
||||
NetworkContentConnecter(const std::string &connection_string) : TCPConnecter(connection_string, NETWORK_CONTENT_SERVER_PORT) {}
|
||||
NetworkContentConnecter(std::string_view connection_string) : TCPConnecter(connection_string, NETWORK_CONTENT_SERVER_PORT) {}
|
||||
|
||||
void OnFailure() override
|
||||
{
|
||||
|
|
|
@ -106,7 +106,7 @@ public:
|
|||
* Initiate the connecting.
|
||||
* @param connection_string The address of the Game Coordinator server.
|
||||
*/
|
||||
NetworkCoordinatorConnecter(const std::string &connection_string) : TCPConnecter(connection_string, NETWORK_COORDINATOR_SERVER_PORT) {}
|
||||
NetworkCoordinatorConnecter(std::string_view connection_string) : TCPConnecter(connection_string, NETWORK_COORDINATOR_SERVER_PORT) {}
|
||||
|
||||
void OnFailure() override
|
||||
{
|
||||
|
|
|
@ -44,13 +44,13 @@ void NetworkReboot();
|
|||
void NetworkDisconnect(bool close_admins = true);
|
||||
void NetworkGameLoop();
|
||||
void NetworkBackgroundLoop();
|
||||
std::string_view ParseFullConnectionString(const std::string &connection_string, uint16_t &port, CompanyID *company_id = nullptr);
|
||||
std::string_view ParseFullConnectionString(std::string_view connection_string, uint16_t &port, CompanyID *company_id = nullptr);
|
||||
using NetworkCompanyStatsArray = ReferenceThroughBaseContainer<std::array<NetworkCompanyStats, MAX_COMPANIES>>;
|
||||
NetworkCompanyStatsArray NetworkGetCompanyStats();
|
||||
|
||||
void NetworkUpdateClientInfo(ClientID client_id);
|
||||
void NetworkClientsToSpectators(CompanyID cid);
|
||||
bool NetworkClientConnectGame(const std::string &connection_string, CompanyID default_company, const std::string &join_server_password = "");
|
||||
bool NetworkClientConnectGame(std::string_view connection_string, CompanyID default_company, const std::string &join_server_password = "");
|
||||
void NetworkClientJoinGame();
|
||||
void NetworkClientRequestMove(CompanyID company);
|
||||
void NetworkClientSendRcon(std::string_view password, std::string_view command);
|
||||
|
|
|
@ -29,7 +29,7 @@ int _network_game_list_version = 0; ///< Current version of all items in the lis
|
|||
* @param connection_string the address of the to-be added item
|
||||
* @return a point to the newly added or already existing item
|
||||
*/
|
||||
NetworkGame *NetworkGameListAddItem(const std::string &connection_string)
|
||||
NetworkGame *NetworkGameListAddItem(std::string_view connection_string)
|
||||
{
|
||||
/* Parse the connection string to ensure the default port is there. */
|
||||
const std::string resolved_connection_string = ServerAddress::Parse(connection_string, NETWORK_DEFAULT_PORT).connection_string;
|
||||
|
|
|
@ -25,7 +25,7 @@ enum NetworkGameStatus : uint8_t {
|
|||
|
||||
/** Structure with information shown in the game list (GUI) */
|
||||
struct NetworkGame {
|
||||
NetworkGame(const std::string &connection_string) : connection_string(connection_string) {}
|
||||
NetworkGame(std::string_view connection_string) : connection_string(connection_string) {}
|
||||
|
||||
NetworkGameInfo info{}; ///< The game information of this server.
|
||||
std::string connection_string; ///< Address of the server.
|
||||
|
@ -38,7 +38,7 @@ struct NetworkGame {
|
|||
extern std::vector<std::unique_ptr<NetworkGame>> _network_game_list;
|
||||
extern int _network_game_list_version;
|
||||
|
||||
NetworkGame *NetworkGameListAddItem(const std::string &connection_string);
|
||||
NetworkGame *NetworkGameListAddItem(std::string_view connection_string);
|
||||
void NetworkGameListRemoveItem(NetworkGame *remove);
|
||||
void NetworkGameListRemoveExpired();
|
||||
|
||||
|
|
|
@ -81,10 +81,10 @@ extern std::string _network_server_name;
|
|||
|
||||
extern uint8_t _network_reconnect;
|
||||
|
||||
void NetworkQueryServer(const std::string &connection_string);
|
||||
void NetworkQueryServer(std::string_view connection_string);
|
||||
|
||||
void GetBindAddresses(NetworkAddressList *addresses, uint16_t port);
|
||||
struct NetworkGame *NetworkAddServer(const std::string &connection_string, bool manually = true, bool never_expire = false);
|
||||
struct NetworkGame *NetworkAddServer(std::string_view connection_string, bool manually = true, bool never_expire = false);
|
||||
void NetworkRebuildHostList();
|
||||
void UpdateNetworkGameWindow();
|
||||
|
||||
|
@ -115,9 +115,9 @@ uint NetworkCalculateLag(const NetworkClientSocket *cs);
|
|||
StringID GetNetworkErrorMsg(NetworkErrorCode err);
|
||||
bool NetworkMakeClientNameUnique(std::string &new_name);
|
||||
|
||||
std::string_view ParseCompanyFromConnectionString(const std::string &connection_string, CompanyID *company_id);
|
||||
NetworkAddress ParseConnectionString(const std::string &connection_string, uint16_t default_port);
|
||||
std::string NormalizeConnectionString(const std::string &connection_string, uint16_t default_port);
|
||||
std::string_view ParseCompanyFromConnectionString(std::string_view connection_string, CompanyID *company_id);
|
||||
NetworkAddress ParseConnectionString(std::string_view connection_string, uint16_t default_port);
|
||||
std::string NormalizeConnectionString(std::string_view connection_string, uint16_t default_port);
|
||||
|
||||
void ClientNetworkEmergencySave();
|
||||
|
||||
|
|
|
@ -36,14 +36,14 @@ public:
|
|||
* @param s The socket to connect with.
|
||||
* @param connection_string The connection string of the server.
|
||||
*/
|
||||
QueryNetworkGameSocketHandler(SOCKET s, const std::string &connection_string) : NetworkGameSocketHandler(s), connection_string(connection_string) {}
|
||||
QueryNetworkGameSocketHandler(SOCKET s, std::string_view connection_string) : NetworkGameSocketHandler(s), connection_string(connection_string) {}
|
||||
|
||||
/**
|
||||
* Start to query a server based on an open socket.
|
||||
* @param s The socket to connect with.
|
||||
* @param connection_string The connection string of the server.
|
||||
*/
|
||||
static void QueryServer(SOCKET s, const std::string &connection_string)
|
||||
static void QueryServer(SOCKET s, std::string_view connection_string)
|
||||
{
|
||||
auto query = std::make_unique<QueryNetworkGameSocketHandler>(s, connection_string);
|
||||
query->SendGameInfo();
|
||||
|
|
|
@ -28,7 +28,7 @@ public:
|
|||
* @param stun_handler The handler for this request.
|
||||
* @param connection_string The address of the server.
|
||||
*/
|
||||
NetworkStunConnecter(ClientNetworkStunSocketHandler *stun_handler, const std::string &connection_string, const std::string &token, uint8_t family) :
|
||||
NetworkStunConnecter(ClientNetworkStunSocketHandler *stun_handler, std::string_view connection_string, const std::string &token, uint8_t family) :
|
||||
TCPConnecter(connection_string, NETWORK_STUN_SERVER_PORT, NetworkAddress(), family),
|
||||
stun_handler(stun_handler),
|
||||
token(token),
|
||||
|
|
|
@ -28,7 +28,7 @@ public:
|
|||
* Initiate the connecting.
|
||||
* @param connection_string The address of the TURN server.
|
||||
*/
|
||||
NetworkTurnConnecter(ClientNetworkTurnSocketHandler *handler, const std::string &connection_string) : TCPConnecter(connection_string, NETWORK_TURN_SERVER_PORT), handler(handler) {}
|
||||
NetworkTurnConnecter(ClientNetworkTurnSocketHandler *handler, std::string_view connection_string) : TCPConnecter(connection_string, NETWORK_TURN_SERVER_PORT), handler(handler) {}
|
||||
|
||||
void OnFailure() override
|
||||
{
|
||||
|
@ -96,7 +96,7 @@ void ClientNetworkTurnSocketHandler::Connect()
|
|||
* @param connection_string Connection string of the TURN server.
|
||||
* @return The handler for this TURN connection.
|
||||
*/
|
||||
/* static */ std::unique_ptr<ClientNetworkTurnSocketHandler> ClientNetworkTurnSocketHandler::Turn(const std::string &token, uint8_t tracking_number, const std::string &ticket, const std::string &connection_string)
|
||||
/* static */ std::unique_ptr<ClientNetworkTurnSocketHandler> ClientNetworkTurnSocketHandler::Turn(const std::string &token, uint8_t tracking_number, const std::string &ticket, std::string_view connection_string)
|
||||
{
|
||||
auto turn_handler = std::make_unique<ClientNetworkTurnSocketHandler>(token, tracking_number, connection_string);
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ public:
|
|||
std::shared_ptr<TCPConnecter> connecter{}; ///< Connecter instance.
|
||||
bool connect_started = false; ///< Whether we started the connection.
|
||||
|
||||
ClientNetworkTurnSocketHandler(const std::string &token, uint8_t tracking_number, const std::string &connection_string) : token(token), tracking_number(tracking_number), connection_string(connection_string) {}
|
||||
ClientNetworkTurnSocketHandler(const std::string &token, uint8_t tracking_number, std::string_view connection_string) : token(token), tracking_number(tracking_number), connection_string(connection_string) {}
|
||||
|
||||
NetworkRecvStatus CloseConnection(bool error = true) override;
|
||||
~ClientNetworkTurnSocketHandler() override;
|
||||
|
@ -36,7 +36,7 @@ public:
|
|||
void Connect();
|
||||
void ConnectFailure();
|
||||
|
||||
static std::unique_ptr<ClientNetworkTurnSocketHandler> Turn(const std::string &token, uint8_t tracking_number, const std::string &ticket, const std::string &connection_string);
|
||||
static std::unique_ptr<ClientNetworkTurnSocketHandler> Turn(const std::string &token, uint8_t tracking_number, const std::string &ticket, std::string_view connection_string);
|
||||
};
|
||||
|
||||
#endif /* NETWORK_TURN_H */
|
||||
|
|
Loading…
Reference in New Issue