static int DCE2_ReloadVerifyPolicy( tSfPolicyUserContextId config, tSfPolicyId policyId, void* pData ) { DCE2_Config *swap_config = (DCE2_Config *)pData; DCE2_Config *current_config = (DCE2_Config *)sfPolicyUserDataGet(dce2_config, policyId); DCE2_ServerConfig *dconfig; //do any housekeeping before freeing DCE2_Config if ( swap_config == NULL || swap_config->gconfig->disabled ) return 0; if (!_dpd.isPreprocEnabled(PP_STREAM5)) { DCE2_Die("%s(%d) \"%s\" configuration: " "Stream5 must be enabled with TCP and UDP tracking.", *_dpd.config_file, *_dpd.config_line, DCE2_GNAME); } dconfig = swap_config->dconfig; if (dconfig == NULL) DCE2_CreateDefaultServerConfig(swap_config, policyId); #ifdef TARGET_BASED if (!_dpd.isAdaptiveConfigured(policyId, 1)) #endif { DCE2_ScCheckTransports(swap_config); } #ifdef ENABLE_PAF DCE2_AddPortsToPaf(swap_config, policyId); #endif /* Register routing table memory */ if (swap_config->sconfigs != NULL) DCE2_RegMem(sfrt_usage(swap_config->sconfigs), DCE2_MEM_TYPE__RT); if (current_config == NULL) return 0; if (swap_config->gconfig->memcap != current_config->gconfig->memcap) { _dpd.errMsg("dcerpc2 reload: Changing the memcap requires a restart.\n"); DCE2_FreeConfigs(dce2_swap_config); dce2_swap_config = NULL; return -1; } return 0; }
/******************************************************************** * Function: * * Purpose: * * Arguments: * * Returns: * ********************************************************************/ void * DCE2_Alloc(uint32_t size, DCE2_MemType mtype) { void *mem; if (DCE2_CheckMemcap(size, mtype) != DCE2_MEMCAP_OK) return NULL; mem = calloc(1, (size_t)size); if (mem == NULL) { DCE2_Die("%s(%d) Out of memory!", __FILE__, __LINE__); } DCE2_RegMem(size, mtype); return mem; }
static int DCE2_CheckConfigPolicy( tSfPolicyUserContextId config, tSfPolicyId policyId, void* pData ) { DCE2_Config *pPolicyConfig = (DCE2_Config *)pData; DCE2_ServerConfig *dconfig; if ( pPolicyConfig->gconfig->disabled ) return 0; _dpd.setParserPolicy(policyId); // config_file/config_line are not set here if (!_dpd.isPreprocEnabled(PP_STREAM5)) { DCE2_Die("Stream5 must be enabled with TCP and UDP tracking."); } dconfig = pPolicyConfig->dconfig; if (dconfig == NULL) DCE2_CreateDefaultServerConfig(pPolicyConfig, policyId); #ifdef TARGET_BASED if (!_dpd.isAdaptiveConfigured(policyId, 1)) #endif { DCE2_ScCheckTransports(pPolicyConfig); } #ifdef ENABLE_PAF DCE2_AddPortsToPaf(pPolicyConfig, policyId); #endif /* Register routing table memory */ if (pPolicyConfig->sconfigs != NULL) DCE2_RegMem(sfrt_usage(pPolicyConfig->sconfigs), DCE2_MEM_TYPE__RT); return 0; }