Добрый день!
Из библиотеки ald-dev хедера ALDParsecMACUtils.h использую метод
И возвращает 12 названий парсек привилегий.
Но ведь в Astra 1.6 SE ввели 3 новых привилегии и их стало 15!
Но в апи это не отражено.
Помимо этого захотелось использовать метод ParsecCapByName, но он кидает исключения
Пришлось захардкодить массив текста и масок, но хотелось бы использовать ваше апи. Есть ли пути решения проблемы?
Из библиотеки ald-dev хедера ALDParsecMACUtils.h использую метод
const ald_parsec_cap_names& ParsecCapNames();
для получения списка всех возможных PARSEC привилегий. ald_parsec_cap_names
является массивом из 12 строк
C++:
#define ALD_PARSEC_CAP_COUNT 12
typedef string ald_parsec_cap_names[ALD_PARSEC_CAP_COUNT];
Но ведь в Astra 1.6 SE ввели 3 новых привилегии и их стало 15!
Но в апи это не отражено.
Помимо этого захотелось использовать метод ParsecCapByName, но он кидает исключения
Неизвестная PARSEC привилегия 'parsec_cap_unsafe_setxattr'
C++:
const string parsecOrigCaps[ALD_PARSEC_CAP_COUNT] = ParsecCapNames();
string parsecCaps[ALD_PARSEC_CAP_COUNT + 3];
std::copy(std::begin(parsecOrigCaps), std::end(parsecOrigCaps), std::begin(parsecCaps));
parsecCaps[PARSEC_CAP_UNSAFE_SETXATTR] = "parsec_cap_unsafe_setxattr";
parsecCaps[PARSEC_CAP_IGNMACINT] = "parsec_cap_ignmacint";
parsecCaps[PARSEC_CAP_SUMAC] = "parsec_cap_sumac";
for (const std::string& name : parsecCaps)
{//...
uint32_t mask = ParsecCapByName(name); //< exception
//...
}