Message Filter Overview

Limit incoming messages by category With client/server topologies, you do not usually want any system to send any message. For example, perhaps only the server can send kill messages. Or perhaps you want to segment players into stages, where players who have logged on but not yet provided their password cannot yet send game messages. The message filter is designed to deal with these situations automatically. The MessageFilter plugin defines categories of users by 'filterSet' which is just a numerical identifier supplied by the user. For example, you may have one filter set for newly connected systems, and another for authenticated systems. For each filter set you can Automatically add new connections Allow RPC calls Limit what messages, or ranges of messages, can be received, and what actions to take if this condition is violated (kick/ban/notify) Delete them Example: messageFilter.SetAutoAddNewConnectionsToFilter(0); messageFilter.SetAllowMessageID(true, ID_USER_PACKET_ENUM, ID_USER_PACKET_ENUM, 0); messageFilter.SetAllowMessageID(true, ID_USER_PACKET_ENUM+1, ID_USER_PACKET_ENUM+1, 1); This setup would automatically add all new connections to filter set 0, and only allow the message ID_USER_PACKET_ENUM to arrive. It would also create a new filter set, with the filterSet id 1, that only allowed ID_USER_PACKET_ENUM+1 to arrive. Messages that are always allowed (filtering them has no effect): ID_CONNECTION_LOST ID_DISCONNECTION_NOTIFICATION ID_NEW_INCOMING_CONNECTION ID_CONNECTION_REQUEST_ACCEPTED ID_CONNECTION_ATTEMPT_FAILED ID_NO_FREE_INCOMING_CONNECTIONS ID_RSA_PUBLIC_KEY_MISMATCH ID_CONNECTION_BANNED ID_INVALID_PASSWORD ID_MODIFIED_PACKET ID_PONG ID_ALREADY_CONNECTED ID_ADVERTISE_SYSTEM ID_REMOTE_DISCONNECTION_NOTIFICATION ID_REMOTE_CONNECTION_LOST ID_REMOTE_NEW_INCOMING_CONNECTION ID_DOWNLOAD_PROGRESS See Samples/MessageFilter for a complete sample. See MessageFilter.h for a complete list of all documented functions and parameters.

See Also

Index