Merge pull request #3479 from jroweboy/dont-log-on-no-input
Minor fixes for udp input
This commit is contained in:
		
						commit
						4a8fe67964
					
				@ -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());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -31,7 +31,6 @@ namespace Response {
 | 
			
		||||
 */
 | 
			
		||||
std::optional<Type> Validate(u8* data, std::size_t size) {
 | 
			
		||||
    if (size < sizeof(Header)) {
 | 
			
		||||
        LOG_DEBUG(Input, "Invalid UDP packet received");
 | 
			
		||||
        return std::nullopt;
 | 
			
		||||
    }
 | 
			
		||||
    Header header{};
 | 
			
		||||
 | 
			
		||||
@ -84,7 +84,7 @@ touch_device=
 | 
			
		||||
# from any cemuhook compatible motion program.
 | 
			
		||||
 | 
			
		||||
# IPv4 address of the udp input server (Default "127.0.0.1")
 | 
			
		||||
udp_input_address=
 | 
			
		||||
udp_input_address=127.0.0.1
 | 
			
		||||
 | 
			
		||||
# Port of the udp input server. (Default 26760)
 | 
			
		||||
udp_input_port=
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user