Socks5LogicHandler.encodeProxyRequestPacket(final SocksProxyRequest request) should check that the result of request.getEndpointAddress() is resolved before using it ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: DIRMINA-652 URL: https://issues.apache.org/jira/browse/DIRMINA-652 Project: MINA Issue Type: Bug Affects Versions: 2.0.0-RC1 Reporter: Dan Mihai Dumitriu Depending on what is going on in layers above this one, the InetSocketAddress returned by request.getEndpointAddress() could be unresolved, in which case the hostname should be used. private IoBuffer encodeProxyRequestPacket(final SocksProxyRequest request) throws UnsupportedEncodingException { int len = 6; byte[] host = request.getHost() != null ? request.getHost().getBytes( "ASCII") : null; InetSocketAddress adr = request.getEndpointAddress(); byte addressType = 0; if (adr != null && !adr.isUnresolved()) { if (adr.getAddress() instanceof Inet6Address) { len += 16; addressType = SocksProxyConstants.IPV6_ADDRESS_TYPE; } else if (adr.getAddress() instanceof Inet4Address) { len += 4; addressType = SocksProxyConstants.IPV4_ADDRESS_TYPE; } } else { len += 1 + host.length; addressType = SocksProxyConstants.DOMAIN_NAME_ADDRESS_TYPE; } IoBuffer buf = IoBuffer.allocate(len); buf.put(request.getProtocolVersion()); buf.put(request.getCommandCode()); buf.put((byte) 0x00); // Reserved buf.put(addressType); if (addressType == SocksProxyConstants.DOMAIN_NAME_ADDRESS_TYPE) { buf.put((byte) host.length); buf.put(host); } else { buf.put(request.getIpAddress()); } buf.put(request.getPort()); return buf; } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.