logger.warn("received packet on proxy port without saved proxy connection - duplicate?");
return;
}
// retrieve client
RadiusEndpoint client = proxyConnection.getRadiusClient();
if (logger.isInfoEnabled()) {
logger.info("received proxy packet: " + packet);
logger.info("forward packet to " + client.getEndpointAddress().toString() + " with secret " + client.getSharedSecret());
}
// remove only own Proxy-State (last attribute)
packet.removeLastAttribute(33);
// re-encode answer packet with authenticator of the original packet
RadiusPacket answer = new RadiusPacket(packet.getPacketType(), packet.getPacketIdentifier(), packet.getAttributes());
DatagramPacket datagram = makeDatagramPacket(answer, client.getSharedSecret(), client.getEndpointAddress().getAddress(), client.getEndpointAddress().getPort(), proxyConnection.getPacket());
// send back using correct socket
DatagramSocket socket;
if (proxyConnection.getPort() == getAuthPort())
socket = getAuthSocket();