Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Доброго времени суток!

Требуется сделать модуль для сервера Apache(желательно 2.2.14, но не суть важно) , установленного под FreeBSD (7.2).

Что должно получиться:

1) в первую очередь пишем на С для FreeBSD

(но надо максимально выполнять стандарт POSIX,

чтобы для других UNIX-ов потом легче было применять)

2) конфигурация модуля задаётся в httpd.conf для заданной директории

обязательно должен быть "Включатель" модуля

и URL сервиса, который должен отвечать на запросы

3) протокол работы примерно такой

1. клиент пробует открыть файл, адрес файла, например, такой:

http://www.host.com/files/kino.avi?что_нибудь

2. apache это замечает и посылает запрос сервису:

URLсервиса+что_нибудь+адрес_файла

3. сервис отвечает false или true

4. если apache получил false, то ответ клиенту будет HTTP 403 и

выдача файла не начинается.

если apache получил true , то ответ клиенту будет HTTP 200 и

выдача файла начинается в обычном порядке

4) Проверка прав доступа должна выполняться только в момент

начала загрузки файла.

Общий пример

1) в конфигурации Apache написано

AgentPermissionChecker=On

AgentPermissionCheckerURL=http://www.znu.edu.ua/index.php?action=check

2) клиент пробует открыть файл:

http://www.host.com/files/kino.avi?key=724897nge6y287yrochlkjfhluaycle4uycwlfl

3) apache загружает текст страницы:

http://www.znu.edu.ua/index.php?action=check&file=http://www.host.com/files/kino.avi&key=724897nge6y287yrochlkjfhluaycle4uycwlfl

4) если получает в ответ слово "True", то выдаёт файл в обычном порядке,

а если получает что-то другое то посылает в ответ заголовок "HTTP 403" и файла не выдаёт.

Файл с кодом - скелет модуля со всевозможными потенциальными хуками.

Реально перехвачен последний этап - выдача контента (hello world).

Компилятор и заголовочные файлы - нужно искать под свой Apache.

P.S. заинтересованных прошу в ПМ

14 лет назад
lazaruslong
Артем 
34 годаУкраина
14 лет в сервисе
Был
12 лет назад
Выбранный исполнитель
esupport
46 летУкраина
17 лет в сервисе
Был
2 года назад
14 лет назад
$31
3 дня
Проект выполнил быстро и все понятно объяснил! Рекомендую!
Мы сработались