diff options
| -rw-r--r-- | networkmanager.cpp | 18 | ||||
| -rw-r--r-- | networkmanager.h | 7 |
2 files changed, 18 insertions, 7 deletions
diff --git a/networkmanager.cpp b/networkmanager.cpp index 8c0eaa7..e7246fe 100644 --- a/networkmanager.cpp +++ b/networkmanager.cpp @@ -4,6 +4,7 @@ #include "debug_functions.h" #include "lobby.h" +#include <cstring> NetworkManager::NetworkManager(AOApplication *parent) : QObject(parent) { @@ -19,6 +20,11 @@ NetworkManager::NetworkManager(AOApplication *parent) : QObject(parent) QObject::connect(ms_socket, SIGNAL(readyRead()), this, SLOT(handle_ms_packet())); QObject::connect(server_socket, SIGNAL(readyRead()), this, SLOT(handle_server_packet())); QObject::connect(server_socket, SIGNAL(disconnected()), ao_app, SLOT(server_disconnected())); + + QString master_config = ao_app->read_config("master"); + if (master_config != "") { + ms_nosrv_hostname = master_config; + } } NetworkManager::~NetworkManager() @@ -75,8 +81,9 @@ void NetworkManager::ship_server_packet(QString p_packet) void NetworkManager::handle_ms_packet() { - char buffer[16384] = {0}; - ms_socket->read(buffer, ms_socket->bytesAvailable()); + char buffer[buffer_max_size]; + std::memset(buffer, 0, buffer_max_size); + ms_socket->read(buffer, buffer_max_size); QString in_data = buffer; @@ -100,7 +107,7 @@ void NetworkManager::handle_ms_packet() QStringList packet_list = in_data.split("%", QString::SplitBehavior(QString::SkipEmptyParts)); for (QString packet : packet_list) - { + { AOPacket *f_packet = new AOPacket(packet); ao_app->ms_packet_received(f_packet); @@ -213,8 +220,9 @@ void NetworkManager::retry_ms_connect() void NetworkManager::handle_server_packet() { - char buffer[16384] = {0}; - server_socket->read(buffer, server_socket->bytesAvailable()); + char buffer[buffer_max_size]; + std::memset(buffer, 0, buffer_max_size); + server_socket->read(buffer, buffer_max_size); QString in_data = buffer; diff --git a/networkmanager.h b/networkmanager.h index 32aef73..99987f3 100644 --- a/networkmanager.h +++ b/networkmanager.h @@ -38,9 +38,9 @@ public: const QString ms_srv_hostname = "_aoms._tcp.aceattorneyonline.com"; #ifdef LOCAL_MS - const QString ms_nosrv_hostname = "localhost"; + QString ms_nosrv_hostname = "localhost"; #else - const QString ms_nosrv_hostname = "master.aceattorneyonline.com"; + QString ms_nosrv_hostname = "master.aceattorneyonline.com"; #endif const int ms_port = 27016; @@ -48,6 +48,9 @@ public: const int ms_reconnect_delay_ms = 7000; + // kind of arbitrary max buffer size + const size_t buffer_max_size = 16384; + bool ms_partial_packet = false; QString ms_temp_packet = ""; |
