//-------------------------------------------------------------------------------------------------- rlim_t resLim_GetSandboxedAppTmpfsLimit ( app_Ref_t appRef ///< [IN] The application to set resource limits for. ) { // Create a config iterator to get the file system limit from the config tree. le_cfg_IteratorRef_t appCfg = le_cfg_CreateReadTxn(app_GetConfigPath(appRef)); // Get the resource limit from the config tree. int fileSysLimit = GetCfgResourceLimit(appCfg, CFG_NODE_LIMIT_MAX_FILE_SYSTEM_BYTES, DEFAULT_LIMIT_MAX_FILE_SYSTEM_BYTES); if (fileSysLimit == 0) { // Zero means unlimited for tmpfs mounts and is not allowed. Use the default limit. LE_ERROR("Configured resource limit %s is zero, which is invalid. Assuming the default value %d.", CFG_NODE_LIMIT_MAX_FILE_SYSTEM_BYTES, DEFAULT_LIMIT_MAX_FILE_SYSTEM_BYTES); fileSysLimit = DEFAULT_LIMIT_MAX_FILE_SYSTEM_BYTES; } le_cfg_CancelTxn(appCfg); return (rlim_t)fileSysLimit; }
//-------------------------------------------------------------------------------------------------- rlim_t resLim_GetSandboxedAppTmpfsLimit ( app_Ref_t appRef ///< [IN] The application to set resource limits for. ) { // Get the resource limit from the config tree. Zero means unlimited for tmpfs mounts and is // not allowed. // Determine the file system limit to set. rlim_t fileSysLimit = DEFAULT_LIMIT_FILE_SYSTEM_SIZE; // Create a config iterator to get the file system limit from the config tree. le_cfg_IteratorRef_t appCfg = le_cfg_CreateReadTxn(app_GetConfigPath(appRef)); le_cfg_GoToNode(appCfg, CFG_NODE_LIMIT_FILE_SYSTEM_SIZE); if (le_cfg_NodeExists(appCfg, "") == false) { LE_WARN("No resource limit %s. Assuming the default value %d.", CFG_NODE_LIMIT_FILE_SYSTEM_SIZE, DEFAULT_LIMIT_FILE_SYSTEM_SIZE); } else if ( (GetCfgResourceLimit(appCfg, &fileSysLimit) != LE_OK) || (fileSysLimit == 0) ) { // Use the default limit. LE_ERROR("Configured resource limit %s is invalid. Assuming the default value %d.", CFG_NODE_LIMIT_FILE_SYSTEM_SIZE, DEFAULT_LIMIT_FILE_SYSTEM_SIZE); fileSysLimit = DEFAULT_LIMIT_FILE_SYSTEM_SIZE; } le_cfg_CancelTxn(appCfg); return fileSysLimit; }