aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--networkmanager.cpp18
-rw-r--r--networkmanager.h7
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 = "";