From c6d8b7e3377669b6adab81ebbdb50c9b4c056a0d Mon Sep 17 00:00:00 2001 From: KimLS Date: Tue, 5 Aug 2014 14:30:23 -0700 Subject: [PATCH] More generic method handlers now --- web_interface/method_handler.cpp | 42 ++++++++++---------------------- web_interface/method_handler.h | 6 ++--- web_interface/web_interface.cpp | 2 +- 3 files changed, 16 insertions(+), 34 deletions(-) diff --git a/web_interface/method_handler.cpp b/web_interface/method_handler.cpp index ef350342e..04175b394 100644 --- a/web_interface/method_handler.cpp +++ b/web_interface/method_handler.cpp @@ -10,11 +10,11 @@ extern std::map unauthorized_methods; void register_authorized_methods() { authorized_methods["WebInterface.Authorize"] = std::make_pair(0, handle_method_token_auth); - authorized_methods["World.ListZones"] = std::make_pair(10, handle_method_no_args); - authorized_methods["World.GetZoneDetails"] = std::make_pair(10, handle_method_get_zone_info); - authorized_methods["Zone.Subscribe"] = std::make_pair(10, handle_method_subscribe); - authorized_methods["Zone.Unsubscribe"] = std::make_pair(10, handle_method_subscribe); - authorized_methods["Zone.GetInitialEntityPositions"] = std::make_pair(10, handle_method_zone_no_args); + authorized_methods["World.ListZones"] = std::make_pair(10, handle_method_world); + authorized_methods["World.GetZoneDetails"] = std::make_pair(10, handle_method_world); + authorized_methods["Zone.Subscribe"] = std::make_pair(10, handle_method_zone); + authorized_methods["Zone.Unsubscribe"] = std::make_pair(10, handle_method_zone); + authorized_methods["Zone.GetInitialEntityPositions"] = std::make_pair(10, handle_method_zone); } void register_unauthorized_methods() @@ -40,32 +40,16 @@ void handle_method_token_auth(per_session_data_eqemu *session, rapidjson::Docume } } -void handle_method_no_args(per_session_data_eqemu *session, rapidjson::Document &document, std::string &method) -{ +void handle_method_world(per_session_data_eqemu *session, rapidjson::Document &document, std::string &method) { + CheckParams(2, "[zone_id, instance_id]"); + VerifyID(); + CalculateSize(); + WriteWebProtocolPacket(); +} + +void handle_method_zone(per_session_data_eqemu *session, rapidjson::Document &document, std::string &method) { CheckParams(0, "[]"); VerifyID(); CalculateSize(); WriteWebProtocolPacket(); } - -void handle_method_get_zone_info(per_session_data_eqemu *session, rapidjson::Document &document, std::string &method) -{ - CheckParams(1, "[zoneserver_id]"); - VerifyID(); - CalculateSize(); - WriteWebProtocolPacket(); -} - -void handle_method_subscribe(per_session_data_eqemu *session, rapidjson::Document &document, std::string &method) { - CheckParams(3, "[zone_id, instance_id, event_name]"); - VerifyID(); - CalculateSize(); - WriteWebProtocolPacket(); -} - -void handle_method_zone_no_args(per_session_data_eqemu *session, rapidjson::Document &document, std::string &method) { - CheckParams(2, "[zone_id, instance_id]"); - VerifyID(); - CalculateSize(); - WriteWebProtocolPacket(); -} \ No newline at end of file diff --git a/web_interface/method_handler.h b/web_interface/method_handler.h index 8f724646e..72e229a30 100644 --- a/web_interface/method_handler.h +++ b/web_interface/method_handler.h @@ -76,10 +76,8 @@ void register_methods(); void handle_method_token_auth(per_session_data_eqemu *session, rapidjson::Document &document, std::string &method); -void handle_method_no_args(per_session_data_eqemu *session, rapidjson::Document &document, std::string &method); -void handle_method_get_zone_info(per_session_data_eqemu *session, rapidjson::Document &document, std::string &method); -void handle_method_subscribe(per_session_data_eqemu *session, rapidjson::Document &document, std::string &method); -void handle_method_zone_no_args(per_session_data_eqemu *session, rapidjson::Document &document, std::string &method); +void handle_method_zone(per_session_data_eqemu *session, rapidjson::Document &document, std::string &method); +void handle_method_world(per_session_data_eqemu *session, rapidjson::Document &document, std::string &method); #endif diff --git a/web_interface/web_interface.cpp b/web_interface/web_interface.cpp index b635efc12..fdc08c24a 100644 --- a/web_interface/web_interface.cpp +++ b/web_interface/web_interface.cpp @@ -132,7 +132,7 @@ int callback_eqemu(libwebsocket_context *context, libwebsocket *wsi, libwebsocke static struct libwebsocket_protocols protocols[] = { { "http-only", callback_http, 0, 0, }, - { "eqemu", callback_eqemu, sizeof(per_session_data_eqemu), 65536, }, + { "eqemu", callback_eqemu, sizeof(per_session_data_eqemu), 1048576, }, { nullptr, nullptr, 0, 0 } };