ANSC_HANDLE CosaProcStatusCreate() { PCOSA_DATAMODEL_PROCSTATUS p_info = NULL; p_info = AnscAllocateMemory(sizeof(COSA_DATAMODEL_PROCSTATUS)); AnscZeroMemory(p_info, sizeof(COSA_DATAMODEL_PROCSTATUS)); p_info->pProcTable = NULL; return p_info; }
ANSC_STATUS CcspCwmpStunmoResetProperty ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PCCSP_CWMP_STUN_MANAGER_OBJECT pMyObject = (PCCSP_CWMP_STUN_MANAGER_OBJECT )hThisObject; PCCSP_CWMP_STUN_MANAGER_PROPERTY pProperty = (PCCSP_CWMP_STUN_MANAGER_PROPERTY)&pMyObject->Property; PCCSP_CWMP_STUN_INFO pCcspCwmpStunInfo = (PCCSP_CWMP_STUN_INFO )&pMyObject->CcspCwmpStunInfo; AnscZeroMemory(pProperty, sizeof(CCSP_CWMP_STUN_MANAGER_PROPERTY)); pProperty->ClientAddr.Value = 0; pProperty->ClientPort = CWMP_PORT; AnscZeroMemory(pCcspCwmpStunInfo, sizeof(CCSP_CWMP_STUN_INFO)); pCcspCwmpStunInfo->STUNServerPort = STUN_PORT; return ANSC_STATUS_SUCCESS; }
/********************************************************************** prototype: ANSC_HANDLE CcspCreateNamespaceComponent ( char* pContainerName ); description: This function is called to create a NamespaceComponent object argument: char* pContainerName return: The NamespaceComponent handle; **********************************************************************/ ANSC_HANDLE CcspCreateNamespaceComponent ( char* pContainerName ) { PCCSP_NAMESPACE_COMP_OBJECT pThisObject = (PCCSP_NAMESPACE_COMP_OBJECT)NULL; pThisObject = (PCCSP_NAMESPACE_COMP_OBJECT) AnscAllocateMemory(sizeof(CCSP_NAMESPACE_COMP_OBJECT)); if( pThisObject == NULL) { return NULL; } /* * Initialize the common variables and functions. */ pThisObject->pContainerName = pContainerName; AnscZeroMemory(pThisObject->pCompName, CCSP_MAXI_COMPONENT_NAME_LENGTH); AnscZeroMemory(pThisObject->pDbusPath, CCSP_MAXI_DBUS_PATH_LENGTH); AnscZeroMemory(pThisObject->pPrefix, CCSP_MAXI_SUBSYSTEM_PREFIX); AnscQueueInitializeHeader(&pThisObject->ParamspaceQueue); pThisObject->UnregisterNamespace = CcspNsCompUnregisterNamespace; pThisObject->GetNamespaceCount = CcspNsCompGetNamespaceCount; pThisObject->GetNamespaceStringArray = CcspNsCompGetNamespaceStringArray; pThisObject->GetNamespaceStructArray = CcspNsCompGetNamespaceStructArray; pThisObject->BuildFromNamespaceStringArray = CcspNsCompBuildFromNamespaceStringArray; pThisObject->BuildFromNamespaceStructArray = CcspNsCompBuildFromNamespaceStructArray; pThisObject->IsObjectSupported = CcspNsCompIsObjectSupported; pThisObject->DumpObject = CcspNsCompDumpObject; pThisObject->CleanAll = CcspNsCompCleanAll; return (ANSC_HANDLE)pThisObject; }
ANSC_STATUS DslhCpecoResetProperty ( ANSC_HANDLE hThisObject ) { PDSLH_CPE_CONTROLLER_OBJECT pMyObject = (PDSLH_CPE_CONTROLLER_OBJECT )hThisObject; PDSLH_CPE_CONTROLLER_PROPERTY pProperty = (PDSLH_CPE_CONTROLLER_PROPERTY)&pMyObject->Property; AnscZeroMemory(pProperty, sizeof(DSLH_CPE_CONTROLLER_PROPERTY)); return ANSC_STATUS_SUCCESS; }
ANSC_STATUS PsmFloResetProperty ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PPSM_FILE_LOADER_OBJECT pMyObject = (PPSM_FILE_LOADER_OBJECT )hThisObject; PPSM_FILE_LOADER_PROPERTY pProperty = (PPSM_FILE_LOADER_PROPERTY)&pMyObject->Property; AnscZeroMemory(pProperty, sizeof(PSM_FILE_LOADER_PROPERTY)); CcspTraceInfo(("Object Property is Reset\n")); return ANSC_STATUS_SUCCESS; }
ANSC_STATUS HttpTroSetServerName ( ANSC_HANDLE hThisObject, char* name ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PHTTP_TRANS_RECORD_OBJECT pMyObject = (PHTTP_TRANS_RECORD_OBJECT)hThisObject; AnscZeroMemory(pMyObject->ServerName, ANSC_DOMAIN_NAME_SIZE); AnscCopyString(pMyObject->ServerName, name ); return ANSC_STATUS_SUCCESS; }
ANSC_STATUS CcspCwmpCpecoResetProperty ( ANSC_HANDLE hThisObject ) { PCCSP_CWMP_CPE_CONTROLLER_OBJECT pMyObject = (PCCSP_CWMP_CPE_CONTROLLER_OBJECT )hThisObject; PCCSP_CWMP_CPE_CONTROLLER_PROPERTY pProperty = (PCCSP_CWMP_CPE_CONTROLLER_PROPERTY)&pMyObject->Property; AnscZeroMemory(pProperty, sizeof(CCSP_CWMP_CPE_CONTROLLER_PROPERTY)); pProperty->bStartCwmpRightAway = FALSE; return ANSC_STATUS_SUCCESS; }
ANSC_STATUS WebVhoSetHostName ( ANSC_HANDLE hThisObject, char* name ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PWEB_VIRTUAL_HOST_OBJECT pMyObject = (PWEB_VIRTUAL_HOST_OBJECT )hThisObject; PWEB_VIRTUAL_HOST_PROPERTY pProperty = (PWEB_VIRTUAL_HOST_PROPERTY)&pMyObject->Property; AnscZeroMemory(pProperty->HostName, WEB_MAX_HOST_NAME_SIZE); AnscCopyString(pProperty->HostName, name ); return ANSC_STATUS_SUCCESS; }
ANSC_STATUS DslhWmpdoResetProperty ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PDSLH_WMP_DATABASE_OBJECT pMyObject = (PDSLH_WMP_DATABASE_OBJECT )hThisObject; PDSLH_WMP_DATABASE_PROPERTY pProperty = (PDSLH_WMP_DATABASE_PROPERTY)&pMyObject->Property; AnscZeroMemory(pProperty, sizeof(DSLH_WMP_DATABASE_PROPERTY)); pProperty->bMonitorEnabled = TRUE; pProperty->MonitorTimerInterval = DSLH_DEF_MONITOR_TIMER_INTERVAL; return ANSC_STATUS_SUCCESS; }
ANSC_STATUS AnscSstoStsGetLocalTime ( ANSC_HANDLE hThisObject, ANSC_HANDLE hCalendar ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PANSC_SIMPLE_SYS_TIME_OBJECT pMyObject = (PANSC_SIMPLE_SYS_TIME_OBJECT)hThisObject; PANSC_UNIVERSAL_TIME pCalendar = (PANSC_UNIVERSAL_TIME )hCalendar; LONG lTimeH = 0; ULONG ulTimeI = 0; ULONG ulTimeF = 0; /* AnscTrace("AnscSstoStsGetLocalTime...!\n"); */ AnscZeroMemory(hCalendar, sizeof(ANSC_UNIVERSAL_TIME)); /* * get current seconds, it starts from 00:00 1 Jan 1900 GMT * instead of from 00:00 1 Jan 1970 GMT * which corresponds to 2,208,988,800 seconds from * midnight on January first 1900 */ ulTimeI = pMyObject->GetCurrSecond( hThisObject); /* * take into account of the offset between the configured calendar time and the calculated * calendar time. */ ulTimeI += pMyObject->iTimeOffset; returnStatus = pMyObject->SecondToCalendar ( hThisObject, ulTimeI, hCalendar ); return returnStatus; }
ANSC_STATUS HttpWcsoSetPeerName ( ANSC_HANDLE hThisObject, char* name ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PHTTP_WEBC_SESSION_OBJECT pMyObject = (PHTTP_WEBC_SESSION_OBJECT )hThisObject; PANSC_SIMPLE_CLIENT_TCP_OBJECT pScto = (PANSC_SIMPLE_CLIENT_TCP_OBJECT)pMyObject->hTcpSimpleClient; PHTTP_WEBC_SESSION_PROPERTY pProperty = (PHTTP_WEBC_SESSION_PROPERTY)&pMyObject->Property; AnscZeroMemory(pProperty->PeerName, ANSC_DOMAIN_NAME_SIZE); AnscCopyString(pProperty->PeerName, name ); _ansc_strncpy(pScto->HostName, name, WEB_MAX_HOST_NAME_SIZE); pScto->HostName[WEB_MAX_HOST_NAME_SIZE] = 0; return ANSC_STATUS_SUCCESS; }
ANSC_STATUS DslhObjroAddObjRecord ( ANSC_HANDLE hThisObject, ANSC_HANDLE hObjRecord ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PDSLH_OBJ_RECORD_OBJECT pMyObject = (PDSLH_OBJ_RECORD_OBJECT)hThisObject; PDSLH_OBJ_ENTITY_OBJECT pObjEntity = (PDSLH_OBJ_ENTITY_OBJECT)pMyObject->hDslhObjEntity; PDSLH_OBJ_RECORD_OBJECT pChildObjRecord = (PDSLH_OBJ_RECORD_OBJECT)hObjRecord; char next_ins_name[16]; AnscQueuePushEntry(&pMyObject->ObjroQueue, &pChildObjRecord->Linkage); if ( pObjEntity->ObjDescr && (pObjEntity->ObjDescr->Type == DSLH_CWMP_OBJECT_TYPE_table) ) { pMyObject->NextInstanceNumber = (ULONG)_ansc_atoi(pChildObjRecord->LastName); do { pMyObject->NextInstanceNumber++; if ( pMyObject->NextInstanceNumber == 0 ) { pMyObject->NextInstanceNumber = 1; } AnscZeroMemory(next_ins_name, 16); _ansc_itoa(pMyObject->NextInstanceNumber, next_ins_name, 10); pChildObjRecord = (PDSLH_OBJ_RECORD_OBJECT)pMyObject->GetObjRecord ( (ANSC_HANDLE)pMyObject, next_ins_name ); } while ( pChildObjRecord ); } return ANSC_STATUS_SUCCESS; }
ANSC_STATUS Bmc2ComtoResetProperty ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PBMC2_COM_TERMINAL_OBJECT pMyObject = (PBMC2_COM_TERMINAL_OBJECT )hThisObject; PBMC2_COM_TERMINAL_PROPERTY pProperty = (PBMC2_COM_TERMINAL_PROPERTY)&pMyObject->Property; AnscZeroMemory(pProperty, sizeof(BMC2_COM_TERMINAL_PROPERTY)); pProperty->UserPermission = 0; pProperty->MaxLineNumber = 45; pProperty->MaxColumnNumber = 80; pProperty->bReadOnly = FALSE; return ANSC_STATUS_SUCCESS; }
ANSC_HANDLE CcspCwmppoGetPeriodicInformTime ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PCCSP_CWMP_PROCESSOR_OBJECT pMyObject = (PCCSP_CWMP_PROCESSOR_OBJECT )hThisObject; PCCSP_CWMP_CPE_CONTROLLER_OBJECT pCcspCwmpCpeController = (PCCSP_CWMP_CPE_CONTROLLER_OBJECT )pMyObject->hCcspCwmpCpeController; PCCSP_CWMP_PROCESSOR_PROPERTY pProperty = (PCCSP_CWMP_PROCESSOR_PROPERTY)&pMyObject->Property; PANSC_UNIVERSAL_TIME pInformTime = NULL; PANSC_UNIVERSAL_TIME pCalendarTime = NULL; char* pPeriodicInformTime = NULL; pInformTime = (PANSC_UNIVERSAL_TIME)CcspTr069PaAllocateMemory(sizeof(ANSC_UNIVERSAL_TIME)); if ( !pInformTime ) return NULL; AnscZeroMemory(pInformTime, sizeof(ANSC_UNIVERSAL_TIME)); pPeriodicInformTime = CcspManagementServer_GetPeriodicInformTimeStr ( pCcspCwmpCpeController->PANameWithPrefix ); if ( pPeriodicInformTime && AnscSizeOfString(pPeriodicInformTime) != 0 ) { pCalendarTime = CcspStringToCalendarTime(pPeriodicInformTime); if ( pCalendarTime ) { *pInformTime = *pCalendarTime; CcspTr069PaFreeMemory(pCalendarTime); } } if ( pPeriodicInformTime ) { CcspTr069PaFreeMemory(pPeriodicInformTime); } return (ANSC_HANDLE)pInformTime; }
ANSC_STATUS BwrmPmoResetProperty ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PBWRM_PAGE_MANAGER_OBJECT pMyObject = (PBWRM_PAGE_MANAGER_OBJECT )hThisObject; PBWRM_PAGE_MANAGER_PROPERTY pProperty = (PBWRM_PAGE_MANAGER_PROPERTY)&pMyObject->Property; AnscZeroMemory(pProperty, sizeof(BWRM_PAGE_MANAGER_PROPERTY)); pProperty->bCacheEnabled = TRUE; pProperty->CacheEntryCount = BWRM_DEF_CACHE_ENTRY_COUNT; pProperty->CacheMemorySize = BWRM_DEF_CACHE_MEMORY_SIZE; pProperty->CacheTimeout = BWRM_DEF_CACHE_TIMEOUT; return ANSC_STATUS_SUCCESS; }
int CcspTr069PaSsp_InitCcspCwmpCfgIf(ANSC_HANDLE hCcspCwmpCpeController) { AnscZeroMemory(&ccspCwmpCfgIf, sizeof(CCSP_CWMP_CFG_INTERFACE)); ccspCwmpCfgIf.hOwnerContext = hCcspCwmpCpeController; ccspCwmpCfgIf.Size = sizeof(CCSP_CWMP_CFG_INTERFACE); ccspCwmpCfgIf.NoRPCMethods = CcspTr069PaSsp_CcspCwmpCfgNoRPCMethods; ccspCwmpCfgIf.GetDevDataModelVer = CcspTr069PaSsp_CcspCwmpCfgGetDevDataModelVersion; ccspCwmpCfgIf.GetHttpSessionIdleTimeout = CcspTr069PaSsp_GetHttpSessionIdleTimeout; ccspCwmpCfgIf.GetCwmpRpcTimeout = CcspTr069PaSsp_GetCwmpRpcTimeout; ccspCwmpCfgIf.GetCustomForcedInformParams = CcspTr069PaSsp_GetCustomForcedInformParams; //Custom call CcspTr069PaSsp_InitCcspCwmpCfgIf_Custom(hCcspCwmpCpeController); return 0; }
ANSC_STATUS HttpWcsoResetProperty ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PHTTP_WEBC_SESSION_OBJECT pMyObject = (PHTTP_WEBC_SESSION_OBJECT )hThisObject; PHTTP_WEBC_SESSION_PROPERTY pProperty = (PHTTP_WEBC_SESSION_PROPERTY)&pMyObject->Property; AnscZeroMemory(pProperty->PeerName, ANSC_DOMAIN_NAME_SIZE); pProperty->PeerAddr.Value = 0; pProperty->PeerPort = HTTP_SERVER_PORT; pProperty->HostAddr.Value = 0; pProperty->HostPort = 0; pProperty->SessionFlags = 0; return ANSC_STATUS_SUCCESS; }
ANSC_STATUS Bmc2ComtoSetUserIdentifier ( ANSC_HANDLE hThisObject, char* pUserIdentifier ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PBMC2_COM_TERMINAL_OBJECT pMyObject = (PBMC2_COM_TERMINAL_OBJECT )hThisObject; PBMC2_COM_TERMINAL_PROPERTY pProperty = (PBMC2_COM_TERMINAL_PROPERTY)&pMyObject->Property; AnscZeroMemory(pProperty->UserIdentifier, BMC2_MAX_USER_ID_SIZE); if ( pUserIdentifier ) { AnscCopyString(pProperty->UserIdentifier, pUserIdentifier); } return ANSC_STATUS_SUCCESS; }
/********************************************************************** prototype: void* CcspCreateScalarHelper ( ); description: This function is called to create an object of "CCSP_SCALAR_HELPER_OBJECT". argument: None return: The handle of the object; **********************************************************************/ void* CcspCreateScalarHelper ( ) { PCCSP_SCALAR_HELPER_OBJECT pThisObject = NULL; pThisObject = (PCCSP_SCALAR_HELPER_OBJECT)AnscAllocateMemory(sizeof(CCSP_SCALAR_HELPER_OBJECT)); if( pThisObject == NULL) { return NULL; } AnscZeroMemory((void*)pThisObject, sizeof(CCSP_SCALAR_HELPER_OBJECT)); pThisObject->pMibFilter = 0; pThisObject->bHasWritable = FALSE; pThisObject->uMaxOid = 0; pThisObject->uMinOid = 0; pThisObject->uOidLen = 0; pThisObject->uCacheTimeout = 30; pThisObject->HandleRequestsCallback = NULL; pThisObject->pCcspComp = NULL; pThisObject->pCcspPath = NULL; pThisObject->nCacheMibCount = 0; pThisObject->LoadMibs = CcspScalarHelperLoadMibs; pThisObject->Remove = CcspScalarHelperRemove; pThisObject->RegisterMibHandler = CcspScalarHelperRegisterMibHandler; pThisObject->RefreshCache = CcspScalarHelperRefreshCache; pThisObject->ClearCache = CcspScalarHelperClearCache; pThisObject->SetMibValues = CcspScalarHelperSetMibValues; pThisObject->GetMibValues = CcspScalarHelperGetMibValues; /* init the queues */ AnscQueueInitializeHeader(&pThisObject->MibValueQueue); AnscQueueInitializeHeader(&pThisObject->MibObjQueue); return (void*)pThisObject; }
ANSC_STATUS CcspCwmppoResetProperty ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PCCSP_CWMP_PROCESSOR_OBJECT pMyObject = (PCCSP_CWMP_PROCESSOR_OBJECT )hThisObject; PCCSP_CWMP_PROCESSOR_PROPERTY pProperty = (PCCSP_CWMP_PROCESSOR_PROPERTY)&pMyObject->Property; AnscZeroMemory(pProperty, sizeof(CCSP_CWMP_PROCESSOR_PROPERTY)); pProperty->bInitialContact = FALSE; pProperty->FirstTimeInterval = 0; pProperty->FollowingInterval = 0; pProperty->DefActiveNotifThrottle = 0; pProperty->LastActiveNotifTime = 0; return ANSC_STATUS_SUCCESS; }
ANSC_STATUS AnscDstoReset ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PANSC_DAEMON_SERVER_TCP_OBJECT pMyObject = (PANSC_DAEMON_SERVER_TCP_OBJECT)hThisObject; pMyObject->StartTime = 0; pMyObject->TccCount = 0; pMyObject->MccCount = 0; pMyObject->TrcCount = 0; pMyObject->MrcCount = 0; pMyObject->TscCount = 0; pMyObject->MscCount = 0; #ifdef _ANSC_IPV6_COMPATIBLE_ AnscZeroMemory(pMyObject->HostName, sizeof(pMyObject->HostName)); if ( pMyObject->Mode & ANSC_DSTO_MODE_XSOCKET ) { if ( pMyObject->pHostAddr2 ) { _xskt_freeaddrinfo(pMyObject->pHostAddr2); } } else { if ( pMyObject->pHostAddr1 ) { _ansc_freeaddrinfo(pMyObject->pHostAddr1); } } #endif return ANSC_STATUS_SUCCESS; }
/********************************************************************** prototype: BOOL CcspCrLoadDeviceProfile ( ANSC_HANDLE hCcspCr ); description: This function is called to load device profile for CR. argument: ANSC_HANDLE hCcspCr the handle of CCSP CR component; return: Succeeded or not; **********************************************************************/ BOOL CcspCrLoadDeviceProfile ( ANSC_HANDLE hCcspCr ) { PCCSP_CR_MANAGER_OBJECT pMyObject = (PCCSP_CR_MANAGER_OBJECT)hCcspCr; PCCSP_NAMESPACE_MGR_OBJECT pNSMgr = (PCCSP_NAMESPACE_MGR_OBJECT)pMyObject->hCcspNamespaceMgr; ANSC_HANDLE pFileHandle = NULL; char* pXMLContent = NULL; char* pBackContent = NULL; ULONG uXMLLength = 0; PANSC_XML_DOM_NODE_OBJECT pXmlNode = (PANSC_XML_DOM_NODE_OBJECT)NULL; PANSC_XML_DOM_NODE_OBJECT pListNode = (PANSC_XML_DOM_NODE_OBJECT)NULL; PANSC_XML_DOM_NODE_OBJECT pChildNode = (PANSC_XML_DOM_NODE_OBJECT)NULL; BOOL bStatus = TRUE; ULONG uFileLength = 0; ULONG uBufferSize = 0; char buffer[512] = { 0 }; ULONG uLength = 511; PCCSP_COMPONENT_INFO pCompInfo = (PCCSP_COMPONENT_INFO)NULL; /* load from the file */ pFileHandle = AnscOpenFile ( CCSP_CR_DEVICE_PROFILE_XML_FILE, ANSC_FILE_O_BINARY | ANSC_FILE_O_RDONLY, ANSC_FILE_S_IREAD ); if( pFileHandle == NULL) { AnscTrace("Failed to load the file : '%s'\n", CCSP_CR_DEVICE_PROFILE_XML_FILE); return FALSE; } uFileLength = AnscGetFileSize( pFileHandle); pXMLContent = (char*)AnscAllocateMemory( uFileLength + 8); if( pXMLContent == NULL) { return FALSE; } uBufferSize = uFileLength + 8; if( AnscReadFile( pFileHandle, pXMLContent, &uBufferSize) != ANSC_STATUS_SUCCESS) { AnscFreeMemory(pXMLContent); return FALSE; } if( pFileHandle != NULL) { AnscCloseFile(pFileHandle); } /* parse the XML content */ pBackContent = pXMLContent; pXmlNode = (PANSC_XML_DOM_NODE_OBJECT) AnscXmlDomParseString((ANSC_HANDLE)NULL, (PCHAR*)&pXMLContent, uBufferSize); AnscFreeMemory(pBackContent); if( pXmlNode == NULL) { AnscTraceWarning(("Failed to parse the CR profile file.\n")); return FALSE; } /* load CR name */ pChildNode = (PANSC_XML_DOM_NODE_OBJECT) AnscXmlDomNodeGetChildByName(pXmlNode, CCSP_CR_XML_NODE_crName); if( pChildNode != NULL && pChildNode->GetDataString(pChildNode, NULL, buffer, &uLength) == ANSC_STATUS_SUCCESS && uLength > 0) { pMyObject->pCRName = AnscCloneString(buffer); } else { pMyObject->pCRName = AnscCloneString(CCSP_CR_NAME); } AnscTraceWarning(("CR Name: %s\n", pMyObject->pCRName)); #if 0 /* load prefix name */ /* Prefix will be set from command line instead */ uLength = 511; AnscZeroMemory(buffer, 512); pChildNode = (PANSC_XML_DOM_NODE_OBJECT) AnscXmlDomNodeGetChildByName(pXmlNode, CCSP_CR_XML_NODE_prefix); if( pChildNode != NULL && pChildNode->GetDataString(pChildNode, NULL, buffer, &uLength) == ANSC_STATUS_SUCCESS && uLength > 0) { pMyObject->pPrefix = AnscCloneString(buffer); pNSMgr->SubsysPrefix = AnscCloneString(buffer); AnscTraceWarning(("CR Prefix: %s\n", pMyObject->pPrefix)); } #endif /* get remote cr array */ pListNode = (PANSC_XML_DOM_NODE_OBJECT) AnscXmlDomNodeGetChildByName(pXmlNode, CCSP_CR_XML_NODE_remote); if( pListNode != NULL) { pChildNode = (PANSC_XML_DOM_NODE_OBJECT) AnscXmlDomNodeGetHeadChild(pListNode); while(pChildNode != NULL) { /* load remote cr information */ if(!CcspCrLoadRemoteCRInfo(hCcspCr, (ANSC_HANDLE)pChildNode)) { AnscTraceWarning(("Failed to load remote cr infor.\n")); } pChildNode = (PANSC_XML_DOM_NODE_OBJECT) AnscXmlDomNodeGetNextChild(pListNode, pChildNode); } } /* get the component array node */ pListNode = (PANSC_XML_DOM_NODE_OBJECT) AnscXmlDomNodeGetChildByName(pXmlNode, CCSP_CR_XML_NODE_components); if( pListNode != NULL) { pChildNode = (PANSC_XML_DOM_NODE_OBJECT) AnscXmlDomNodeGetHeadChild(pListNode); while(pChildNode != NULL) { /* load component information */ if(!CcspCrLoadComponentProfile(hCcspCr, (ANSC_HANDLE)pChildNode)) { AnscTraceWarning(("Failed to load component profile.\n")); } pChildNode = (PANSC_XML_DOM_NODE_OBJECT) AnscXmlDomNodeGetNextChild(pListNode, pChildNode); } } if( pXmlNode != NULL) { pXmlNode->Remove(pXmlNode); } /* create a Component Info for CR itself */ pCompInfo = (PCCSP_COMPONENT_INFO)CcspCrAllocateMemory(sizeof(CCSP_COMPONENT_INFO)); if( pCompInfo != NULL) { pCompInfo->pComponentName = CcspCrCloneString(CCSP_CR_NAME); pCompInfo->uVersion = CCSP_CR_VERSION; pCompInfo->uStatus = CCSP_Component_NotRegistered; AnscQueuePushEntry(&pMyObject->CompInfoQueue, &pCompInfo->Linkage); } return bStatus; }
ANSC_STATUS CcspCwmpAcscoInitialize ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PCCSP_CWMP_ACS_CONNECTION_OBJECT pMyObject = (PCCSP_CWMP_ACS_CONNECTION_OBJECT)hThisObject; /* * Until you have to simulate C++ object-oriented programming style with standard C, you don't * appreciate all the nice little things come with C++ language and all the dirty works that * have been done by the C++ compilers. Member initialization is one of these things. While in * C++ you don't have to initialize all the member fields inherited from the base class since * the compiler will do it for you, such is not the case with C. */ AnscCoInitialize((ANSC_HANDLE)pMyObject); /* * Although we have initialized some of the member fields in the "create" member function, we * repeat the work here for completeness. While this simulation approach is pretty stupid from * a C++/Java programmer perspective, it's the best we can get for universal embedded network * programming. Before we develop our own operating system (don't expect that to happen any * time soon), this is the way things gonna be. */ pMyObject->Oid = CCSP_CWMP_ACS_CONNECTION_OID; pMyObject->Create = CcspCwmpAcscoCreate; pMyObject->Remove = CcspCwmpAcscoRemove; pMyObject->EnrollObjects = CcspCwmpAcscoEnrollObjects; pMyObject->Initialize = CcspCwmpAcscoInitialize; pMyObject->hCcspCwmpSession = NULL; pMyObject->AcsUrl = NULL; pMyObject->Username = NULL; pMyObject->Password = NULL; pMyObject->AuthHeaderValue = NULL; pMyObject->bActive = FALSE; AnscZeroMemory(pMyObject->Cookies, CCSP_CWMP_ACSCO_MAX_COOKIE * sizeof(char *)); pMyObject->NumCookies = 0; pMyObject->GetHttpSimpleClient = CcspCwmpAcscoGetHttpSimpleClient; pMyObject->GetCcspCwmpSession = CcspCwmpAcscoGetCcspCwmpSession; pMyObject->SetCcspCwmpSession = CcspCwmpAcscoSetCcspCwmpSession; pMyObject->GetAcsUrl = CcspCwmpAcscoGetAcsUrl; pMyObject->SetAcsUrl = CcspCwmpAcscoSetAcsUrl; pMyObject->GetUsername = CcspCwmpAcscoGetUsername; pMyObject->SetUsername = CcspCwmpAcscoSetUsername; pMyObject->GetPassword = CcspCwmpAcscoGetPassword; pMyObject->SetPassword = CcspCwmpAcscoSetPassword; pMyObject->Reset = CcspCwmpAcscoReset; pMyObject->Connect = CcspCwmpAcscoConnect; pMyObject->Request = CcspCwmpAcscoRequest; pMyObject->RequestOnly = CcspCwmpAcscoRequestOnly; pMyObject->Close = CcspCwmpAcscoClose; pMyObject->HttpBspPolish = CcspCwmpAcscoHttpBspPolish; pMyObject->HttpBspBrowse = CcspCwmpAcscoHttpBspBrowse; pMyObject->HttpBspNotify = CcspCwmpAcscoHttpBspNotify; pMyObject->HttpGetCredential = CcspCwmpAcscoHttpGetCredential; pMyObject->AddCookie = CcspCwmpAcscoHttpAddCookie; pMyObject->RemoveCookies = CcspCwmpAcscoHttpRemoveCookies; pMyObject->FindCookie = CcspCwmpAcscoHttpFindCookie; pMyObject->DelCookie = CcspCwmpAcscoHttpDelCookie; return ANSC_STATUS_SUCCESS; }
ANSC_STATUS CcspCwmpAcscoHttpBspPolish ( ANSC_HANDLE hThisObject, ANSC_HANDLE hBmoReq, ANSC_HANDLE hReqContext ) { PCCSP_CWMP_ACS_CONNECTION_OBJECT pMyObject = (PCCSP_CWMP_ACS_CONNECTION_OBJECT)hThisObject; PANSC_ACS_INTERN_HTTP_CONTENT pHttpGetReq = (PANSC_ACS_INTERN_HTTP_CONTENT)hReqContext; ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PHTTP_BMO_REQ_OBJECT pBmoReqObj = (PHTTP_BMO_REQ_OBJECT)hBmoReq; char pBuffer[64] = { 0 }; ULONG i, len = 0; /* add Authorization header - last good one */ if ( pMyObject->AuthHeaderValue ) { pBmoReqObj->SetHeaderValueByName((ANSC_HANDLE)pBmoReqObj, "Authorization", pMyObject->AuthHeaderValue); } /* * If there's a cookie returned, add the cookie */ for ( i = 0; i < pMyObject->NumCookies; i ++ ) { if ( pMyObject->Cookies[i] == NULL ) break; len += _ansc_strlen(pMyObject->Cookies[i]); } if ( pMyObject->NumCookies == 0 ) { CcspTr069PaTraceDebug(("No Cookie will be added.\n")); } else { char *cookies = (char *)CcspTr069PaAllocateMemory(len + pMyObject->NumCookies*2); if (cookies) { AnscZeroMemory(cookies, len + pMyObject->NumCookies*2); for ( i = 0; i < pMyObject->NumCookies; i ++ ) { if ( pMyObject->Cookies[i] == NULL ) break; _ansc_strcat(cookies, pMyObject->Cookies[i]); if ( i < pMyObject->NumCookies - 1 ) _ansc_strcat(cookies, "; "); } pBmoReqObj->SetHeaderValueByName ( (ANSC_HANDLE)pBmoReqObj, "Cookie", cookies ); CcspTr069PaTraceDebug(("Add Cookie into message: %s\n", cookies)); CcspTr069PaFreeMemory(cookies); } } /* When there is more than one envelope in a single HTTP Request, * when there is a SOAP response in an HTTP Request, or when there is a * SOAP Fault response in an HTTP Request, the SOAPAction header in the * HTTP Request MUST have no value (with no quotes), indicating that this * header provides no information as to the intent of the message." */ if( pHttpGetReq ==NULL || pHttpGetReq->SoapMessage == NULL || AnscSizeOfString(pHttpGetReq->SoapMessage) == 0) { /* * An empty HTTP POST MUST NOT contain a SOAPAction header. * An empty HTTP POST MUST NOT contain a Content-Type header. */ pBmoReqObj->SetHeaderValueByName((ANSC_HANDLE)pBmoReqObj, "Content-Length", "0"); /* pBmoReqObj->SetHeaderValueByName((ANSC_HANDLE)pBmoReqObj, "Content-Type", "text/xml;charset=utf-8"); */ } else { pBmoReqObj->SetHeaderValueByName((ANSC_HANDLE)pBmoReqObj, "Content-Type", "text/xml;charset=utf-8"); _ansc_sprintf(pBuffer, "%u", (unsigned int)AnscSizeOfString(pHttpGetReq->SoapMessage)); pBmoReqObj->SetHeaderValueByName((ANSC_HANDLE)pBmoReqObj, "Content-Length", pBuffer); if( pHttpGetReq->MethodName == NULL || AnscSizeOfString(pHttpGetReq->MethodName) == 0) { pBmoReqObj->SetHeaderValueByName((ANSC_HANDLE)pBmoReqObj, "SOAPAction", ""); } else { _ansc_sprintf(pBuffer, "\"%s\"", pHttpGetReq->MethodName); pBmoReqObj->SetHeaderValueByName((ANSC_HANDLE)pBmoReqObj, "SOAPAction", pBuffer); } returnStatus = pBmoReqObj->AppendBody ( pBmoReqObj, pHttpGetReq->SoapMessage, AnscSizeOfString(pHttpGetReq->SoapMessage) ); } return returnStatus; }
ANSC_STATUS CosaNatSyncPortTrigger ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PCOSA_DATAMODEL_NAT pMyObject = (PCOSA_DATAMODEL_NAT )hThisObject; PCOSA_CONTEXT_LINK_OBJECT pCxtLink = NULL; PSINGLE_LINK_ENTRY pSListEntry = NULL; PCOSA_DML_NAT_PTRIGGER pPortTrigger = NULL; PCOSA_DML_NAT_PTRIGGER pPtEntry = NULL; ULONG entryCount = 0; ULONG i = 0; BOOL* pbFoundPt = NULL; CcspTraceWarning(("!!!!!!!! in CosaNatSyncPortTrigger !!!!!!!!\n")); pPortTrigger = CosaDmlNatGetPortTriggers(NULL,&entryCount,TRUE); if ( !pPortTrigger ) { /* Get Error, we don't del link because next time, it may be successful */ return ANSC_STATUS_FAILURE; } pbFoundPt = (BOOL*)AnscAllocateMemory(sizeof(BOOL) * entryCount); AnscZeroMemory(pbFoundPt, (sizeof(BOOL) * entryCount)); if ( !pbFoundPt ) { AnscFreeMemory(pPortTrigger); /*RDKB-6742, CID-32996, free unused resources before exit*/ return ANSC_STATUS_RESOURCES; } pSListEntry = AnscSListGetFirstEntry(&pMyObject->NatPTriggerList); while( pSListEntry ) { pCxtLink = ACCESS_COSA_CONTEXT_LINK_OBJECT(pSListEntry); pSListEntry = AnscSListGetNextEntry(pSListEntry); pPtEntry = (PCOSA_DML_NAT_PTRIGGER)pCxtLink->hContext; for ( i = 0; i < entryCount; i++) { if ( pPtEntry->InstanceNumber == pPortTrigger[i].InstanceNumber ) { /* If found, update the content also */ CcspTraceWarning(("!!!!!!!! Ready to copy 1 !!!!!!!!\n")); AnscCopyMemory(pPtEntry, &pPortTrigger[i], sizeof(COSA_DML_NAT_PTRIGGER)); /* pOriAlias is NULL, no deep copy needed */ pCxtLink->bNew = FALSE; pbFoundPt[i] = TRUE; break; } } } /* Check those in backend but not yet in middle layer */ for ( i = 0; i < entryCount; i++ ) { if ( pbFoundPt[i] == FALSE ) { /* We add new entry into our link table */ pCxtLink = AnscAllocateMemory(sizeof(COSA_CONTEXT_LINK_OBJECT)); if ( !pCxtLink ) { goto EXIT1; } pPtEntry = AnscAllocateMemory(sizeof(COSA_DML_NAT_PTRIGGER)); if ( !pPtEntry ) { goto EXIT2; } /* copy new content which should include InstanceNumber and Alias */ CcspTraceWarning(("!!!!!!!! Ready to copy 2 &pPortTrigger[%d]->InsNumber: %d !!!!!!!!\n", i, pPortTrigger[i].InstanceNumber)); AnscCopyMemory(pPtEntry, &pPortTrigger[i], sizeof(COSA_DML_NAT_PTRIGGER)); /* pOriAlias is NULL, no deep copy needed */ CcspTraceWarning(("!!!!!!!! After copy 2 pPtEntry->InsNumber: %d !!!!!!!!\n", pPtEntry->InstanceNumber)); pCxtLink->hContext = (ANSC_HANDLE)pPtEntry; pCxtLink->InstanceNumber = pPtEntry->InstanceNumber; pCxtLink->bNew = FALSE; CosaSListPushEntryByInsNum(&pMyObject->NatPTriggerList, (PCOSA_CONTEXT_LINK_OBJECT)pCxtLink); } } returnStatus = ANSC_STATUS_SUCCESS; goto EXIT1; EXIT2: AnscFreeMemory(pCxtLink); EXIT1: AnscFreeMemory(pbFoundPt); AnscFreeMemory(pPortTrigger); CcspTraceWarning(("!!!!!!!! out CosaNatSyncPortTrigger !!!!!!!!\n")); return returnStatus; }
ANSC_STATUS ssp_create_wifi ( PCCSP_COMPONENT_CFG pStartCfg ) { /* Create component common data model object */ g_pComponent_Common_Dm = (PCOMPONENT_COMMON_DM)AnscAllocateMemory(sizeof(COMPONENT_COMMON_DM)); if ( !g_pComponent_Common_Dm ) { return ANSC_STATUS_RESOURCES; } ComponentCommonDmInit(g_pComponent_Common_Dm); g_pComponent_Common_Dm->Name = AnscCloneString(pStartCfg->ComponentName); g_pComponent_Common_Dm->Version = 1; g_pComponent_Common_Dm->Author = AnscCloneString("CCSP"); /* Create ComponentCommonDatamodel interface*/ if ( !pWifiCcdIf ) { pWifiCcdIf = (PCCSP_CCD_INTERFACE)AnscAllocateMemory(sizeof(CCSP_CCD_INTERFACE)); if ( !pWifiCcdIf ) { return ANSC_STATUS_RESOURCES; } else { AnscCopyString(pWifiCcdIf->Name, CCSP_CCD_INTERFACE_NAME); pWifiCcdIf->InterfaceId = CCSP_CCD_INTERFACE_ID; pWifiCcdIf->hOwnerContext = NULL; pWifiCcdIf->Size = sizeof(CCSP_CCD_INTERFACE); pWifiCcdIf->GetComponentName = ssp_WifiCCDmGetComponentName; pWifiCcdIf->GetComponentVersion = ssp_WifiCCDmGetComponentVersion; pWifiCcdIf->GetComponentAuthor = ssp_WifiCCDmGetComponentAuthor; pWifiCcdIf->GetComponentHealth = ssp_WifiCCDmGetComponentHealth; pWifiCcdIf->GetComponentState = ssp_WifiCCDmGetComponentState; pWifiCcdIf->GetLoggingEnabled = ssp_WifiCCDmGetLoggingEnabled; pWifiCcdIf->SetLoggingEnabled = ssp_WifiCCDmSetLoggingEnabled; pWifiCcdIf->GetLoggingLevel = ssp_WifiCCDmGetLoggingLevel; pWifiCcdIf->SetLoggingLevel = ssp_WifiCCDmSetLoggingLevel; pWifiCcdIf->GetMemMaxUsage = ssp_WifiCCDmGetMemMaxUsage; pWifiCcdIf->GetMemMinUsage = ssp_WifiCCDmGetMemMinUsage; pWifiCcdIf->GetMemConsumed = ssp_WifiCCDmGetMemConsumed; pWifiCcdIf->ApplyChanges = ssp_WifiCCDmApplyChanges; } } /* Create context used by data model */ pWifiFcContext = (PCCSP_FC_CONTEXT)AnscAllocateMemory(sizeof(CCSP_FC_CONTEXT)); if ( !pWifiFcContext ) { return ANSC_STATUS_RESOURCES; } else { AnscZeroMemory(pWifiFcContext, sizeof(CCSP_FC_CONTEXT)); } pDslhCpeController = DslhCreateCpeController(NULL, NULL, NULL); if ( !pDslhCpeController ) { CcspTraceWarning(("CANNOT Create pDslhCpeController... Exit!\n")); return ANSC_STATUS_RESOURCES; } return ANSC_STATUS_SUCCESS; }
ANSC_STATUS SlapEcoUoaInvokeObject ( ANSC_HANDLE hThisObject, ANSC_HANDLE hSlapObject, char* method_name, SLAP_PARAMETER_LIST* params_in, SLAP_PARAMETER_LIST** params_out, SLAP_VARIABLE** return_var ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PSLAP_ENV_CONTROLLER_OBJECT pMyObject = (PSLAP_ENV_CONTROLLER_OBJECT)hThisObject; PSLAP_OBJ_MAPPER_OBJECT pSlapObjMapper = (PSLAP_OBJ_MAPPER_OBJECT )pMyObject->hSlapObjMapper; PSLAP_OBJ_CONTAINER_OBJECT pSlapObjContainer = (PSLAP_OBJ_CONTAINER_OBJECT )NULL; PSLAP_OBJ_ENTITY_OBJECT pSlapObjEntity = (PSLAP_OBJ_ENTITY_OBJECT )NULL; PSLAP_OBJ_RECORD_OBJECT pSlapObjRecord = (PSLAP_OBJ_RECORD_OBJECT )hSlapObject; PSLAP_SRV_COMPONENT_OBJECT pSlapSrvComponent = (PSLAP_SRV_COMPONENT_OBJECT )pSlapObjRecord->hSlapSrvComponent; ULONG ulObjType = (ULONG )0; pMyObject->bCallPending = TRUE; pMyObject->PendingCallTimestamp = AnscGetTickInSeconds(); AnscZeroMemory(pMyObject->PendingCallName, 256); AnscCopyString(pMyObject->PendingCallName, method_name); /* * There're certain object methods should not be simply relayed to the target logic object. For * example, the external modules may try to invoke method "Remove" to delete the target object. * Handling of such methods should be taken care by UOA interface. */ if ( AnscEqualString(method_name, "Remove", FALSE) && (params_in != NULL ) && (params_in->ParamCount == 0 ) ) { returnStatus = pMyObject->UoaDeleteObject ( (ANSC_HANDLE)pMyObject, (ANSC_HANDLE)pSlapObjRecord ); pMyObject->bCallPending = FALSE; return returnStatus; } if ( !pSlapSrvComponent ) { pMyObject->bCallPending = FALSE; return ANSC_STATUS_UNAPPLICABLE; } else { ulObjType = pSlapSrvComponent->ObjType; if ( ulObjType & SLAP_OBJ_TYPE_serializedCalls ) { pSlapObjRecord->AcqAccess((ANSC_HANDLE)pSlapObjRecord); } returnStatus = pSlapSrvComponent->InvokeDispatch ( (ANSC_HANDLE)pSlapSrvComponent, method_name, params_in, params_out, return_var ); if ( ulObjType & SLAP_OBJ_TYPE_serializedCalls ) { pSlapObjRecord->RelAccess((ANSC_HANDLE)pSlapObjRecord); } } pMyObject->bCallPending = FALSE; return returnStatus; }
ANSC_STATUS BwspScoWsrAttachWebHost ( ANSC_HANDLE hThisObject, ANSC_HANDLE hHostDescr ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PBWSP_SITE_CREATOR_OBJECT pMyObject = (PBWSP_SITE_CREATOR_OBJECT )hThisObject; PBWSP_SITE_CREATOR_PROPERTY pProperty = (PBWSP_SITE_CREATOR_PROPERTY )&pMyObject->Property; PWEB_HEM_INTERFACE pWebHemIf = (PWEB_HEM_INTERFACE )pMyObject->hWebHemIf; PHTTP_HELPER_CONTAINER_OBJECT pHttpHco = (PHTTP_HELPER_CONTAINER_OBJECT)pWebHemIf->GetHttpHco(pWebHemIf->hOwnerContext); PBWSP_WEB_HOST_DESCRIPTOR pWebHostDesp = (PBWSP_WEB_HOST_DESCRIPTOR )hHostDescr; PBWSP_PORTAL_HOST_OBJECT pPortalHost = (PBWSP_PORTAL_HOST_OBJECT )NULL; BWSP_PORTAL_HOST_PROPERTY bwspPhoProperty; WEB_LSM_INTERFACE webLsmIf; if ( !pMyObject->bActive ) { return ANSC_STATUS_NOT_READY; } else { pPortalHost = (PBWSP_PORTAL_HOST_OBJECT)BwspCreatePortalHost ( pHttpHco, (ANSC_HANDLE)pMyObject, (ANSC_HANDLE)NULL ); } if ( !pPortalHost ) { return ANSC_STATUS_UNAPPLICABLE; } if ( TRUE ) { AnscZeroMemory(&bwspPhoProperty, sizeof(BWSP_PORTAL_HOST_PROPERTY)); AnscCopyString(bwspPhoProperty.HostName, pWebHostDesp->HostName ); AnscCopyString(bwspPhoProperty.VhoCookieName, pProperty ->PhoCookieName); AnscCopyString(bwspPhoProperty.LsmCookieName, pProperty ->LsmCookieName); bwspPhoProperty.HostPort = pWebHostDesp->HostPort; bwspPhoProperty.bEnableSessionTracking = pWebHostDesp->bSessionTracking; bwspPhoProperty.bDefaultVirtualHost = pWebHostDesp->bDefaultHost; bwspPhoProperty.SessionTimeOut = pProperty ->SessionTimeout; bwspPhoProperty.VhoCookieMaxAge = pProperty ->PhoCookieMaxAge; bwspPhoProperty.LsmCookieMaxAge = pProperty ->LsmCookieMaxAge; pPortalHost->SetProperty((ANSC_HANDLE)pPortalHost, (ANSC_HANDLE)&bwspPhoProperty); } if ( TRUE ) { AnscZeroMemory(&webLsmIf, sizeof(WEB_LSM_INTERFACE)); AnscCopyString(webLsmIf.Name, WEB_LSM_INTERFACE_NAME); webLsmIf.InterfaceId = WEB_LSM_INTERFACE_ID; webLsmIf.hOwnerContext = pWebHostDesp->hHostContext; webLsmIf.Size = sizeof(WEB_LSM_INTERFACE); webLsmIf.NewContact = (PFN_WEBLSMIF_NEW )pWebHostDesp->NewContact; webLsmIf.ClassifyClient = (PFN_WEBLSMIF_CLASSIFY)pWebHostDesp->ClassifyClient; webLsmIf.ExpireSession = (PFN_WEBLSMIF_EXPIRE )pWebHostDesp->ExpireSession; webLsmIf.EndSession = (PFN_WEBLSMIF_END )pWebHostDesp->EndSession; pPortalHost->SetLsmIf((ANSC_HANDLE)pPortalHost, (ANSC_HANDLE)&webLsmIf); } if ( TRUE ) { pPortalHost->Engage((ANSC_HANDLE)pPortalHost); } returnStatus = pWebHemIf->AttachWebVho ( pWebHemIf->hOwnerContext, (ANSC_HANDLE)pPortalHost ); if ( returnStatus != ANSC_STATUS_SUCCESS ) { pPortalHost->Cancel((ANSC_HANDLE)pPortalHost); pPortalHost->Remove((ANSC_HANDLE)pPortalHost); } return returnStatus; }
ANSC_STATUS BwspScoWsrAttachServlet ( ANSC_HANDLE hThisObject, char* host_name, ANSC_HANDLE hServletDescr ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PBWSP_SITE_CREATOR_OBJECT pMyObject = (PBWSP_SITE_CREATOR_OBJECT )hThisObject; PBWSP_SITE_CREATOR_PROPERTY pProperty = (PBWSP_SITE_CREATOR_PROPERTY )&pMyObject->Property; PWEB_HEM_INTERFACE pWebHemIf = (PWEB_HEM_INTERFACE )pMyObject->hWebHemIf; PHTTP_HELPER_CONTAINER_OBJECT pHttpHco = (PHTTP_HELPER_CONTAINER_OBJECT)pWebHemIf->GetHttpHco(pWebHemIf->hOwnerContext); PBWSP_SERVLET_DESCRIPTOR pServletDesp = (PBWSP_SERVLET_DESCRIPTOR )hServletDescr; PBWSP_WEB_SERVLET_OBJECT pWebServlet = (PBWSP_WEB_SERVLET_OBJECT )NULL; BWSP_WEB_SERVLET_PROPERTY bwspWsoProperty; BWSP_WSH_INTERFACE bwspWshIf; if ( !pMyObject->bActive ) { return ANSC_STATUS_NOT_READY; } else { pWebServlet = (PBWSP_WEB_SERVLET_OBJECT)BwspCreateWebServlet ( pHttpHco, (ANSC_HANDLE)pMyObject, (ANSC_HANDLE)NULL ); } if ( !pWebServlet ) { return ANSC_STATUS_UNAPPLICABLE; } if ( TRUE ) { AnscZeroMemory(&bwspWsoProperty, sizeof(BWSP_WEB_SERVLET_PROPERTY)); AnscCopyString(bwspWsoProperty.RootPath, pServletDesp->WebRootPath); AnscCopyString(bwspWsoProperty.RegPath, pServletDesp->ServletPath); bwspWsoProperty.OwnerFlag = pServletDesp->bMainPage ? WEB_ROO_FLAG_STANDARD | WEB_ROO_FLAG_DEFAULT : WEB_ROO_FLAG_STANDARD; bwspWsoProperty.OwnerFlag |= pServletDesp->bUpnpSupport? WEB_ROO_FLAG_UPNP_SUPPORT: 0; bwspWsoProperty.OwnerType = WEB_ROO_TYPE_GENERAL_CGI; bwspWsoProperty.AuthType = WEB_ROO_AUTH_TYPE_NONE; pWebServlet->SetProperty((ANSC_HANDLE)pWebServlet, (ANSC_HANDLE)&bwspWsoProperty); } if ( TRUE ) { AnscZeroMemory(&bwspWshIf, sizeof(BWSP_WSH_INTERFACE)); AnscCopyString(bwspWshIf.Name, BWSP_WSH_INTERFACE_NAME); bwspWshIf.InterfaceId = BWSP_WSH_INTERFACE_ID; bwspWshIf.hOwnerContext = pServletDesp->hServletContext; bwspWshIf.Size = sizeof(BWSP_WSH_INTERFACE); bwspWshIf.DoOptions = (PFN_BWSPWSHIF_DO_OPTIONS )pServletDesp->DoOptions; bwspWshIf.DoGet = (PFN_BWSPWSHIF_DO_GET )pServletDesp->DoGet; bwspWshIf.DoHead = (PFN_BWSPWSHIF_DO_HEAD )pServletDesp->DoHead; bwspWshIf.DoPost = (PFN_BWSPWSHIF_DO_POST )pServletDesp->DoPost; bwspWshIf.DoPut = (PFN_BWSPWSHIF_DO_PUT )pServletDesp->DoPut; bwspWshIf.DoDelete = (PFN_BWSPWSHIF_DO_DELETE )pServletDesp->DoDelete; bwspWshIf.DoTrace = (PFN_BWSPWSHIF_DO_TRACE )pServletDesp->DoTrace; bwspWshIf.DoConnect = (PFN_BWSPWSHIF_DO_CONNECT )pServletDesp->DoConnect; bwspWshIf.DoNotify = (PFN_BWSPWSHIF_DO_NOTIFY )pServletDesp->DoNotify; bwspWshIf.DoSearch = (PFN_BWSPWSHIF_DO_SEARCH )pServletDesp->DoSearch; bwspWshIf.DoMSearch = (PFN_BWSPWSHIF_DO_M_SEARCH )pServletDesp->DoMSearch; bwspWshIf.DoMPost = (PFN_BWSPWSHIF_DO_M_POST )pServletDesp->DoMPost; bwspWshIf.DoSubscribe = (PFN_BWSPWSHIF_DO_SUBSCRIBE )pServletDesp->DoSubscribe; bwspWshIf.DoUnsubscribe = (PFN_BWSPWSHIF_DO_UNSUBSCRIBE)pServletDesp->DoUnsubscribe; pWebServlet->SetBwspWshIf((ANSC_HANDLE)pWebServlet, (ANSC_HANDLE)&bwspWshIf); } if ( TRUE ) { pWebServlet->Engage((ANSC_HANDLE)pWebServlet); } returnStatus = pWebHemIf->AttachWebRoo ( pWebHemIf->hOwnerContext, host_name, (ANSC_HANDLE)pWebServlet ); if ( returnStatus != ANSC_STATUS_SUCCESS ) { pWebServlet->Cancel((ANSC_HANDLE)pWebServlet); pWebServlet->Remove((ANSC_HANDLE)pWebServlet); } return returnStatus; }
ANSC_STATUS CosaUsersInitialize ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PCOSA_DATAMODEL_USERS pMyObject = (PCOSA_DATAMODEL_USERS)hThisObject; PPOAM_IREP_FOLDER_OBJECT pPoamIrepFoCOSA = NULL; PPOAM_IREP_FOLDER_OBJECT pPoamIrepFoUser = NULL; /* We need call the initiation function of backend firstly */ returnStatus = CosaDmlUserInit( NULL, NULL ); if ( returnStatus != ANSC_STATUS_SUCCESS ) { return returnStatus; } /* Initiation all functions */ AnscSListInitializeHeader( &pMyObject->UserList ); pMyObject->maxInstanceOfUser = 0; pMyObject->hIrepFolderUser = NULL; AnscZeroMemory(pMyObject->AliasOfUser, sizeof(pMyObject->AliasOfUser)); /*We need to get Instance Info from cosa configuration*/ pPoamIrepFoCOSA = (PPOAM_IREP_FOLDER_OBJECT)g_GetRegistryRootFolder(g_pDslhDmlAgent); if ( !pPoamIrepFoCOSA ) { returnStatus = ANSC_STATUS_FAILURE; goto EXIT; } pPoamIrepFoUser = (PPOAM_IREP_FOLDER_OBJECT)pPoamIrepFoCOSA->GetFolder ( (ANSC_HANDLE)pPoamIrepFoCOSA, COSA_IREP_FOLDER_NAME_USER ); if ( !pPoamIrepFoUser ) { pPoamIrepFoCOSA->EnableFileSync((ANSC_HANDLE)pPoamIrepFoCOSA, FALSE); pPoamIrepFoUser = pPoamIrepFoCOSA->AddFolder ( (ANSC_HANDLE)pPoamIrepFoCOSA, COSA_IREP_FOLDER_NAME_USER, 0 ); pPoamIrepFoCOSA->EnableFileSync((ANSC_HANDLE)pPoamIrepFoCOSA, TRUE); } if ( !pPoamIrepFoUser ) { returnStatus = ANSC_STATUS_FAILURE; goto EXIT; } else { pMyObject->hIrepFolderUser = (ANSC_HANDLE)pPoamIrepFoUser; } /* We need get NextInstanceNumber from backend. By the way, the whole tree was created. Moreover, we also need get delay-added entry and put them into our tree. */ CosaUsersRegGetUserInfo((ANSC_HANDLE)pMyObject); /* Firstly we create the whole system from backend */ CosaUsersBackendGetUserInfo((ANSC_HANDLE)pMyObject); EXIT: return returnStatus; }