ALDParsecMACUtils.h функция ParsecCapNames();

carrot

New member
Сообщения
27
#1
Добрый день!

Из библиотеки 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];
И возвращает 12 названий парсек привилегий.

Но ведь в 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
//...
}
Пришлось захардкодить массив текста и масок, но хотелось бы использовать ваше апи. Есть ли пути решения проблемы?
 

Montfer

New member
Сообщения
2 364
#2
тут никто не поможет. хз, куда вам стоит обратится: или на какую нибудь почту рбт или в телеграм-канал