diff --git a/libi2pd_client/WebSocks.cpp b/libi2pd_client/WebSocks.cpp index f928fb5a..ce34a597 100644 --- a/libi2pd_client/WebSocks.cpp +++ b/libi2pd_client/WebSocks.cpp @@ -248,10 +248,15 @@ namespace client m_State = eWSCTryConnect; m_Parent->CreateStreamTo(m_RemoteAddr, m_RemotePort, std::bind(&WebSocksConn::ConnectResult, this, std::placeholders::_1)); } else if (state == eWSCDatagram) { - LogPrint(eLogDebug, "websocks: datagram mode initiated"); - m_State = eWSCDatagram; - BeginDatagram(); - SendResponse(""); + if (m_RemotePort >= 0 && m_RemotePort <= 65535) + { + LogPrint(eLogDebug, "websocks: datagram mode initiated"); + m_State = eWSCDatagram; + BeginDatagram(); + SendResponse(""); + } + else + SendResponse("invalid port"); } else { LogPrint(eLogWarning, "websocks: invalid state change ", m_State, " -> ", state); }