[prev in list] [next in list] [prev in thread] [next in thread]
List: qmail-ldap
Subject: Re: qmail and ldap
From: Claudio Jeker <jeker () n-r-g ! com>
Date: 1999-09-06 12:03:52
[Download RAW message or body]
At 11:45 Uhr +0200 6.9.1999, Thomas Breder wrote:
>I run qmail with Andre´s ldap-patches on 1st a linux box with openldap and
>2nd a Solaris 2.6 with Netscape Directory Server 3.1
>Everything is running very well, when delivery is to a mbox file. If I want
>to deliver emails to a Maildir directory, I´ve got the following error
>message in my logs::
>
>Sep 6 10:29:06 WLB-Linux2 qmail: 936606546.293343 delivery 2: deferral:
>address:_klein@wlb-linux2.westlb.sko.de/filter:_(|(mail=klein@wlb-linux2
>.westlb.sko.de)(mailalternateaddress=klein@wlb-linux2.westlb.sko.de))/NO
>_QMAILFORWARDS/NO_QMAILDELIVERYPROGRAM/NO_QMAILMODE/NO_QMAILDOTMODE/qlda
>p_get_return_value:_0/LDAP_lookup_succeded,_user_found/nughde:_popuser_1
>0000_103_/home/popuser/klein__/executing_qmail-local_with_user:_popuser/
>uid:_10000/gid:_103/homedir:_/home/popuser/klein/local:_klein/dash:_/ext
>:_/Boom_with_./_aliasempty_(LDAP-ERR_#2.4.4)/
I'm sorry, this is a know problem. Andre has hosed the maildirmake code in
the last release to get the maildirmake code with ./ running.
The easiest hack would be to compile the code with maildirmake off.
Or change qmail-local.c around line 110 to something like this ... (never
tested):
#ifdef AUTOMAILDIRMAKE
/* this one handles the case where the aliasempty is not "./" */
if (errno == error_noent) {
umask(077);
if (mkdir(dir,0700) == -1) { if (error_temp(errno)) _exit(5); _exit(6); }
if (chdir(dir) == -1) { if (error_temp(errno)) _exit(5); _exit(6); }
if (mkdir("tmp",0700) == -1) { if (error_temp(errno)) _exit(5);
_exit(6); }
if (mkdir("new",0700) == -1) { if (error_temp(errno)) _exit(5);
_exit(6); }
if (mkdir("cur",0700) == -1) { if (error_temp(errno)) _exit(5);
_exit(6); }
} else
#endif
if (error_temp(errno)) _exit(1); else _exit(2);
}
/* this one handles the case where the aliasempty is "./" */
#ifdef AUTOMAILDIRMAKE
if ( !str_diff(dir, "./") ) {
umask(077);
if (stat("tmp", &st) == -1) {
if (errno == error_noent) {
if (mkdir("tmp",0700) == -1) {
if (error_temp(errno)) _exit(5);
else _exit(6);
}
} else if (error_temp(errno)) _exit(5); else _exit(6);
} else if (! S_ISDIR(st.st_mode) ) _exit(7);
if (stat("cur", &st) == -1) {
if (errno == error_noent) {
if (mkdir("cur",0700) == -1) {
if (error_temp(errno)) _exit(5);
else _exit(6);
}
} else if (error_temp(errno)) _exit(5); else _exit(6);
} else if (! S_ISDIR(st.st_mode) ) _exit(7);
if (stat("new", &st) == -1) {
if (errno == error_noent) {
if (mkdir("new",0700) == -1) {
if (error_temp(errno)) _exit(5);
else _exit(6);
}
} else if (error_temp(errno)) _exit(5); else _exit(6);
} else if (! S_ISDIR(st.st_mode) ) _exit(7);
}
#endif
In the next release this should be fixed. Sorry ...
Claudio
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic