diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/network/core/config.h | 4 | ||||
-rw-r--r-- | src/network/core/core.cpp | 5 | ||||
-rw-r--r-- | src/network/core/core.h | 8 | ||||
-rw-r--r-- | src/network/core/packet.cpp | 4 | ||||
-rw-r--r-- | src/network/core/tcp.cpp | 3 | ||||
-rw-r--r-- | src/network/core/tcp.h | 24 | ||||
-rw-r--r-- | src/network/core/udp.cpp | 15 | ||||
-rw-r--r-- | src/network/core/udp.h | 3 |
8 files changed, 43 insertions, 23 deletions
diff --git a/src/network/core/config.h b/src/network/core/config.h index 71f3983a9..63b54f7ce 100644 --- a/src/network/core/config.h +++ b/src/network/core/config.h @@ -5,6 +5,10 @@ #ifdef ENABLE_NETWORK +/** + * @file config.h Configuration options of the network stuff + */ + /** DNS hostname of the masterserver */ #define NETWORK_MASTER_SERVER_HOST "master.openttd.org" /** Message sent to the masterserver to 'identify' this client as OpenTTD */ diff --git a/src/network/core/core.cpp b/src/network/core/core.cpp index ca953e5f0..259ccf6c8 100644 --- a/src/network/core/core.cpp +++ b/src/network/core/core.cpp @@ -6,6 +6,10 @@ #include "../../debug.h" #include "os_abstraction.h" +/** + * @file core.cpp Functions used to initialize/shut down the core network + */ + #ifdef __MORPHOS__ /* the library base is required here */ struct Library *SocketBase = NULL; @@ -13,6 +17,7 @@ struct Library *SocketBase = NULL; /** * Initializes the network core (as that is needed for some platforms + * @return true if the core has been initialized, false otherwise */ bool NetworkCoreInitialize(void) { diff --git a/src/network/core/core.h b/src/network/core/core.h index f88fd0116..a4cef3b5e 100644 --- a/src/network/core/core.h +++ b/src/network/core/core.h @@ -7,9 +7,14 @@ #include "os_abstraction.h" +/** + * @file core.h Base for all network types (UDP and TCP) + */ + bool NetworkCoreInitialize(void); void NetworkCoreShutdown(void); +/** Status of a network client; reasons why a client has quit */ typedef enum { NETWORK_RECV_STATUS_OKAY, ///< Everything is okay NETWORK_RECV_STATUS_DESYNC, ///< A desync did occur @@ -32,7 +37,10 @@ public: bool has_quit; ///< Whether the current client has quit/send a bad packet SOCKET sock; ///< The socket currently connected to public: + /** Create a new unbound socket */ NetworkSocketHandler() { this->sock = INVALID_SOCKET; this->has_quit = false; } + + /** Close the socket when distructing the socket handler */ virtual ~NetworkSocketHandler() { this->Close(); } /** Really close the socket */ diff --git a/src/network/core/packet.cpp b/src/network/core/packet.cpp index fe10af48f..a1f50e15e 100644 --- a/src/network/core/packet.cpp +++ b/src/network/core/packet.cpp @@ -10,7 +10,7 @@ #include "packet.h" /** - * @file packet.h Basic functions to create, fill and read packets. + * @file packet.cpp Basic functions to create, fill and read packets. */ @@ -94,6 +94,8 @@ void NetworkSend_uint64(Packet *packet, uint64 data) /** * Sends a string over the network. It sends out * the string + '\0'. No size-byte or something. + * @param packet packet to send the string in + * @param data the string to send */ void NetworkSend_string(Packet *packet, const char* data) { diff --git a/src/network/core/tcp.cpp b/src/network/core/tcp.cpp index 54271de57..8a7da433d 100644 --- a/src/network/core/tcp.cpp +++ b/src/network/core/tcp.cpp @@ -15,7 +15,7 @@ #include "../../helpers.hpp" /** - * @file tcp.c Basic functions to receive and send TCP packets. + * @file tcp.cpp Basic functions to receive and send TCP packets. */ /** Very ugly temporary hack !!! */ @@ -43,7 +43,6 @@ void NetworkTCPSocketHandler::Initialize() * A socket can make errors. When that happens this handles what to do. * For clients: close connection and drop back to main-menu * For servers: close connection and that is it - * @param cs the client to close the connection of * @return the new status * TODO: needs to be splitted when using client and server socket packets */ diff --git a/src/network/core/tcp.h b/src/network/core/tcp.h index c15f851aa..74e2880e7 100644 --- a/src/network/core/tcp.h +++ b/src/network/core/tcp.h @@ -55,18 +55,20 @@ enum { PACKET_END ///< Must ALWAYS be on the end of this list!! (period) }; +/** Packet that wraps a command */ typedef struct CommandPacket { - struct CommandPacket *next; + struct CommandPacket *next; ///< the next command packet (if in queue) PlayerByte player; ///< player that is executing the command uint32 cmd; ///< command being executed uint32 p1; ///< parameter p1 uint32 p2; ///< parameter p2 TileIndex tile; ///< tile command being executed on - char text[80]; + char text[80]; ///< possible text sent for name changes etc uint32 frame; ///< the frame in which this packet is executed byte callback; ///< any callback function executed upon successful completion of the command } CommandPacket; +/** Status of a client */ typedef enum { STATUS_INACTIVE, ///< The client is not connected nor active STATUS_AUTH, ///< The client is authorized @@ -81,18 +83,18 @@ typedef enum { class NetworkTCPSocketHandler : public NetworkSocketHandler { /* TODO: rewrite into a proper class */ public: - uint16 index; - uint32 last_frame; - uint32 last_frame_server; - byte lag_test; // This byte is used for lag-testing the client + uint16 index; ///< Client index + uint32 last_frame; ///< Last frame we have executed + uint32 last_frame_server; ///< Last frame the server has executed + byte lag_test; ///< Byte used for lag-testing the client - ClientStatus status; - bool writable; // is client ready to write to? + ClientStatus status; ///< Status of this client + bool writable; ///< Can we write to this socket? - Packet *packet_queue; // Packets that are awaiting delivery - Packet *packet_recv; // Partially received packet + Packet *packet_queue; ///< Packets that are awaiting delivery + Packet *packet_recv; ///< Partially received packet - CommandPacket *command_queue; // The command-queue awaiting delivery + CommandPacket *command_queue; ///< The command-queue awaiting delivery NetworkRecvStatus CloseConnection(); void Initialize(); diff --git a/src/network/core/udp.cpp b/src/network/core/udp.cpp index f20f98ba9..e6eedffc7 100644 --- a/src/network/core/udp.cpp +++ b/src/network/core/udp.cpp @@ -10,12 +10,11 @@ #include "udp.h" /** - * @file udp.c Basic functions to receive and send UDP packets. + * @file core/udp.cpp Basic functions to receive and send UDP packets. */ /** * Start listening on the given host and port. - * @param udp the place where the (references to the) UDP are stored * @param host the host (ip) to listen on * @param port the port to listen on * @param broadcast whether to allow broadcast sending/receiving @@ -69,7 +68,6 @@ bool NetworkUDPSocketHandler::Listen(const uint32 host, const uint16 port, const /** * Close the given UDP socket - * @param udp the socket to close */ void NetworkUDPSocketHandler::Close() { @@ -87,7 +85,6 @@ NetworkRecvStatus NetworkUDPSocketHandler::CloseConnection() /** * Send a packet over UDP - * @param udp the socket to send over * @param p the packet to send * @param recv the receiver (target) of the packet */ @@ -106,7 +103,6 @@ void NetworkUDPSocketHandler::SendPacket(Packet *p, const struct sockaddr_in *re /** * Receive a packet at UDP level - * @param udp the socket to receive the packet on */ void NetworkUDPSocketHandler::ReceivePackets() { @@ -305,7 +301,10 @@ void NetworkUDPSocketHandler::Recv_NetworkGameInfo(Packet *p, NetworkGameInfo *i } } -/* Defines a simple (switch) case for each network packet */ +/** + * Defines a simple (switch) case for each network packet + * @param type the packet type to create the case for + */ #define UDP_COMMAND(type) case type: this->NetworkPacketReceive_ ## type ## _command(p, client_addr); break; /** @@ -345,12 +344,12 @@ void NetworkUDPSocketHandler::HandleUDPPacket(Packet *p, const struct sockaddr_i } } -/* +/** * Create stub implementations for all receive commands that only * show a warning that the given command is not available for the * socket where the packet came from. + * @param type the packet type to create the stub for */ - #define DEFINE_UNAVAILABLE_UDP_RECEIVE_COMMAND(type) \ void NetworkUDPSocketHandler::NetworkPacketReceive_## type ##_command(\ Packet *p, const struct sockaddr_in *client_addr) { \ diff --git a/src/network/core/udp.h b/src/network/core/udp.h index 1d09675ef..e2ac876a9 100644 --- a/src/network/core/udp.h +++ b/src/network/core/udp.h @@ -120,8 +120,9 @@ protected: * the grfconfig list of the NetworkGameInfo. * @param config the GRF to handle */ - virtual void HandleIncomingNetworkGameInfoGRFConfig(GRFConfig *config) { NOT_REACHED(); } + virtual void HandleIncomingNetworkGameInfoGRFConfig(GRFConfig *config) = 0; public: + /** On destructing of this class, the socket needs to be closed */ virtual ~NetworkUDPSocketHandler() { this->Close(); } bool Listen(uint32 host, uint16 port, bool broadcast); |