OpenTTD Source: ClientNetworkTurnSocketHandler Class Reference

OpenTTD Source 14.0-beta3

Public Member Functions | Static Public Member Functions | Data Fields | Protected Member Functions | Private Attributes
ClientNetworkTurnSocketHandler Class Reference

Class for handling the client side of the TURN connection. More...

`#include <network_turn.h>`

Inheritance diagram for ClientNetworkTurnSocketHandler:

## Public Member Functions
| ClientNetworkTurnSocketHandler (const std::string &token, uint8_t tracking_number, const std::string &connection_string)
NetworkRecvStatus | CloseConnection (bool error=true) override
| This will put this socket handler in a close state. More...
void | SendReceive ()
| Check whether we received/can send some data from/to the TURN server and when that's the case handle it appropriately.
void | Connect ()
| Connect to the TURN server.
void | ConnectFailure ()
Public Member Functions inherited from NetworkTurnSocketHandler
| NetworkTurnSocketHandler (SOCKET s=INVALID_SOCKET)
| Create a new cs socket handler for a given cs. More...
bool | ReceivePackets ()
| Receive a packet at TCP level. More...
Public Member Functions inherited from NetworkTCPSocketHandler
bool | IsConnected () const
| Whether this socket is currently bound to a socket. More...
void | CloseSocket ()
| Close the actual socket of the connection. More...
virtual void | SendPacket (std::unique_ptr< Packet > &&packet)
| This function puts the packet in the send-queue and it is send as soon as possible. More...
SendPacketsState | SendPackets (bool closing_down=false)
| Sends all the buffered packets out for this client. More...
virtual std::unique_ptr< Packet > | ReceivePacket ()
| Receives a packet for the given client. More...
bool | CanSendReceive ()
| Check whether this socket can send or receive something. More...
bool | HasSendQueue ()
| Whether there is something pending in the send queue. More...
| NetworkTCPSocketHandler (SOCKET s=INVALID_SOCKET)
| Construct a socket handler for a TCP connection. More...
Public Member Functions inherited from NetworkSocketHandler
| NetworkSocketHandler ()
| Create a new unbound socket.
virtual | ~NetworkSocketHandler ()=default
| Close the socket when destructing the socket handler.
void | MarkClosed ()
| Mark the connection as closed. More...
bool | HasClientQuit () const
| Whether the current client connected to the socket has quit. More...
void | Reopen ()
| Reopen the socket so we can send/receive stuff again.

## Static Public Member Functions
static std::unique_ptr< ClientNetworkTurnSocketHandler > | Turn (const std::string &token, uint8_t tracking_number, const std::string &ticket, const std::string &connection_string)
| Prepare a TURN connection. More...

## Data Fields
std::shared_ptr< TCPConnecter > | connecter {}
| Connecter instance.
bool | connect_started = false
| Whether we started the connection.
Data Fields inherited from NetworkTCPSocketHandler
SOCKET | sock
| The socket currently connected to.
bool | writable
| Can we write to this socket?

## Protected Member Functions
bool | Receive_TURN_ERROR (Packet &p) override
| TURN server was unable to connect the client or server based on the token. More...
bool | Receive_TURN_CONNECTED (Packet &p) override
| TURN server has connected client and server together and will now relay all packets to each other. More...
Protected Member Functions inherited from NetworkTurnSocketHandler
bool | ReceiveInvalidPacket (PacketTurnType type)
| Helper for logging receiving invalid packets. More...
virtual bool | Receive_SERCLI_CONNECT (Packet &p)
| Client or servers wants to connect to the TURN server (on request by the Game Coordinator). More...
bool | HandlePacket (Packet &p)
| Handle the given packet, i.e. More...

## Private Attributes
std::string | token
| Token of this connection.
uint8_t | tracking_number
| Tracking number of this connection.
std::string | connection_string
| The connection string of the TURN server we are connecting to.

## Detailed Description

Class for handling the client side of the TURN connection.

Definition at line 16 of file network_turn.h.

## Member Function Documentation

## ◆ CloseConnection()

NetworkRecvStatus ClientNetworkTurnSocketHandler::CloseConnection | ( | bool | error = `true` | ) |
| overridevirtual

This will put this socket handler in a close state.

It will not actually close the OS socket; use CloseSocket for this.

Parameters

  error | Whether we quit under an error condition or not.

Returns
  new status of the connection.

Reimplemented from NetworkTCPSocketHandler.

Definition at line 117 of file network_turn.cpp.

References NetworkTCPSocketHandler::CloseConnection(), connecter, and NETWORK_RECV_STATUS_OKAY.

## ◆ Receive_TURN_CONNECTED()

bool ClientNetworkTurnSocketHandler::Receive_TURN_CONNECTED | ( | Packet & | p | ) |
| overrideprotectedvirtual

TURN server has connected client and server together and will now relay all packets to each other.

No further TURN packets should be send over this socket, and the socket should be handed over to the game protocol.

string Hostname of the peer. This can be used to check if a client is not banned etc.

Parameters

  p | The packet that was just received.

Returns
  True upon success, otherwise false.

Reimplemented from NetworkTurnSocketHandler.

Definition at line 61 of file network_turn.cpp.

References _network_coordinator_client, ClientNetworkCoordinatorSocketHandler::ConnectSuccess(), Debug, NETWORK_DEFAULT_PORT, NETWORK_HOSTNAME_LENGTH, Packet::Recv_string(), NetworkTCPSocketHandler::sock, and token.

## ◆ Receive_TURN_ERROR()

bool ClientNetworkTurnSocketHandler::Receive_TURN_ERROR | ( | Packet & | p | ) |
| overrideprotectedvirtual

TURN server was unable to connect the client or server based on the token.

Most likely cause is an invalid token or the other side that hasn't connected in a reasonable amount of time.

Parameters

  p | The packet that was just received.

Returns
  True upon success, otherwise false.

Reimplemented from NetworkTurnSocketHandler.

Definition at line 52 of file network_turn.cpp.

References Debug.

## ◆ Turn()

std::unique_ptr< ClientNetworkTurnSocketHandler > ClientNetworkTurnSocketHandler::Turn | ( | const std::string & | token,
|  | uint8_t | tracking_number,
|  | const std::string & | ticket,
|  | const std::string & | connection_string
| ) |  |
| static

Prepare a TURN connection.

Not until you run Connect() on the resulting instance will it start setting up the TURN connection.

Parameters

  token | The token as received from the Game Coordinator.
  tracking_number | The tracking number as recieved from the Game Coordinator.
  ticket | The ticket as received from the Game Coordinator.
  connection_string | Connection string of the TURN server.

Returns
  The handler for this TURN connection.

Definition at line 99 of file network_turn.cpp.

References connection_string, NETWORK_COORDINATOR_VERSION, PACKET_TURN_SERCLI_CONNECT, token, and tracking_number.

Referenced by ClientNetworkCoordinatorSocketHandler::Receive_GC_TURN_CONNECT().

The documentation for this class was generated from the following files:

- src/network/network_turn.h
- src/network/network_turn.cpp