ConnectClientInfo(), ConnectClientInfo_r()

Сохранить информацию о клиентском соединении

Прототип:

#include <sys/neutrino.h>
int ConnectClientInfo( int scoid,
struct _client_info *info
int ngroups );
int ConnectClientInfo_r( int scoid,
struct _client_info *info
int ngroups );

Аргументы:

scoid
Идентификатор соединения сервера, определяющий клиентский процесс, о котором нужно получить информацию. Клиентом обычно является процесс, который выполняет соединение с сервером в попытке получить доступ к ресурсам. Его можно получить из аргумента struct _msg_info функции MsgReceivev() или MsgInfo().
info
Указатель на struct _client_info, которую функция сможет заполнить информацией о клиенте.
ngroups
Размер grouplist для клиента в части учетных данных структуры struct _client_info. Если установить его в значение, меньшее, чем NGROUPS_MAX, можно получить информацию лишь о подмножестве групп.

Библиотека:

libc

Описание:

Данные вызовы получают информацию о клиентском соединении, определяемом scoid, и размещают ее в буфере, на который указывает info.

Функции ConnectClientInfo() и ConnectClientInfo_r() идентичны за исключением способа оповещения об ошибках.

Сервер использует эти функции для определения, имеет ли клиент необходимые права на доступ к ресурсам. Например, в менеджере ресурсов они будут вызываться по запросу соединения open().

Аргумент ngroups в ConnectClientInfo() определяет размер массива grouplist. Если размер массива групп равен нулю, поле ngroups структуры struct _cred_info устанавливается в количество доступных групп.

Возвращаемое значение:

ConnectClientInfo()
Если возникла ошибка, функция возвращает -1, код ошибки записывается в errno. Любое другое возвращенное значение считается успешным завершением.
ConnectClientInfo_r()
EOK возвращается при успешном завершении. Функция НЕ устанавливает errno. При возникновении ошибки функция возвращает один из представленных ниже кодов.

Коды ошибок:

EFAULT
Возникла ошибка, когда ядро пыталось получить доступ к предоставленным буферам.
EINVAL
Соединение scoid отсутствует для процесса.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

struct _client_info, struct _cred_info ConnectServerInfo(), struct _msg_info, MsgInfo(), MsgReceivev(), ND_NODE_CMP(), netmgr_ndtostr(), netmgr_remote_nd(), netmgr_strtond()




Предыдущий раздел: Описание API системной библиотеки