OpenTTD Source  20241121-master-g67a0fccfad
tcp_stun.h
Go to the documentation of this file.
1 /*
2  * This file is part of OpenTTD.
3  * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4  * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5  * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
6  */
7 
12 #ifndef NETWORK_CORE_TCP_STUN_H
13 #define NETWORK_CORE_TCP_STUN_H
14 
15 #include "os_abstraction.h"
16 #include "tcp.h"
17 #include "packet.h"
18 
20 enum PacketStunType : uint8_t {
23 };
24 
27 protected:
29 
42  virtual bool Receive_SERCLI_STUN(Packet &p);
43 
44 public:
50  NetworkStunSocketHandler(SOCKET s = INVALID_SOCKET) : NetworkTCPSocketHandler(s) {}
51 };
52 
53 #endif /* NETWORK_CORE_TCP_STUN_H */
Base socket handler for all STUN TCP sockets.
Definition: tcp_stun.h:26
virtual bool Receive_SERCLI_STUN(Packet &p)
Send a STUN request to the STUN server letting the Game Coordinator know what our actually public IP:...
Definition: tcp_stun.cpp:29
NetworkStunSocketHandler(SOCKET s=INVALID_SOCKET)
Create a new cs socket handler for a given cs.
Definition: tcp_stun.h:50
bool ReceiveInvalidPacket(PacketStunType type)
Helper for logging receiving invalid packets.
Definition: tcp_stun.cpp:23
Base socket handler for all TCP sockets.
Definition: tcp.h:31
Network stuff has many things that needs to be included and/or implemented by default.
Basic functions to create, fill and read packets.
Internal entity of a packet.
Definition: packet.h:42
Basic functions to receive and send TCP packets.
PacketStunType
Enum with all types of TCP STUN packets.
Definition: tcp_stun.h:20
@ PACKET_STUN_END
Must ALWAYS be on the end of this list!! (period)
Definition: tcp_stun.h:22
@ PACKET_STUN_SERCLI_STUN
Send a STUN request to the STUN server.
Definition: tcp_stun.h:21