Pol
Revision:cb584c9
|
#include <client.h>
Public Types | |
enum | e_recv_states { RECV_STATE_CRYPTSEED_WAIT, RECV_STATE_MSGTYPE_WAIT, RECV_STATE_MSGLEN_WAIT, RECV_STATE_MSGDATA_WAIT, RECV_STATE_CLIENTVERSION_WAIT } |
Public Member Functions | |
Client (ClientInterface &aInterface, Crypt::TCryptInfo &encryption) | |
void | closeConnection () |
bool | compareVersion (const std::string &ver) |
bool | compareVersion (const VersionDetailStruct &ver2) |
void | Disconnect () |
size_t | estimatedSize () const |
void | forceDisconnect () |
Bscript::BStruct * | getclientinfo () const |
const std::string & | getversion () const |
VersionDetailStruct | getversiondetail () const |
weak_ptr< Client > | getWeakPtr () const |
bool | have_queued_data () const |
std::string | ipaddrAsString () const |
bool | isActive () const |
bool | isConnected () const |
bool | isReallyConnected () const |
bool | IsUOKRClient () |
Bscript::BObjectImp * | make_ref () |
bool | might_use_v2_handler () const |
void | pause () |
void | recv_remaining (int total_expected) |
void | recv_remaining_nocrypt (int total_expected) |
void | restart () |
void | send_pause () |
void | send_queued_data () |
void | send_restart () |
void | setclientinfo (const Core::PKTIN_D9 *msg) |
void | setClientType (ClientTypeFlag type) |
void | setversion (const std::string &ver) |
void | setversiondetail (VersionDetailStruct &detail) |
bool | SpeedHackPrevention (bool add=true) |
std::string | status () const |
void | transmit (const void *data, int len, bool needslock=false) |
void | transmitmore (const void *data, int len) |
void | unregister () |
Static Public Member Functions | |
static void | Delete (Client *client) |
static void | itemizeclientversion (const std::string &ver, VersionDetailStruct &detail) |
Public Attributes | |
Clib::SpinLock | _fpLog_lock |
Accounts::Account * | acct |
bool | aosresist |
unsigned char | bufcheck1_AA |
unsigned char | bufcheck2_55 |
unsigned char | buffer [MAXBUFFER] |
unsigned int | bytes_received |
int | checkpoint |
Mobile::Character * | chr |
u16 | ClientType |
Crypt::CCryptBase * | cryptengine |
SOCKET | csocket |
bool | encrypt_server_stream |
std::string | fpLog |
ClientGameData * | gd |
unsigned int | instance_ |
ClientInterface & | Interface |
sockaddr | ipaddr |
Core::polclock_t | last_activity_at |
unsigned char | last_msgtype |
Core::polclock_t | last_packet_at |
unsigned short | listen_port |
unsigned int | message_length |
std::queue< PacketThrottler > | movementqueue |
u8 | movementsequence |
const Core::MessageTypeFilter * | msgtype_filter |
Clib::wallclock_t | next_movement |
std::atomic< int > | pause_count |
bool | ready |
enum Pol::Network::Client::e_recv_states | recv_state |
size_t | thread_pid |
u16 | UOExpansionFlag |
u32 | UOExpansionFlagClient |
unsigned int | bytes_transmitted |
Static Public Attributes | |
static std::mutex | _SocketMutex |
static unsigned int | instance_counter_ |
Protected Member Functions | |
void | queue_data (const void *data, unsigned short datalen) |
void | transmit_encrypted (const void *data, int len) |
void | xmit (const void *data, unsigned short datalen) |
Protected Attributes | |
Core::XmitBuffer * | first_xmit_buffer |
Core::XmitBuffer * | last_xmit_buffer |
int | n_queued |
int | queued_bytes_counter |
Private Member Functions | |
virtual | ~Client () |
void | PreDelete () |
Private Attributes | |
Core::PKTIN_D9 | clientinfo_ |
struct { | |
unsigned int bytes_received | |
unsigned int bytes_transmitted | |
} | counters |
bool | disconnect |
bool | paused_ |
bool | preDisconnect |
std::string | version_ |
VersionDetailStruct | versiondetail_ |
weak_ptr_owner< Client > | weakptr |
Pol::Network::Client::Client | ( | ClientInterface & | aInterface, |
Crypt::TCryptInfo & | encryption | ||
) |
Definition at line 73 of file client.cpp.
References buffer, clientinfo_, counters, Interface, ipaddr, recv_state, RECV_STATE_MSGTYPE_WAIT, Pol::Network::ClientInterface::register_client(), Pol::Core::settingsManager, versiondetail_, and weakptr.
Referenced by estimatedSize().
|
privatevirtual |
Definition at line 138 of file client.cpp.
void Pol::Network::Client::closeConnection | ( | ) |
Definition at line 148 of file client.cpp.
References csocket, and INVALID_SOCKET.
Referenced by PreDelete().
bool Pol::Network::Client::compareVersion | ( | const std::string & | ver | ) |
Definition at line 340 of file client.cpp.
References itemizeclientversion().
Referenced by Pol::Core::handle_client_version(), Pol::Core::handle_ef_seed(), and Pol::Module::UOExecutorModule::mf_SendGumpMenu().
bool Pol::Network::Client::compareVersion | ( | const VersionDetailStruct & | ver2 | ) |
Definition at line 347 of file client.cpp.
References getversiondetail(), Pol::Network::VersionDetailStruct::major, Pol::Network::VersionDetailStruct::minor, Pol::Network::VersionDetailStruct::patch, and Pol::Network::VersionDetailStruct::rev.
|
static |
Definition at line 129 of file client.cpp.
References _SocketMutex, cryptengine, and PreDelete().
Referenced by Pol::Network::ClientTransmitThread(), Pol::Core::NetworkManager::deinialize(), and Pol::Core::NetworkManager::kill_disconnected_clients().
void Pol::Network::Client::Disconnect | ( | ) |
Definition at line 296 of file clientio.cpp.
References Pol::Core::NetworkManager::clientTransmit, isConnected(), Pol::Core::networkManager, and preDisconnect.
Referenced by Pol::Accounts::AccountObjImp::call_method_id(), Pol::Core::char_select(), Pol::Core::ClientCreateChar(), Pol::Core::ClientCreateChar70160(), Pol::Core::ClientCreateCharKR(), Pol::Core::handle_delete_character(), Pol::Core::login2(), Pol::Core::loginserver_login(), and Pol::Module::UOExecutorModule::mf_DisconnectClient().
size_t Pol::Network::Client::estimatedSize | ( | ) | const |
Definition at line 718 of file client.cpp.
References _fpLog_lock, Client(), Pol::Network::ClientGameData::estimatedSize(), first_xmit_buffer, fpLog, gd, Pol::Core::XmitBuffer::lenleft, movementqueue, Pol::Core::XmitBuffer::next, and version_.
|
inline |
Definition at line 288 of file client.h.
Referenced by Pol::Core::char_select(), Pol::Core::check_incoming_data(), Pol::Core::client_io_thread(), Pol::Core::ClientCreateChar(), Pol::Core::ClientCreateChar70160(), Pol::Core::ClientCreateCharKR(), Pol::Core::process_data(), and Pol::Core::select_server().
Bscript::BStruct * Pol::Network::Client::getclientinfo | ( | ) | const |
Definition at line 230 of file client.cpp.
References clientinfo_, Pol::Core::PKTIN_D9::clients_installed, Pol::Core::PKTIN_D9::clients_running, Pol::Core::convertUCtoArray(), Pol::Core::PKTIN_D9::cpu_clockspeed, Pol::Core::PKTIN_D9::cpu_family, Pol::Core::PKTIN_D9::cpu_manufacturer, Pol::Core::PKTIN_D9::cpu_model, Pol::Core::PKTIN_D9::cpu_quantity, Pol::Core::PKTIN_D9::directx_major, Pol::Core::PKTIN_D9::directx_minor, Pol::Core::PKTIN_D9::distribution, Pol::Core::PKTIN_D9::instance, Pol::Core::PKTIN_D9::langcode, Pol::Core::PKTIN_D9::memory, Pol::Core::PKTIN_D9::os_major, Pol::Core::PKTIN_D9::os_minor, Pol::Core::PKTIN_D9::os_revision, Pol::Core::PKTIN_D9::partial_installed, Pol::Core::PKTIN_D9::screen_depth, Pol::Core::PKTIN_D9::screen_height, Pol::Core::PKTIN_D9::screen_width, Pol::Core::PKTIN_D9::unknown1, Pol::Core::PKTIN_D9::unknown2, Pol::Core::PKTIN_D9::video_description, Pol::Core::PKTIN_D9::video_device, Pol::Core::PKTIN_D9::video_memory, and Pol::Core::PKTIN_D9::video_vendor.
|
inline |
|
inline |
Definition at line 164 of file client.h.
Referenced by compareVersion(), Pol::Network::get_packethook(), Pol::Module::UOExecutorModule::mf_SendOverallSeason(), Pol::Core::send_season_info(), and Pol::Core::send_stat_locks().
Definition at line 713 of file client.cpp.
References weakptr.
Referenced by Pol::Network::ClientTransmit::AddToQueue(), Pol::Network::ClientTransmit::QueueDelete(), and Pol::Network::ClientTransmit::QueueDisconnection().
|
inline |
Definition at line 281 of file client.h.
Referenced by Pol::Core::check_incoming_data(), Pol::Core::client_io_thread(), and status().
std::string Pol::Network::Client::ipaddrAsString | ( | ) | const |
Definition at line 37 of file clientio.cpp.
References Pol::Network::AddressToString(), and ipaddr.
Referenced by Pol::Core::ClientCreateChar(), Pol::Core::ClientCreateChar70160(), Pol::Core::ClientCreateCharKR(), Pol::Core::report_weird_packet(), and status().
|
inline |
Definition at line 306 of file client.h.
Referenced by Pol::Mobile::Character::has_active_client().
|
inline |
Definition at line 301 of file client.h.
Referenced by Pol::Core::BPacket::call_method_id(), Pol::Core::client_io_thread(), Disconnect(), Pol::Module::UOExecutorModule::mf_DisconnectClient(), Pol::Module::UOExecutorModule::mf_SendPacket(), and Pol::Core::process_data().
|
inline |
Definition at line 295 of file client.h.
Referenced by Pol::Core::check_incoming_data(), Pol::Core::client_io_thread(), and Pol::Core::NetworkManager::kill_disconnected_clients().
bool Pol::Network::Client::IsUOKRClient | ( | ) |
Definition at line 421 of file client.cpp.
References ClientType, Pol::Network::CLIENTTYPE_7000, and Pol::Network::CLIENTTYPE_UOKR.
Referenced by Pol::Module::UOExecutorModule::mf_SendGumpMenu().
|
static |
Definition at line 299 of file client.cpp.
References Pol::Network::VersionDetailStruct::major, Pol::Network::VersionDetailStruct::minor, Pol::Network::VersionDetailStruct::patch, POLLOG, and Pol::Network::VersionDetailStruct::rev.
Referenced by compareVersion(), and Pol::Core::handle_client_version().
Bscript::BObjectImp * Pol::Network::Client::make_ref | ( | ) |
Definition at line 708 of file client.cpp.
References weakptr.
Referenced by Pol::Network::CallOutgoingPacketExportedFunction(), and Pol::Network::ExportedPacketHookHandler().
|
inline |
Definition at line 311 of file client.h.
References Pol::Network::CLIENTTYPE_6017.
Referenced by Pol::Network::PacketRegistry::find_handler().
void Pol::Network::Client::pause | ( | ) |
Definition at line 629 of file client.cpp.
References pause_count, and send_pause().
Referenced by Pol::Core::UContainer::builtin_on_use(), Pol::Core::do_place_item_in_secure_trade_container(), Pol::Core::drop_item_on_mobile(), Pol::Core::handle_walk(), Pol::Module::UOExecutorModule::mf_SendBuyWindow(), Pol::Module::UOExecutorModule::mf_SendViewContainer(), Pol::Module::oldSellHandler(), Pol::Mobile::Character::on_death(), Pol::Core::place_item_in_container(), Pol::Mobile::Character::resurrect(), Pol::Multi::UBoat::send_boat_old(), Pol::Core::Spellbook::send_book_old(), Pol::Core::start_client_char(), transmit(), and transmitmore().
|
private |
Definition at line 164 of file client.cpp.
References _fpLog_lock, acct, chr, Pol::Mobile::Character::client, CLOSE_FLEXLOG, closeConnection(), Pol::Core::ClrCharacterWorldPosition(), ERROR_PRINT, first_xmit_buffer, FLEXLOG, fpLog, gd, Pol::Mobile::Character::get_opponent(), last_xmit_buffer, Pol::Clib::localtime(), Pol::Mobile::Character::logged_in(), n_queued, Pol::Core::XmitBuffer::next, Pol::Realms::PlayerExit, Pol::Mobile::Character::removal_cleanup(), Pol::Core::send_remove_character_to_nearby(), and Pol::Mobile::Character::set_opponent().
Referenced by Delete().
|
protected |
Definition at line 448 of file client.cpp.
References Pol::Core::XmitBuffer::data, disconnect, first_xmit_buffer, instance_, last_xmit_buffer, Pol::Core::XmitBuffer::lenleft, n_queued, Pol::Core::XmitBuffer::next, Pol::Core::XmitBuffer::nsent, POLLOG, queued_bytes_counter, and THREAD_CHECKPOINT.
Referenced by xmit().
void Pol::Network::Client::recv_remaining | ( | int | total_expected | ) |
Definition at line 42 of file clientio.cpp.
References _SocketMutex, buffer, Pol::Core::PolStats::bytes_received, bytes_received, counters, cryptengine, csocket, disconnect, Pol::Core::networkManager, passert, Pol::Core::NetworkManager::polstats, Pol::Crypt::CCryptBase::Receive(), SOCKET_ERRNO, and socket_errno.
Referenced by Pol::Core::handle_humongous_packet(), Pol::Core::handle_undefined_packet(), and Pol::Core::process_data().
void Pol::Network::Client::recv_remaining_nocrypt | ( | int | total_expected | ) |
Definition at line 72 of file clientio.cpp.
References _SocketMutex, buffer, Pol::Core::PolStats::bytes_received, bytes_received, counters, csocket, disconnect, Pol::Core::networkManager, Pol::Core::NetworkManager::polstats, SOCKET_ERRNO, and socket_errno.
Referenced by Pol::Core::process_data().
void Pol::Network::Client::restart | ( | ) |
Definition at line 654 of file client.cpp.
References pause_count, and send_restart().
Referenced by Pol::Core::UContainer::builtin_on_use(), Pol::Core::client_io_thread(), Pol::Core::do_cast(), Pol::Core::do_place_item_in_secure_trade_container(), Pol::Core::drop_item_on_mobile(), Pol::Core::handle_walk(), Pol::Module::UOExecutorModule::mf_SendBuyWindow(), Pol::Module::UOExecutorModule::mf_SendViewContainer(), Pol::Module::oldSellHandler(), Pol::Mobile::Character::on_death(), Pol::Core::place_item_in_container(), Pol::Core::restart_all_clients(), Pol::Mobile::Character::resurrect(), Pol::Core::Spellbook::send_book_old(), and Pol::Core::start_client_char().
void Pol::Network::Client::send_pause | ( | ) |
Definition at line 613 of file client.cpp.
References MSGOPT_33_FLOW_PAUSE, Pol::Core::networkManager, paused_, Pol::Core::PKTOUT_33_ID, transmit(), and xmit().
Referenced by Pol::Core::handle_resync_request(), and pause().
void Pol::Network::Client::send_queued_data | ( | ) |
Definition at line 554 of file client.cpp.
References _SocketMutex, Pol::Core::PolStats::bytes_sent, counters, csocket, Pol::Core::XmitBuffer::data, disconnect, first_xmit_buffer, instance_, last_xmit_buffer, Pol::Core::XmitBuffer::lenleft, n_queued, Pol::Core::networkManager, Pol::Core::XmitBuffer::next, Pol::Core::XmitBuffer::nsent, POLLOG, Pol::Core::NetworkManager::polstats, queued_bytes_counter, and SOCKET_ERRNO.
Referenced by Pol::Core::check_incoming_data(), and Pol::Core::client_io_thread().
void Pol::Network::Client::send_restart | ( | ) |
Definition at line 638 of file client.cpp.
References MSGOPT_33_FLOW_RESTART, paused_, Pol::Core::PKTOUT_33_ID, transmit(), and xmit().
Referenced by Pol::Core::handle_resync_request(), and restart().
|
inline |
Definition at line 175 of file client.h.
Referenced by Pol::Core::handle_D9().
void Pol::Network::Client::setClientType | ( | ClientTypeFlag | type | ) |
Definition at line 371 of file client.cpp.
References ClientType, Pol::Network::CLIENTTYPE_4000, Pol::Network::CLIENTTYPE_4070, Pol::Network::CLIENTTYPE_5000, Pol::Network::CLIENTTYPE_5020, Pol::Network::CLIENTTYPE_60142, Pol::Network::CLIENTTYPE_6017, Pol::Network::CLIENTTYPE_7000, Pol::Network::CLIENTTYPE_70130, Pol::Network::CLIENTTYPE_70300, Pol::Network::CLIENTTYPE_70331, Pol::Network::CLIENTTYPE_7090, Pol::Network::CLIENTTYPE_UOKR, and Pol::Network::CLIENTTYPE_UOSA.
Referenced by Pol::Core::handle_client_version(), Pol::Core::handle_e1_clienttype(), Pol::Core::handle_ef_seed(), and Pol::Core::process_data().
|
inline |
Definition at line 162 of file client.h.
Referenced by Pol::Core::handle_client_version(), and Pol::Core::handle_ef_seed().
|
inline |
Definition at line 165 of file client.h.
References Pol::Crypt::compareVersion().
Referenced by Pol::Core::handle_client_version(), and Pol::Core::handle_ef_seed().
bool Pol::Network::Client::SpeedHackPrevention | ( | bool | add = true | ) |
Definition at line 662 of file client.cpp.
References buffer, Pol::Mobile::Character::can_speedhack(), chr, disconnect, instance_, movementqueue, next_movement, Pol::Network::PacketThrottler::pktbuffer, PKTIN_02_ASYNCHRONOUS, PKTIN_02_SIZE, POLLOG_ERROR, Pol::Clib::wallclock(), and Pol::Clib::wallclock_diff_ms().
Referenced by Pol::Core::client_io_thread(), and Pol::Core::process_data().
std::string Pol::Network::Client::status | ( | ) | const |
Definition at line 426 of file client.cpp.
References acct, checkpoint, chr, Pol::Clib::decint(), disconnect, have_queued_data(), Pol::Clib::hexint(), ipaddrAsString(), last_msgtype, Pol::Accounts::Account::name(), Pol::Core::UObject::name(), paused_, ready, and thread_pid.
void Pol::Network::Client::transmit | ( | const void * | data, |
int | len, | ||
bool | needslock = false |
||
) |
Definition at line 189 of file clientio.cpp.
References _fpLog_lock, _SocketMutex, Pol::Network::IOStats::Packet::bytes, Pol::Network::CallOutgoingPacketExportedFunction(), Pol::Network::IOStats::Packet::count, disconnect, encrypt_server_stream, Pol::Clib::fdump(), FLEXLOG, fpLog, Pol::Network::GetAndCheckPacketHooked(), Pol::Core::NetworkManager::iostats, last_xmit_buffer, Pol::Core::networkManager, pause(), POLLOG_INFO, Pol::Core::NetworkManager::queuedmode_iostats, Pol::Network::IOStats::sent, transmit_encrypted(), and xmit().
Referenced by send_pause(), send_restart(), and Pol::Network::PktHelper::PacketOut< T >::SendDirect().
|
protected |
Definition at line 102 of file clientio.cpp.
References Pol::Core::SVR_KEYDESC::bits_reversed, Pol::Network::PacketWriterDefs::EmptyBufferTemplate< _id, _size >::buffer, ENCRYPTEDPKTBUFFER, Pol::Network::PacketWriterDefs::EmptyBufferTemplate< _id, _size >::getBuffer(), Pol::Core::keydesc, Pol::Core::SVR_KEYDESC::nbits, passert_always, Pol::Network::PktHelper::ReAddPacket(), THREAD_CHECKPOINT, and xmit().
Referenced by transmit(), and transmitmore().
void Pol::Network::Client::transmitmore | ( | const void * | data, |
int | len | ||
) |
Definition at line 266 of file clientio.cpp.
References _fpLog_lock, encrypt_server_stream, Pol::Clib::fdump(), FLEXLOG, fpLog, pause(), transmit_encrypted(), and xmit().
void Pol::Network::Client::unregister | ( | ) |
Definition at line 140 of file client.cpp.
References Pol::Core::NetworkManager::clients, Pol::Network::ClientInterface::deregister_client(), Interface, and Pol::Core::networkManager.
Referenced by Pol::Core::client_io_thread().
|
protected |
Definition at line 486 of file client.cpp.
References Pol::Core::PolStats::bytes_sent, counters, cryptengine, csocket, disconnect, Pol::Crypt::CCryptBase::Encrypt(), encrypt_server_stream, instance_, INVALID_SOCKET, last_xmit_buffer, Pol::Core::networkManager, POLLOG_ERROR, Pol::Core::NetworkManager::polstats, queue_data(), SOCKET_ERRNO, socket_errno, and THREAD_CHECKPOINT.
Referenced by send_pause(), send_restart(), transmit(), transmit_encrypted(), and transmitmore().
|
mutable |
Definition at line 221 of file client.h.
Referenced by estimatedSize(), PreDelete(), Pol::Core::process_data(), Pol::Core::start_packetlog(), Pol::Core::stop_packetlog(), Pol::Core::textcmd_startlog(), Pol::Core::textcmd_stoplog(), transmit(), and transmitmore().
|
static |
Definition at line 193 of file client.h.
Referenced by Delete(), recv_remaining(), recv_remaining_nocrypt(), send_queued_data(), and transmit().
Accounts::Account* Pol::Network::Client::acct |
Definition at line 181 of file client.h.
Referenced by Pol::Core::acct_check(), Pol::Core::char_select(), Pol::Core::check_incoming_data(), Pol::Core::client_io_thread(), Pol::Core::ClientCreateChar(), Pol::Core::ClientCreateChar70160(), Pol::Core::ClientCreateCharKR(), Pol::Core::UoClientThread::create(), Pol::Module::gumpbutton_handler(), Pol::Core::handle_delete_character(), Pol::Core::handle_menu_selection(), Pol::Core::handle_msg_BF(), Pol::Core::handle_rename_char(), Pol::Module::handle_selcolor(), Pol::Core::handle_unicode_prompt(), Pol::Core::NetworkManager::kill_disconnected_clients(), Pol::Core::login2(), Pol::Core::loginserver_login(), Pol::Module::popup_menu_selection_made(), PreDelete(), Pol::Core::process_data(), Pol::Core::report_weird_packet(), Pol::Core::send_feature_enable(), Pol::Core::send_start(), Pol::Core::start_packetlog(), status(), Pol::Core::textcmd_startlog(), and Pol::Core::threadstatus_thread().
bool Pol::Network::Client::aosresist |
Definition at line 195 of file client.h.
Referenced by Pol::Core::UoClientThread::create(), and Pol::Core::send_full_statmsg().
unsigned char Pol::Network::Client::bufcheck1_AA |
Definition at line 207 of file client.h.
Referenced by Pol::Core::process_data().
unsigned char Pol::Network::Client::bufcheck2_55 |
Definition at line 209 of file client.h.
Referenced by Pol::Core::process_data().
unsigned char Pol::Network::Client::buffer[MAXBUFFER] |
Definition at line 208 of file client.h.
Referenced by Pol::Core::check_inactivity(), Client(), Pol::Core::handle_humongous_packet(), Pol::Core::handle_undefined_packet(), Pol::Core::process_data(), recv_remaining(), recv_remaining_nocrypt(), Pol::Core::report_weird_packet(), Pol::Network::PktHelper::PacketOut< T >::Send(), SpeedHackPrevention(), and Pol::Core::valid_message_length().
unsigned int Pol::Network::Client::bytes_received |
Definition at line 210 of file client.h.
Referenced by Pol::Core::process_data(), recv_remaining(), recv_remaining_nocrypt(), and Pol::Core::report_weird_packet().
int Pol::Network::Client::checkpoint |
Definition at line 255 of file client.h.
Referenced by Pol::Core::client_io_thread(), status(), and Pol::Core::threadstatus_thread().
Mobile::Character* Pol::Network::Client::chr |
Definition at line 182 of file client.h.
Referenced by Pol::Core::add_item_to_stack(), Pol::Core::UDoor::builtin_on_use(), Pol::Module::buyhandler(), Pol::Network::CallOutgoingPacketExportedFunction(), Pol::Core::can_see_on_corpse(), Pol::Core::cancel_all_trades(), Pol::Core::CanUseSkill(), Pol::Core::char_select(), Pol::Module::character_race_changer_handler(), Pol::Mobile::Character::check_justice_region_change(), Pol::Core::client_io_thread(), Pol::Core::ClientCreateChar(), Pol::Core::ClientCreateChar70160(), Pol::Core::ClientCreateCharKR(), Pol::Core::clientHasCharacter(), Pol::Core::do_cast(), Pol::Core::do_open_trade_window(), Pol::Core::do_place_item_in_secure_trade_container(), Pol::Core::Spellbook::double_click(), Pol::Items::Item::double_click(), Pol::Core::doubleclick(), Pol::Core::drop_item(), Pol::Core::drop_item_on_ground(), Pol::Core::drop_item_on_mobile(), Pol::Core::drop_item_on_object(), Pol::Core::drop_item_v2(), Pol::Core::equip_item(), Pol::Network::ExportedPacketHookHandler(), Pol::Core::ext_stats_in(), Pol::Core::get_item(), Pol::Module::gumpbutton_handler(), Pol::Core::handle_accept_invite(), Pol::Core::handle_action(), Pol::Core::handle_add(), Pol::Core::handle_allnames(), Pol::Core::handle_aos_commands(), Pol::Mobile::handle_attack(), Pol::Core::handle_char_profile_request(), Pol::Core::handle_client_version(), Pol::Core::handle_decline_invite(), Pol::Core::handle_help(), Pol::Core::handle_loot_perm(), Pol::Core::handle_map_pin(), Pol::Core::handle_member_msg(), Pol::Core::handle_menu_selection(), Pol::Core::handle_mode_set(), Pol::Core::handle_msg_BF(), Pol::Core::handle_open_spellbook(), Pol::Core::handle_party_msg(), Pol::Core::handle_processed_speech(), Pol::Core::handle_remove(), Pol::Core::handle_rename_char(), Pol::Core::handle_request_tooltip(), Pol::Module::handle_resurrect_menu(), Pol::Core::handle_resync_request(), Pol::Core::handle_secure_trade_msg(), Pol::Module::handle_selcolor(), Pol::Core::handle_singleclick(), Pol::Core::handle_skill_lock(), Pol::Core::handle_target_cursor(), Pol::Module::handle_textentry(), Pol::Core::handle_walk(), Pol::Core::NetworkManager::kill_disconnected_clients(), Pol::Module::menu_selection_made(), Pol::Module::UOExecutorModule::mf_SendOverallSeason(), Pol::Multi::UBoat::move(), Pol::Multi::UBoat::move_components(), Pol::Multi::UBoat::move_travellers(), Pol::Module::oldBuyHandler(), Pol::Module::oldSellHandler(), Pol::Mobile::Character::on_aos_ext_stat_changed(), Pol::Mobile::Character::on_color_changed(), Pol::Mobile::Character::on_death(), Pol::Mobile::Character::on_facing_changed(), Pol::Mobile::Character::on_poison_changed(), Pol::Core::OnChatButton(), Pol::Core::OnGuildButton(), Pol::Core::OnQuestButton(), Pol::Module::open_book_handler(), Pol::Core::open_trade_window(), Pol::Core::place_item(), Pol::Core::place_item_in_container(), Pol::Core::place_item_in_secure_trade_container(), Pol::Module::popup_menu_selection_made(), PreDelete(), Pol::Core::process_command(), Pol::Module::read_book_page_handler(), Pol::Core::remove_objects_inrange(), Pol::Mobile::Character::resurrect(), Pol::Module::sellhandler(), Pol::Network::MoveChrPkt::Send(), Pol::Core::send_char_data(), Pol::Core::send_char_if_newly_inrange(), Pol::Core::send_client_char_data(), Pol::Core::send_container_contents(), Pol::Core::LosCheckedCoordCursor::send_coord_cursor(), Pol::Mobile::send_create_ghost(), Pol::Core::send_create_mobile_if_nearby_cansee(), Pol::Multi::UBoat::send_display_boat(), Pol::Multi::UBoat::send_display_boat_to_inrange(), Pol::Core::send_fight_occuring(), Pol::Core::send_inrange_items(), Pol::Core::send_inrange_multis(), Pol::Core::send_item(), Pol::Core::send_item_if_newly_inrange(), Pol::Core::send_item_to_inrange(), Pol::Core::send_mana_level(), Pol::Core::send_move_if_inrange2(), Pol::Core::send_multi_if_newly_inrange(), Pol::Core::send_nametext(), Pol::Core::send_new_subserver(), Pol::Core::TargetCursor::send_object_cursor(), Pol::Core::send_objects_newly_inrange(), Pol::Core::send_objects_newly_inrange_on_boat(), Pol::Core::send_owncreate(), Pol::Core::send_paperdoll(), Pol::Core::MultiPlacementCursor::send_placemulti(), Pol::Core::send_remove_character(), Pol::Mobile::send_remove_if_hidden_ghost(), Pol::Core::send_remove_object_if_inrange(), Pol::Core::send_season_info(), Pol::Core::send_short_statmsg(), Pol::Multi::UBoat::send_smooth_move_to_inrange(), Pol::Core::send_stamina_level(), Pol::Core::send_startup(), Pol::Core::SendUnicodeSpeech(), Pol::Mobile::Character::setgraphic(), Pol::Core::SetRegionLightLevel(), Pol::Core::singleclick(), Pol::Core::skillrequest(), SpeedHackPrevention(), Pol::Core::srequest(), Pol::Core::start_client_char(), Pol::Core::start_textcmd_script(), Pol::Core::StartSkillScript(), Pol::Core::statrequest(), status(), Pol::Core::textcmd_flag1(), Pol::Core::textcmd_flag2(), Pol::Core::textcmd_listarmor(), Pol::Core::textcmd_resendchars(), Pol::Core::textcmd_singlezone_integ_item(), Pol::Core::textcmd_startlog(), Pol::Core::textcmd_stoplog(), Pol::Multi::UBoat::transform_components(), Pol::Multi::UBoat::turn_travellers(), Pol::Core::UnicodeSpeechHandler(), Pol::Core::update_lightregion(), Pol::Core::update_weatherregion(), and Pol::Mobile::Character::~Character().
|
private |
Definition at line 275 of file client.h.
Referenced by Client(), and getclientinfo().
u16 Pol::Network::Client::ClientType |
Definition at line 260 of file client.h.
Referenced by Pol::Core::Map::builtin_on_use(), Pol::Core::ClientCreateChar(), Pol::Core::ClientCreateChar70160(), Pol::Mobile::Character::get_flag1(), IsUOKRClient(), Pol::Core::login2(), Pol::Module::UOExecutorModule::mf_SendBuyWindow(), Pol::Module::UOExecutorModule::mf_SendGumpMenu(), Pol::Module::UOExecutorModule::mf_SendQuestArrow(), Pol::Multi::UBoat::move(), Pol::Multi::UBoat::move_travellers(), Pol::Mobile::PropagateMove(), Pol::Core::select_server(), Pol::Network::SendWorldItem::Send(), Pol::Network::SendWorldMulti::Send(), Pol::Network::AddItemContainerMsg::Send(), Pol::Network::MobileAnimationMsg::Send(), Pol::Network::SendDamagePkt::Send(), Pol::Network::ObjRevisionPkt::Send(), Pol::Network::HealthBarStatusUpdate::Send(), Pol::Core::send_container_contents(), Pol::Core::send_corpse_contents(), Pol::Multi::UBoat::send_display_boat_to_inrange(), Pol::Core::send_feature_enable(), Pol::Core::send_full_statmsg(), Pol::Core::send_goxyz(), Pol::Core::send_invulhealthbar(), Pol::Core::send_objects_newly_inrange_on_boat(), Pol::Core::send_open_gump(), Pol::Core::send_owncreate(), Pol::Core::MultiPlacementCursor::send_placemulti(), Pol::Core::send_poisonhealthbar(), Pol::Multi::UBoat::send_smooth_move_to_inrange(), Pol::Core::send_spellbook_contents(), Pol::Core::send_start(), setClientType(), and Pol::Multi::UBoat::turn_travellers().
struct { ... } Pol::Network::Client::counters |
Referenced by Client(), recv_remaining(), recv_remaining_nocrypt(), send_queued_data(), and xmit().
Crypt::CCryptBase* Pol::Network::Client::cryptengine |
Definition at line 215 of file client.h.
Referenced by Delete(), Pol::Core::process_data(), recv_remaining(), Pol::Core::select_server(), and xmit().
SOCKET Pol::Network::Client::csocket |
Definition at line 192 of file client.h.
Referenced by Pol::Core::check_incoming_data(), Pol::Core::client_io_thread(), closeConnection(), Pol::Core::UoClientThread::create(), recv_remaining(), recv_remaining_nocrypt(), send_queued_data(), and xmit().
|
private |
Definition at line 144 of file client.h.
Referenced by queue_data(), recv_remaining(), recv_remaining_nocrypt(), send_queued_data(), SpeedHackPrevention(), status(), transmit(), and xmit().
bool Pol::Network::Client::encrypt_server_stream |
Definition at line 217 of file client.h.
Referenced by Pol::Core::login2(), transmit(), transmitmore(), and xmit().
|
protected |
Definition at line 240 of file client.h.
Referenced by estimatedSize(), PreDelete(), queue_data(), and send_queued_data().
std::string Pol::Network::Client::fpLog |
Definition at line 222 of file client.h.
Referenced by estimatedSize(), PreDelete(), Pol::Core::process_data(), Pol::Core::start_packetlog(), Pol::Core::stop_packetlog(), Pol::Core::textcmd_startlog(), Pol::Core::textcmd_stoplog(), transmit(), and transmitmore().
ClientGameData* Pol::Network::Client::gd |
Definition at line 252 of file client.h.
Referenced by Pol::Module::buyhandler(), Pol::Core::char_select(), Pol::Mobile::Character::check_justice_region_change(), Pol::Mobile::Character::check_light_region_change(), Pol::Mobile::Character::check_music_region_change(), Pol::Mobile::Character::check_weather_region_change(), Pol::Module::clear_gumphandler(), Pol::Core::client_io_thread(), Pol::Multi::CustomHouseStopEditing(), Pol::Mobile::Character::CustomHousingMove(), estimatedSize(), Pol::Multi::UHouse::FindWorkingHouse(), Pol::Module::gumpbutton_handler(), Pol::Module::handle_coord_cursor(), Pol::Core::handle_prompt(), Pol::Module::handle_resurrect_menu(), Pol::Module::handle_script_cursor(), Pol::Module::handle_selcolor(), Pol::Module::handle_textentry(), Pol::Core::handle_unicode_prompt(), Pol::Mobile::Character::has_active_gump(), Pol::Mobile::Character::has_active_prompt(), Pol::Module::UOExecutorModule::internal_SendCompressedGumpMenu(), Pol::Module::UOExecutorModule::internal_SendUnCompressedGumpMenu(), Pol::Mobile::Character::is_house_editing(), Pol::Module::menu_selection_made(), Pol::Module::UOExecutorModule::mf_CloseGump(), Pol::Module::UOExecutorModule::mf_GetRegionName(), Pol::Module::UOExecutorModule::mf_PromptInput(), Pol::Module::UnicodeExecutorModule::mf_RequestInputUC(), Pol::Module::UOExecutorModule::mf_SelectColor(), Pol::Module::UOExecutorModule::mf_SelectMenuItem(), Pol::Module::UOExecutorModule::mf_SendBuyWindow(), Pol::Module::UOExecutorModule::mf_SendHousingTool(), Pol::Module::UOExecutorModule::mf_SendInstaResDialog(), Pol::Module::UOExecutorModule::mf_SendPopUpMenu(), Pol::Module::UOExecutorModule::mf_SendSellWindow(), Pol::Module::UOExecutorModule::mf_SendTextEntryGump(), Pol::Module::UOExecutorModule::mf_Target(), Pol::Module::UOExecutorModule::mf_TargetCoordinates(), Pol::Module::UOExecutorModule::mf_TargetMultiPlacement(), Pol::Core::move_character_to(), Pol::Module::oldBuyHandler(), Pol::Module::oldSellHandler(), Pol::Module::popup_menu_selection_made(), PreDelete(), Pol::Core::JusticeRegion::RunNoCombatCheck(), Pol::Multi::UHouse::script_method_id(), Pol::Module::sellhandler(), Pol::Core::send_season_info(), Pol::Core::SetRegionLightLevel(), Pol::Core::start_client_char(), Pol::Mobile::Character::target_cursor_busy(), Pol::Core::update_weatherregion(), Pol::Realms::Realm::walkheight(), Pol::Module::UnicodeExecutorModule::~UnicodeExecutorModule(), and Pol::Module::UOExecutorModule::~UOExecutorModule().
unsigned int Pol::Network::Client::instance_ |
Definition at line 253 of file client.h.
Referenced by Pol::Core::client_io_thread(), Pol::Core::UoClientThread::create(), Pol::Core::handle_rename_char(), Pol::Module::handle_selcolor(), Pol::Core::handle_unicode_prompt(), Pol::Core::NetworkManager::kill_disconnected_clients(), Pol::Core::process_data(), queue_data(), Pol::Core::report_weird_packet(), send_queued_data(), SpeedHackPrevention(), and xmit().
|
static |
ClientInterface& Pol::Network::Client::Interface |
Definition at line 183 of file client.h.
Referenced by Client(), Pol::Network::send_uo_skill(), Pol::Network::ClientInterface::tell_attribute_changed(), Pol::Network::ClientInterface::tell_vital_changed(), and unregister().
sockaddr Pol::Network::Client::ipaddr |
Definition at line 213 of file client.h.
Referenced by Pol::Core::check_incoming_data(), Client(), Pol::Core::client_io_thread(), Pol::Core::ClientCreateChar(), Pol::Core::ClientCreateChar70160(), Pol::Core::ClientCreateCharKR(), Pol::Core::UoClientThread::create(), ipaddrAsString(), Pol::Network::is_banned_ip(), Pol::Core::login2(), Pol::Core::loginserver_login(), Pol::Core::process_data(), Pol::Core::server_applies(), and Pol::Core::threadstatus_thread().
Core::polclock_t Pol::Network::Client::last_activity_at |
Definition at line 265 of file client.h.
Referenced by Pol::Core::client_io_thread().
unsigned char Pol::Network::Client::last_msgtype |
Definition at line 256 of file client.h.
Referenced by Pol::Core::process_data(), and status().
Core::polclock_t Pol::Network::Client::last_packet_at |
Definition at line 266 of file client.h.
Referenced by Pol::Core::client_io_thread().
|
protected |
Definition at line 241 of file client.h.
Referenced by PreDelete(), queue_data(), send_queued_data(), transmit(), and xmit().
unsigned short Pol::Network::Client::listen_port |
Definition at line 194 of file client.h.
Referenced by Pol::Core::UoClientThread::create(), and Pol::Core::select_server().
unsigned int Pol::Network::Client::message_length |
Definition at line 211 of file client.h.
Referenced by Pol::Core::process_data(), and Pol::Core::valid_message_length().
std::queue<PacketThrottler> Pol::Network::Client::movementqueue |
Definition at line 261 of file client.h.
Referenced by Pol::Core::client_io_thread(), estimatedSize(), and SpeedHackPrevention().
u8 Pol::Network::Client::movementsequence |
Definition at line 263 of file client.h.
Referenced by Pol::Core::handle_walk().
const Core::MessageTypeFilter* Pol::Network::Client::msgtype_filter |
Definition at line 219 of file client.h.
Referenced by Pol::Core::char_select(), Pol::Core::ClientCreateChar(), Pol::Core::ClientCreateChar70160(), Pol::Core::ClientCreateCharKR(), and Pol::Core::process_data().
|
protected |
Definition at line 242 of file client.h.
Referenced by PreDelete(), queue_data(), and send_queued_data().
Clib::wallclock_t Pol::Network::Client::next_movement |
Definition at line 262 of file client.h.
Referenced by Pol::Core::handle_walk(), and SpeedHackPrevention().
std::atomic<int> Pol::Network::Client::pause_count |
Definition at line 231 of file client.h.
Referenced by Pol::Core::client_io_thread(), pause(), restart(), and Pol::Core::restart_all_clients().
|
private |
Definition at line 276 of file client.h.
Referenced by send_pause(), send_restart(), and status().
|
private |
Definition at line 143 of file client.h.
Referenced by Disconnect().
|
protected |
Definition at line 243 of file client.h.
Referenced by queue_data(), and send_queued_data().
bool Pol::Network::Client::ready |
Definition at line 185 of file client.h.
Referenced by Pol::Network::UOClientInterface::bcast_vital_changed(), Pol::Core::cancel_all_trades(), Pol::Core::char_select(), Pol::Core::send_char_data(), Pol::Core::send_create_mobile_if_nearby_cansee(), Pol::Core::send_move_if_inrange2(), Pol::Core::send_remove_character(), Pol::Core::send_remove_object(), Pol::Core::send_remove_object_if_inrange(), Pol::Core::send_update_hits_to_inrange(), Pol::Core::SendUnicodeSpeech(), Pol::Core::SetRegionLightLevel(), Pol::Core::start_client_char(), status(), Pol::Network::ClientInterface::tell_attribute_changed(), Pol::Network::ClientInterface::tell_vital_changed(), Pol::Core::update_lightregion(), and Pol::Core::update_weatherregion().
enum Pol::Network::Client::e_recv_states Pol::Network::Client::recv_state |
Referenced by Client(), and Pol::Core::process_data().
size_t Pol::Network::Client::thread_pid |
Definition at line 257 of file client.h.
Referenced by Pol::Core::UoClientThread::run(), and status().
u16 Pol::Network::Client::UOExpansionFlag |
Definition at line 258 of file client.h.
Referenced by Pol::Core::Spellbook::double_click(), Pol::Core::handle_client_version(), Pol::Core::handle_msg_BF(), Pol::Module::UOExecutorModule::mf_SendHousingTool(), Pol::Mobile::Character::on_aos_ext_stat_changed(), Pol::Network::ObjRevisionPkt::Send(), Pol::Core::send_container_contents(), Pol::Core::send_feature_enable(), Pol::Core::send_full_statmsg(), Pol::Core::send_item(), Pol::Core::send_multi_if_newly_inrange(), Pol::Core::send_owncreate(), Pol::Core::send_paperdoll(), Pol::Core::send_put_in_container(), Pol::Core::send_start(), and Pol::Core::send_wornitem().
u32 Pol::Network::Client::UOExpansionFlagClient |
Definition at line 259 of file client.h.
Referenced by Pol::Core::char_select(), Pol::Core::ClientCreateChar(), Pol::Core::ClientCreateChar70160(), Pol::Core::ClientCreateCharKR(), and Pol::Core::handle_msg_BF().
|
private |
Definition at line 274 of file client.h.
Referenced by estimatedSize().
|
private |
|
private |
Definition at line 278 of file client.h.
Referenced by Client(), getWeakPtr(), and make_ref().