Повесил на циску.
Переделал вот так для теста
Код:
package ru.bitel.bgbilling.modules.inet.dyn.device.cisco;
import org.apache.log4j.Logger;
import ru.bitel.bgbilling.kernel.network.dhcp.DhcpOption;
import ru.bitel.bgbilling.kernel.network.dhcp.DhcpPacket;
import ru.bitel.bgbilling.kernel.network.radius.RadiusPacket;
import ru.bitel.bgbilling.modules.inet.dhcp.InetDhcpProcessor;
import ru.bitel.bgbilling.modules.inet.radius.InetRadiusProcessor;
import ru.bitel.common.Utils;
public class ISGProtocolHandlerAscii
extends ISGProtocolHandler
{
private static final Logger logger = Logger.getLogger( ISGProtocolHandlerAscii.class );
@Override
protected void setAgentOptions( RadiusPacket request )
{
final Object agentRemoteId = getAttributeValue( request, radiusVendor, agentOptionRemoteIdType, agentOptionRemoteIdPrefix );
if( agentRemoteId != null )
{
setAgentOption( request, agentRemoteId, InetRadiusProcessor.AGENT_REMOTE_ID );
}
String circuitId = (String)getAttributeValue( request, 9, 1, "circuit-id-tag=" );
logger.info( "circuitId=" + circuitId );
int interfaceId = Utils.parseInt( circuitId, -1 );
request.setOption( InetRadiusProcessor.INTERFACE_ID, interfaceId );
}
@Override
public void preprocessDhcpRequest( DhcpPacket request, DhcpPacket response )
throws Exception
{
DhcpOption circuitId = request.getSubOption( (byte)1 );
DhcpOption remoteId = request.getSubOption( (byte)2 );
request.setOption( InetDhcpProcessor.AGENT_REMOTE_ID, "remoteId" );
request.setOption( InetDhcpProcessor.INTERFACE_ID, "circuitId" );
}
}
Но он либо не отрабатывает либо я хз.
В all.log dhcp запросы без изменений.
А logger.info( "circuitId=" + circuitId ); там вообще не появляется