/********************************************************************** caller: owner of this object prototype: ULONG NSLookupDiagnostics_Rollback ( ANSC_HANDLE hInsContext ); description: This function is called to roll back the update whenever there's a validation found. argument: ANSC_HANDLE hInsContext, The instance handle; return: The status of the operation. **********************************************************************/ ULONG NSLookupDiagnostics_Rollback ( ANSC_HANDLE hInsContext ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PCOSA_DATAMODEL_DIAG pMyObject = (PCOSA_DATAMODEL_DIAG)g_pCosaBEManager->hDiag; PDSLH_NSLOOKUP_INFO pNSLookupInfo = pMyObject->hDiagNSLookInfo; PDSLH_NSLOOKUP_INFO pNSLookupDiagInfo = NULL; if ( !pNSLookupInfo ) { return ANSC_STATUS_FAILURE; } pNSLookupDiagInfo = (PDSLH_NSLOOKUP_INFO)CosaDmlDiagGetResults(DSLH_DIAGNOSTIC_TYPE_NSLookup); if ( pNSLookupDiagInfo ) { DslhInitNSLookupInfo(pNSLookupInfo); pNSLookupInfo->StructSize = sizeof(DSLH_NSLOOKUP_INFO); AnscCopyString(pNSLookupInfo->HostName, pNSLookupDiagInfo->HostName); AnscCopyString(pNSLookupInfo->Interface, pNSLookupDiagInfo->Interface); AnscCopyString(pNSLookupInfo->DNSServer, pNSLookupDiagInfo->DNSServer); pNSLookupInfo->bForced = FALSE; pNSLookupInfo->Timeout = pNSLookupDiagInfo->Timeout; pNSLookupInfo->NumberOfRepetitions = pNSLookupDiagInfo->NumberOfRepetitions; pNSLookupInfo->UpdatedAt = pNSLookupDiagInfo->UpdatedAt; } else { DslhInitNSLookupInfo(pNSLookupInfo); } return returnStatus; }
ANSC_STATUS CosaDiagInitialize ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PCOSA_DATAMODEL_DIAG pMyObject = (PCOSA_DATAMODEL_DIAG )hThisObject; PDSLH_PING_INFO pDiagPingInfo = (PDSLH_PING_INFO )NULL; PDSLH_TRACEROUTE_INFO pDiagTracerouteInfo = (PDSLH_TRACEROUTE_INFO)NULL; PDSLH_NSLOOKUP_INFO pDiagNSLookInfo = (PDSLH_NSLOOKUP_INFO )NULL; PDSLH_TR143_DOWNLOAD_DIAG_INFO pDownloadInfo = (PDSLH_TR143_DOWNLOAD_DIAG_INFO)NULL; PDSLH_TR143_UPLOAD_DIAG_INFO pUploadInfo = (PDSLH_TR143_UPLOAD_DIAG_INFO)NULL; PDSLH_TR143_UDP_ECHO_CONFIG pUdpEchoInfo = (PDSLH_TR143_UDP_ECHO_CONFIG)NULL; PCOSA_DML_DIAG_ARP_TABLE pArpTable = (PCOSA_DML_DIAG_ARP_TABLE)NULL; pDiagPingInfo = AnscAllocateMemory(sizeof(DSLH_PING_INFO)); if ( !pDiagPingInfo ) { return ANSC_STATUS_RESOURCES; } else { DslhInitPingInfo(pDiagPingInfo); pMyObject->hDiagPingInfo = (ANSC_HANDLE)pDiagPingInfo; } pDiagTracerouteInfo = AnscAllocateMemory(sizeof(DSLH_TRACEROUTE_INFO)); if ( !pDiagTracerouteInfo ) { AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagPingInfo); pMyObject->hDiagPingInfo = NULL; return ANSC_STATUS_RESOURCES; } else { DslhInitTracerouteInfo(pDiagTracerouteInfo); pMyObject->hDiagTracerouteInfo = (ANSC_HANDLE)pDiagTracerouteInfo; } pDiagNSLookInfo = AnscAllocateMemory(sizeof(DSLH_NSLOOKUP_INFO)); if ( !pDiagNSLookInfo ) { AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagPingInfo); AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagTracerouteInfo); pMyObject->hDiagPingInfo = NULL; pMyObject->hDiagTracerouteInfo = NULL; return ANSC_STATUS_RESOURCES; } else { DslhInitNSLookupInfo(pDiagNSLookInfo); pMyObject->hDiagNSLookInfo = (ANSC_HANDLE)pDiagNSLookInfo; } /* Init Download diagnostics configurations */ pDownloadInfo = AnscAllocateMemory(sizeof(DSLH_TR143_DOWNLOAD_DIAG_INFO)); if ( !pDownloadInfo ) { AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagPingInfo); AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagTracerouteInfo); AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagNSLookInfo); pMyObject->hDiagPingInfo = NULL; pMyObject->hDiagTracerouteInfo = NULL; pMyObject->hDiagNSLookInfo = NULL; return ANSC_STATUS_RESOURCES; } else { DslhInitDownloadDiagInfo(pDownloadInfo); pMyObject->hDiagDownloadInfo = (ANSC_HANDLE)pDownloadInfo; } /* Init Upload diagnostics configurations */ pUploadInfo = AnscAllocateMemory(sizeof(DSLH_TR143_UPLOAD_DIAG_INFO)); if ( !pUploadInfo ) { AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagPingInfo); AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagTracerouteInfo); AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagNSLookInfo); AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagDownloadInfo); pMyObject->hDiagPingInfo = NULL; pMyObject->hDiagTracerouteInfo = NULL; pMyObject->hDiagNSLookInfo = NULL; pMyObject->hDiagDownloadInfo = NULL; return ANSC_STATUS_RESOURCES; } else { DslhInitUploadDiagInfo(pUploadInfo); pMyObject->hDiagUploadInfo = (ANSC_HANDLE)pUploadInfo; } /* Init UDP ECHO server diagnostics configurations */ pUdpEchoInfo = AnscAllocateMemory(sizeof(DSLH_TR143_UDP_ECHO_CONFIG)); if ( !pUdpEchoInfo ) { AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagPingInfo); AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagTracerouteInfo); AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagNSLookInfo); AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagDownloadInfo); AnscFreeMemory((ANSC_HANDLE)pMyObject->hDiagUploadInfo); pMyObject->hDiagPingInfo = NULL; pMyObject->hDiagTracerouteInfo = NULL; pMyObject->hDiagNSLookInfo = NULL; pMyObject->hDiagDownloadInfo = NULL; pMyObject->hDiagUploadInfo = NULL; return ANSC_STATUS_RESOURCES; } else { DslhInitUDPEchoConfig(pUdpEchoInfo); pMyObject->hDiagUdpechoSrvInfo = (ANSC_HANDLE)pUdpEchoInfo; } /* initiate ARPTable */ pMyObject->pArpTable = NULL; pMyObject->ArpEntryCount = 0; pMyObject->PreviousVisitTime = 0; /* Initiation all functions */ return returnStatus; }
ANSC_STATUS BbhmDiagnsEnrollObjects ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PBBHM_DIAG_NS_LOOKUP_OBJECT pMyObject = (PBBHM_DIAG_NS_LOOKUP_OBJECT )hThisObject; PDSLH_NSLOOKUP_INFO pDslhDiagInfo = (PDSLH_NSLOOKUP_INFO )NULL; PBBHM_NS_LOOKUP_TDO_OBJECT pStateTimer = (PBBHM_NS_LOOKUP_TDO_OBJECT )pMyObject->hStateTimer; PANSC_OBJECT_CONTAINER_OBJECT pContainer = (PANSC_OBJECT_CONTAINER_OBJECT)pMyObject->hContainerContext; AnscCoEnrollObjects((ANSC_HANDLE)pMyObject); pDslhDiagInfo = AnscAllocateMemory(sizeof(DSLH_NSLOOKUP_INFO)); if ( !pDslhDiagInfo ) { return ANSC_STATUS_RESOURCES; } else { DslhInitNSLookupInfo(pDslhDiagInfo); pMyObject->hDslhDiagInfo = pDslhDiagInfo; } if ( !pMyObject->hSendBuffer ) { pMyObject->hSendBuffer = (PCHAR)AnscAllocateMemory(BBHM_NS_LOOKUP_DEF_PACKET_SIZE); if ( !pMyObject->hSendBuffer ) { return ANSC_STATUS_RESOURCES; } } if ( !pStateTimer ) { pStateTimer = (PBBHM_NS_LOOKUP_TDO_OBJECT)BbhmDiagnsTdoCreate ( (ANSC_HANDLE)pContainer, (ANSC_HANDLE)pMyObject, NULL ); if ( !pStateTimer ) { return ANSC_STATUS_RESOURCES; } else { pMyObject->hStateTimer = (ANSC_HANDLE)pStateTimer; } pStateTimer->SetTimerType((ANSC_HANDLE)pStateTimer, ANSC_TIMER_TYPE_SPORADIC ); pStateTimer->SetInterval ((ANSC_HANDLE)pStateTimer, BBHM_NS_LOOKUP_DEF_TIME_BETWEEN_IN_MILLISECONDS ); pStateTimer->SetCounter ((ANSC_HANDLE)pStateTimer, BBHM_NS_LOOKUP_DEF_NUMBER_PACKETS ); } BbhmDiageoEnrollObjects((ANSC_HANDLE)pMyObject); return ANSC_STATUS_SUCCESS; }