From 70cb8932a26a9e619afeb85df6108894bea2760f Mon Sep 17 00:00:00 2001 From: Radegast Date: Sun, 14 Oct 2012 01:21:36 +0100 Subject: [PATCH] etlist: allow ip:port address format --- etlist/connection.cpp | 14 +++++++++++--- etlist/connection.h | 2 +- etlist/main.cpp | 4 ++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/etlist/connection.cpp b/etlist/connection.cpp index 9dbbb61..38e8970 100644 --- a/etlist/connection.cpp +++ b/etlist/connection.cpp @@ -21,14 +21,22 @@ #include "connection.h" Connection::Connection(boost::asio::io_service& io_service, - std::string server_name /*=etlegacy.com*/, - int server_port /*=27960*/, + std::string server_address /*=etlegacy.com*/, + unsigned short server_port /*=27960*/, std::string message /*=getstatus*/, float timeout /*=1.5*/) : io_service_(io_service), socket_(io_service, udp::v4()), timer_(io_service) { + // Allow ip:port address format + if (server_address.find(":") != std::string::npos) + { + server_port = boost::lexical_cast + (server_address.substr(server_address.find(":") + 1)); + server_address = server_address.substr(0, server_address.find(":")); + } + udp::resolver resolver(io_service_); - udp::resolver::query query(udp::v4(), server_name, + udp::resolver::query query(udp::v4(), server_address, boost::lexical_cast(server_port)); receiver_endpoint_ = *resolver.resolve(query); diff --git a/etlist/connection.h b/etlist/connection.h index fd4f1de..a69bd24 100644 --- a/etlist/connection.h +++ b/etlist/connection.h @@ -36,7 +36,7 @@ class Connection public: Connection(boost::asio::io_service& io_service, std::string server_name = "etlegacy.com", - int server_port = 27960, + unsigned short server_port = 27960, std::string message = "getstatus", float timeout = 1.5); void close(); diff --git a/etlist/main.cpp b/etlist/main.cpp index ee7518c..8e2d714 100644 --- a/etlist/main.cpp +++ b/etlist/main.cpp @@ -43,7 +43,7 @@ int main(int argc, char *argv[]) ("server,s", boost::program_options::value(), "server to query") ("port,p", - boost::program_options::value()->default_value(27960), + boost::program_options::value()->default_value(27960), "port on the server") ("message,m", boost::program_options::value()->default_value("getstatus"), @@ -74,7 +74,7 @@ int main(int argc, char *argv[]) */ boost::asio::io_service io_service; Connection client(io_service, var_map["server"].as(), - var_map["port"].as(), + var_map["port"].as(), var_map["message"].as(), var_map["timeout"].as()); io_service.run();