53. Добавление новых драйверов или типов поисков

Перевод выполнен Алексеем Паутовым в рамках некоммерческого проекта RussianLDP (http://www.rldp.ru/). Именно на этом сайте и надлежит искать новые версии, если таковые будут.

53. Добавление новых драйверов или типов поисков

Следующие действия должны быть предприняты для добавления нового роутера, транспорта, аутентификатора или типа поиска к exim:

  • 1. Выберите название для драйвера или типа поиска, которое не конфиликтует с любыми существующими именами. В дальнейшем я буду использовать newdriver.
  • 2. Добавьте в src/EDITME строку:
    <type>_NEWDRIVER=yes
    
    где <type> ROUTER, TRANSPORT, AUTH или LOOKUP. Если по умолчанию код не должен быть включен в исполняемый модуль, закомментируте эту строку. Также Вы должны добавить любые уместные комментарии о драйвере или типе поиска.
  • 3. Добавьте в src/config.h.defaults строку:
    #define <type>_NEWDRIVER
    
  • 4. Отредактируйте src/drtables.c, добавьте условный код к частному заголовку и создайте запись в таблице как сделано для всех других драйверов и типов поиска.
  • 5. Отредактируйте Makefile в соответствующем подкаталоге (src/routers, src/transports, src/auths или src/lookups): добавьте строку для новго драйвера или типа поиска и добавьте его к определению OBJ.
  • 6. Создайте newdriver.h и newdriver.c в соответствующем подкаталоге src.
  • 7. Отредактируйте scripts/MakeLinks и добавьте команды для связи файлов .h и .c, как для других драйверов и поисков.

Затем, всё что Вам нужно сделать, написать код! Хороший способ начать состоит в том, чтобы сделать проформу путём копирования существующего модуля того же типа, глобально изменяя все встречи с именем и вырезая большинство кода.

Отметьте, что любые создаваемые Вами опции должны быть перечислены в алфавитном порядке, поскольку поиск по таблицам производится с использованием бинарной процедуры chop. Ожидается, что в каждом из каталогов src присутствует файл README.