KasperskyOS Community Edition 1.1
Содержание
Содержание
Динамическое создание IPC-каналов
При динамическом создании IPC-канала используются функции:
- интерфейса сервера имен (Name Server);
- интерфейса менеджера соединений (Connection Manager).
Динамическое создание IPC-канала осуществляется по следующему сценарию:
- Запускаются процессы: клиент, сервер и сервер имен.
- Сервер подключается к серверу имен с помощью вызова
NsCreate()
и публикует имя сервера, имя интерфейса и имя службы с помощью вызоваNsPublishService()
. - Клиент подключается к серверу имен с помощью вызова
NsCreate()
и выполняет поиск имени сервера и имени службы по имени интерфейса с помощью вызоваNsEnumServices()
. - Клиент запрашивает доступ к службе с помощью вызова
KnCmConnect()
, передавая в качестве аргументов найденные имя сервера и имя службы. - Сервер вызывает функцию
KnCmListen()
для проверки наличия запросов на доступ к службе. - Сервер принимает запрос клиента на доступ к службе с помощью вызова
KnCmAccept()
, передавая в качестве аргументов имя клиента и имя службы, которые получены при вызовеKnCmListen()
.
Пункты 2 и 3 могут быть опущены, если клиент заранее знает имя сервера и имя службы.
Сервер может снимать с публикации на сервере имен ранее опубликованные службы с помощью вызова NsUnPublishService()
.
Сервер может отклонять запросы доступа к службам с помощью вызова KnCmDrop()
.
Для использования сервера имен политика безопасности решения должна разрешать взаимодействие процесса класса kl.core.NameServer
и процессами, между которыми необходимо динамически создавать IPC-каналы.