Описание
wu-imap - pop/imap сервер. Теперь авторизация работает так - пробуем проверить пользователя
через passwd если не получилось то смотрим через sql (если sql не работает то получим ответ сервера
не верный пароль)
Проверено на FreeBSD 4.7 , mysql 3.23.52.
Инсталяция
1. Копируем файл imap2002b_patched.tar.gz в католог /var/src (кому как нравится)
2. tar -zxf imap2002b_patched.tar.gz
3. Редактируем ./Makefile
EXTRALDFLAGS = -lmysqlclient -L/usr/local/lib/mysql (пути где лежит библиотека mysqlclient)
4. Редактируем ./Makefile
5. В файле /src/osdep/unix/sql.c исправить #include "/usr/local/include/mysql.h"
login sql.host passwd db.name на свои значения
.....
if (!mysql_real_connect(&mysql,"sql.host","login","passwd","db.name",0,NULL,0)) {
.....
// Исправить select под свои нужды (поле passwd содержит криптованый пароль ).
sprintf(tmps,"select login,passwd,home from users where login='%s'",user);
.....
6. make bsf ( для FreeBSD)
7. полученые бинарники готовы к применению.
Что поправлено
/Makefile
EXTRALDFLAGS = -lmysqlclient -L/usr/local/lib/mysql
/src/osdep/unix/Makefile:
osdep.o: osdep.c env_unix.c fs_unix.c ftl_unix.c nl_unix.c tcp_unix.c sql.c \
дописан sql.c
/src/osdep/unix/env_unix.c:
Исправлена фунция pwuser() ( Если пользователь не найден пробуем найти его в sql базе данных )
/src/osdep/unix/log_std.c: (log_xxx.c где xxx- имя системы (смотри Makefile))
Исправлении фунции loginpw()
/src/osdep/unix/os_bsf.c: (os_xxx.c где xxx- имя системы (смотри Makefile))
Добавлен #include "sql.c" перед #include "env_unix.c"
|