const ConfigurationChoice * SimulationConfiguration::Implementation::getStateManagerPeriodChoice() const { const ConfigurationChoice *retval = 0; if (getStateManagerScope() != 0) { retval = getStateManagerScope()->findChoice(getPeriodName()); } return retval; }
void account_restrict(Account * ac, stats_limit_cfg * limit) { char buffer[_DBGOVERNOR_BUFFER_2048]; int i; User_stats *us; //Command cmd; struct governor_config data_cfg; get_config_data( &data_cfg ); if( data_cfg.is_gpl ) return; if( data_cfg.all_lve || !data_cfg.use_lve ) return; //lve use=all or off for (i = 0; i < ac->users->len; i++) { us = g_ptr_array_index (ac->users, i); Command *cmd = g_malloc(sizeof(Command)); if (cmd) { if (command_list) { strlcpy(cmd->username, us->id, USERNAMEMAXLEN); cmd->command = FREEZE; pthread_mutex_lock(&mtx_commands); command_list = g_list_append(command_list, cmd); pthread_mutex_unlock(&mtx_commands); if( data_cfg.logqueries_use == 2 ) log_user_queries( cmd->username, data_cfg.log_mode ); } } } if (data_cfg.exec_script) { pid_t trigger_pid; /*Готовим список передаваемых скрипту параметров */ char period_name[_DBGOVERNOR_BUFFER_128]; char varName[_DBGOVERNOR_BUFFER_128]; char varValue[_DBGOVERNOR_BUFFER_128]; char limValue[_DBGOVERNOR_BUFFER_128]; char penValue[_DBGOVERNOR_BUFFER_128]; char loadAvg[GETSYSINFO_MAXFILECONTENT]; char vmStat[GETSYSINFO_MAXFILECONTENT]; char dump[_DBGOVERNOR_BUFFER_8192]; getPeriodName(period_name, ac); getParamName(varName, ac); snprintf(varValue, _DBGOVERNOR_BUFFER_128, "%ld", getRestrictValue(ac)); snprintf(limValue, _DBGOVERNOR_BUFFER_128, "%ld", getLimitValue(ac, limit)); snprintf(penValue, _DBGOVERNOR_BUFFER_128, "%ld", ac->restricted + 1); getloadavggov(loadAvg); getvmstat(vmStat); print_stats_to_buffer(dump, getRestrictDump(ac), _DBGOVERNOR_BUFFER_8192); trigger_pid = fork(); if (trigger_pid < 0) { WRITE_LOG(NULL, 0, buffer, _DBGOVERNOR_BUFFER_2048, "(%d)Fork error (trigger). Path %s", data_cfg.log_mode, errno, data_cfg.exec_script); } else { if (!trigger_pid) { execl(data_cfg.exec_script, data_cfg.exec_script, ac->id, period_name, varName, varValue, limValue, penValue, loadAvg, vmStat, dump, NULL); WRITE_LOG(NULL, 0, buffer, _DBGOVERNOR_BUFFER_2048, "(%d)Exec error (trigger). Path %s", data_cfg.log_mode, errno, data_cfg.exec_script); exit(0); } } } }