package com.owera.xaps.tr069.methods; import java.util.List; import com.owera.xaps.base.Log; import com.owera.xaps.dbi.util.ProvisioningMessage; import com.owera.xaps.dbi.util.ProvisioningMessage.ErrorResponsibility; import com.owera.xaps.dbi.util.ProvisioningMessage.ProvStatus; import com.owera.xaps.dbi.util.ProvisioningMode; import com.owera.xaps.tr069.HTTPReqResData; import com.owera.xaps.tr069.SessionData; import com.owera.xaps.tr069.xml.Fault; public class FADecision { public static void process(HTTPReqResData reqRes) { // Fault fault = reqRes.getRequest().getFault(); // String errormsg = null; // if (fault != null) // errormsg = "The CPE reported faultcode " + fault.getFaultCode() + " and faultstring " + fault.getFaultString(); // Throwable throwable = reqRes.getThrowable(); // if (throwable != null) { // if (errormsg == null) // errormsg = "The ACS experienced an exception: " + throwable; // else // errormsg += " and the ACS experienced an exception: " + throwable; // } // Log.error(FADecision.class, errormsg); SessionData sessionData = reqRes.getSessionData(); if (sessionData.getUnit().getProvisioningMode() == ProvisioningMode.REGULAR) { List<HTTPReqResData> reqResList = sessionData.getReqResList(); if (reqResList != null && reqResList.size() >= 3) { HTTPReqResData prevReqRes = reqResList.get(reqResList.size() - 2); HTTPReqResData prev2ReqRes = reqResList.get(reqResList.size() - 3); String prevMethod = prevReqRes.getResponse().getMethod(); if (prevMethod.equals(TR069Method.GET_PARAMETER_VALUES)) { String prev2Method = prev2ReqRes.getResponse().getMethod(); if (!prev2Method.equals(TR069Method.GET_PARAMETER_VALUES)) { Log.warn(FADecision.class, "GPVres contained error, try once more and ask for all parameters"); reqRes.getResponse().setMethod(TR069Method.GET_PARAMETER_VALUES); return; } } } } ProvisioningMessage pm = sessionData.getProvisioningMessage(); Fault fault = reqRes.getRequest().getFault(); pm.setErrorCode(new Integer(fault.getFaultCode())); pm.setErrorMessage(fault.getFaultString()); pm.setErrorResponsibility(ErrorResponsibility.CLIENT); pm.setProvStatus(ProvStatus.ERROR); reqRes.getResponse().setMethod(TR069Method.EMPTY); } }