diff options
author | James Rowe <jroweboy@gmail.com> | 2020-03-04 07:46:05 +0100 |
---|---|---|
committer | James Rowe <jroweboy@gmail.com> | 2020-03-04 07:46:05 +0100 |
commit | 002d9508a04f9cc7de870a3144c798a84fadca77 (patch) | |
tree | b60114cddbdde783ff78e53b9a0830744e62d5af | |
parent | Frontend/SDL - Provide proper default for UDP input (diff) | |
download | yuzu-002d9508a04f9cc7de870a3144c798a84fadca77.tar yuzu-002d9508a04f9cc7de870a3144c798a84fadca77.tar.gz yuzu-002d9508a04f9cc7de870a3144c798a84fadca77.tar.bz2 yuzu-002d9508a04f9cc7de870a3144c798a84fadca77.tar.lz yuzu-002d9508a04f9cc7de870a3144c798a84fadca77.tar.xz yuzu-002d9508a04f9cc7de870a3144c798a84fadca77.tar.zst yuzu-002d9508a04f9cc7de870a3144c798a84fadca77.zip |
-rw-r--r-- | src/input_common/udp/client.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/input_common/udp/client.cpp b/src/input_common/udp/client.cpp index 2228571a6..e82ae7ef1 100644 --- a/src/input_common/udp/client.cpp +++ b/src/input_common/udp/client.cpp @@ -32,8 +32,16 @@ public: SocketCallback callback) : callback(std::move(callback)), timer(io_service), socket(io_service, udp::endpoint(udp::v4(), 0)), client_id(client_id), - pad_index(pad_index), - send_endpoint(udp::endpoint(boost::asio::ip::make_address_v4(host), port)) {} + pad_index(pad_index) { + boost::system::error_code ec{}; + auto ipv4 = boost::asio::ip::make_address_v4(host, ec); + if (ec.failed()) { + LOG_ERROR(Input, "Invalid IPv4 address \"{}\" provided to socket", host); + ipv4 = boost::asio::ip::address_v4{}; + } + + send_endpoint = {udp::endpoint(ipv4, port)}; + } void Stop() { io_service.stop(); @@ -85,17 +93,18 @@ private: } void HandleSend(const boost::system::error_code& error) { + boost::system::error_code _ignored{}; // Send a request for getting port info for the pad Request::PortInfo port_info{1, {pad_index, 0, 0, 0}}; const auto port_message = Request::Create(port_info, client_id); std::memcpy(&send_buffer1, &port_message, PORT_INFO_SIZE); - socket.send_to(boost::asio::buffer(send_buffer1), send_endpoint); + socket.send_to(boost::asio::buffer(send_buffer1), send_endpoint, {}, _ignored); // Send a request for getting pad data for the pad Request::PadData pad_data{Request::PadData::Flags::Id, pad_index, EMPTY_MAC_ADDRESS}; const auto pad_message = Request::Create(pad_data, client_id); std::memcpy(send_buffer2.data(), &pad_message, PAD_DATA_SIZE); - socket.send_to(boost::asio::buffer(send_buffer2), send_endpoint); + socket.send_to(boost::asio::buffer(send_buffer2), send_endpoint, {}, _ignored); StartSend(timer.expiry()); } |