Проектирование, реализация и тестирование почтового сервера (MTA)

Отменен
Заказ
1039765
Раздел
Программирование
Антиплагиат
Не указан
Срок сдачи
10 Янв 2018 в 23:59
Цена
Договорная
Блокировка
15 дней
Размещен
1 Дек 2017 в 11:50
Просмотров
776
Описание работы
Содержание работы: Проектирование, реализация и тестирование почтового сервера (MTA). В каждом варианте указано, следует ли реализовывать в нём SMTP-сервер (для приёма почты) или SMTP-клиент (для удаленной доставки)
Сервер должен подерживать команды HELO и EHLO, MAIL, RCPT, DATA, RSET, QUIT, VERIFY протокола SMTP
Серверу следует реализовать только указанные команды. VERIFY должен при этом выдавать всегда ошибку
Отправитель должен поддерживать набор команд, достаточный для отправки почты как минимум одной крупной почтовой публичной службе с веб-интерфейсом (по выбору студента)
По варианту - создание лишь сервера, без клиента
Создание SMTP-сервера, обеспечивающего локальную доставку и добавление в очередь удаленной доставки
Вариант 13. Используется вызов select и рабочие процессы. Журналирование в отдельном потоке основного процесса
На один удалённый MX (получатель-хост) надо создавать не более одного сокета (допустимый вариант — на один удалённый IP не более одного сокета)
Исходные данные.
1. Спецификация протокола SMTP (RFC 5321) и смежные RFC
2. Средства разработки GNU, POSIX-совместимая система, компиляторы GCC и CLang
3. Дополнительные библиотеки
cunit
autogen
firedns
libconfig (1.3.2)
4. Python 2.6, Ruby 1.8 или except для огранизации системного тестирования
Язык програмирования и сборк
В качестве языка программирования используется язык Си стандарта С99 и компиляторы gcc 4.x и clang
Созданные полностью вручную исходные файлы нужно компилировать с -Wall -Werror
Для сборки используется GNU make. Не надо использовать cmake/autotools/qmake etc
Средства подготовки отчёт
Автомат протокола должен описываться с помощью библиотек cfsm или autofsm. Из его описания в ходе сборки должен генерироваться машинный код и рисунок в отчет (через преобразование в dot, опционное наведение лоска с помощью sed, и вставку в документ через dot2tex)
Регулярные выражения, описывающие команды и ответы протокола, попадают в РПЗ из кода
Сценарии и результаты тестирования вставляются в отчет непосредственно в ходе сборки по результатам проведения тестирования
= Требования к программной реализаци
1. Структуры данны
Для работы с регулярными выражениями следует использовать Perl-compatible regular expressions и соответствующую библиотеку (pcre)
Для организации списков и очередей следует использовать queue.h, для ассоциативных массивов — tree.h
Корректно и эффективно разделяйте доступ к данным, разделяемым несколькими потоками. Не синхронизируйте доступ к структурам, локальным (по логике работы) для потока
Не допускайте утечек памяти (в том числе логических) и «распухания» структур очередей на диске
Для хранения доставленной почты следует использовать формат maildir. Почта хранится как /каталог_почты/пользователь/Maildir
Для передачи писем от сервера клиенту (внутри MTA) используется единственный maildir
Формат очередей отсылаемых сообщений не регламентируется
2. Параметры / файл конфигураци
Минимальный список поддерживаемых параметров командной строки / файла конфигурации
o Для программы получения почты: порт, корневой каталог для почты (например, /var/mail, или /home/student/test_mail), корневой каталог для очередей сообщений, пользователь и группа для понижения привелегий, имя файла журнала (лог), сеть (сети), для который разрешен релей почты. сетевой адрес привязки, максимальное число рабочих потоков / процессов (см. задание)
o Для программы передачи почты: корневой каталог для очередей сообщений, имя файла журнала (лог), общее время на попытки отправить письмо, минимальное время между попытками повтора, максимальное число рабочих потоков / процессов (см. задание)
3. Проче
Для хранения оригинального получателя письма следует использовать заголовок «X-Original-To:»
Для тестирования отсылки по MX-записи выделено специальное доменное имя local.iu7.bmstu.ru и имена с l
Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир