15.8. Получение информации об отправителе

15.8. Получение информации об отправителе

На рис. 14.4 мы показали другой тип информации, передаваемой через доменный сокет Unix в виде вспомогательных данных: информацию об отправителе, которая передается с помощью структуры cmsgcred, определяемой путем включения заголовочного файла <sys/socket.h>. Упаковка и формат данных зависят от операционной системы. Такая возможность появилась только в BSD/OS 2.1. Мы описываем FreeBSD, а прочие варианты Unix во многом подобны ей (проблема обычно состоит в выборе структуры, которую следует использовать для передачи данных). Рассказ об этой возможности мы считаем необходимым, поскольку это важное, хотя и простое дополнение доменных протоколов Unix. Когда клиент и сервер связываются с помощью этих протоколов, серверу часто бывает необходим способ точно узнать, кто является клиентом, чтобы убедиться, что клиент имеет право запрашивать определенный сервис.

struct fcred {

 uid_t fc_ruid;            /* действующий идентификатор пользователя */

 gid_t fc_rgid;            /* действующий групповой идентификатор */

 char  fc_login[MAXLOGNAME]; /* имя setlogin() */

 uid_t fc_uid;             /* идентификатор пользователя */

 short fc_ngroups;         /* количество групп */

 gid_t fc_groups[NGROUPS]; /* дополнительные групповые идентификаторы */

};

#define fc_gid fc_groups[0] /* групповой идентификатор */

Обычно MAXLONGNAME и NGROUPS имеют значение 16. Значение fc_ngroups равно как минимум 1, а первым элементом массива является идентификатор группы.

Эта информация всегда доступна через доменный сокет Unix, хотя отправителю часто приходится принимать дополнительные меры для обеспечения ее отправки вместе с данными, и получателю также приходится выполнять некоторые действия (например, устанавливать параметры сокета). В системе FreeBSD получатель может обойтись вызовом recvmsg с достаточно большим буфером для вспомогательных данных, чтобы туда поместились идентифицирующие данные (листинг 15.12). Однако отправитель обязан включить структуру cmsgcred при отправке данных посредством sendmsg. Хотя включение структуры осуществляется отправителем, заполняется она ядром. Благодаря этому передача идентифицирующих данных через доменный сокет Unix является надежным способом проверки клиента.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

1.2. Понятие информации. Общая характеристика процессов сбора, передачи, обработки и накопления информации

Из книги Основы информатики: Учебник для вузов автора Малинина Лариса Александровна

1.2. Понятие информации. Общая характеристика процессов сбора, передачи, обработки и накопления информации Вся жизнь человека так или иначе связана с накоплением и обработкой информации, которую он получает из окружающего мира, используя пять органов чувств – зрение,


Получение информации о полях и записях таблицы

Из книги Windows Script Host для Windows 2000/XP автора Попов Андрей Владимирович

Получение информации о полях и записях таблицы Иногда бывает необходимо определить число и названия полей или подсчитать общее число записей в таблице. Приведенный в листинге 9.4 сценарий TableInfo.js выводит на экран диалоговое окно, где приведены названия всех полей и общее


1.2. Определение количества информации. Единицы измерения количества информации

Из книги Информатика: аппаратные средства персонального компьютера автора Яшин Владимир Николаевич

1.2. Определение количества информации. Единицы измерения количества информации Как уже отмечалось, понятие информации можно рассматривать при различных ограничениях, накладываемых на ее свойства, т. е. при различных уровнях рассмотрения. В основном выделяют три уровня


4.1. Получение структурированной информации из базы данных

Из книги Программирование на языке Пролог для искусственного интеллекта автора Братко Иван

4.1. Получение структурированной информации из базы данных Это упражнение развивает навыки представления структурных объектов данных и управления ими. Оно показывает также, что Пролог является естественным языком запросов к базе данных.База данных может быть


Получение приоритета

Из книги VBA для чайников автора Каммингс Стив

Получение приоритета В более сложных выражениях, включающих несколько знаков операций, VBA нужно знать, какие операции выполнять первыми, вторыми, а какие третьими. В выражении intA + intB * intC два знака операций: + (операция сложения) и * (операция умножения). На русском это


Получение информации от пользователя

Из книги C++. Сборник рецептов автора Диггинс Кристофер

Получение информации от пользователя Если вам нужна от пользователя более конкретная информация, не укладывающаяся в рамки выбора из трех кнопок, используйте функцию Input Box. Вот ее формальная синтаксическая конструкция, из которой удалены некоторые необязательные


Глава 16 Получение итоговой информации

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Глава 16 Получение итоговой информации В данной главе рассматриваются способы формирования различных отчетных документов на основании операций и документов, внесенных в журнал операций.• Управление бухгалтерскими итогами• Отчеты• Налоговый учет• Пример работы в


Глава 27 Получение итоговой информации

Из книги Linux программирование в примерах автора Роббинс Арнольд

Глава 27 Получение итоговой информации В этой главе рассматриваются вопросы, связанные с формированием отчетов. Многочисленные отчеты являются хорошими помощниками, помогая бухгалтеру взглянуть на счет с разных сторон.Несомненным достоинством программы является


Получение информации о базе данных

Из книги Цифровой журнал «Компьютерра» № 179 автора Журнал «Компьютерра»

Получение информации о базе данных После того как вы создали базу данных и подтвердили создание (commit), вы можете в isql отобразить ее детали, используя команду SHOW DATABASE:SQL> SHOW DATABASE;Database: /opt/databases/mydatabase.fdbOwner: ADMINUSRPAGE_SIZE 8192Number of DB pages allocated = 176Sweep interval = 20000Forced Writes are ONTransaction - oldest =


5.4. Получение информации о файлах

Из книги Раскрутка: секреты эффективного продвижения сайтов автора Евдокимов Николай Семенович

5.4. Получение информации о файлах Чтение каталога для получения имен файлов лишь половина дела. Получив имя файла, нужно знать, как получить остальную информацию, связанную с файлом, такую, как тип файла, права доступа к нему, владельца и


Анализ поправок, принятых Госдумой, к закону «Об информации, информационных технологиях и о защите информации» Сергей Голубицкий

Из книги автора

Анализ поправок, принятых Госдумой, к закону «Об информации, информационных технологиях и о защите информации» Сергей Голубицкий Опубликовано 26 июня 2013 21 июня Государственная Дума РФ приняла сразу во втором и третьем чтении Федеральный Закон «О


Получение траста

Из книги автора

Получение траста Наличие траста не менее важно для хорошего интернет-магазина, чем для любого другого качественного ресурса. Чтобы получить несколько «жирных» трастовых ссылок, владельцу ресурса предстоит обратиться не к чистому SEO, а скорее к комплексному интернет —