Hi, thanks for the reply, I applied the patch and it is working now. Changing a little the topic, I modified qmail-qmqpc.c for supporting multiple qmpqc servers ( one server per line in DIR/qmqpservers/0), but would like to know your feed back about it.
the patch: http://qmail-ldap-smtpauthuser.googlecode.com/svn/trunk/qmail-qmqpc-servers_on_cmd_line.c Original: --- if ( argv[1] ) { char temp[IPFMT]; if (!stralloc_copys(&servers,argv[1])) nomem(); dns_init(0); switch (dns_ip(&ia,&servers)) { case DNS_HARD: die_perm(); case DNS_SOFT: die_temp(); case DNS_MEM: nomem(); } temp[ip_fmt(temp,&ia.ix[0].ip)]=0; if (!stralloc_copys(&servers, temp)) nomem(); if (!stralloc_0(&servers)) nomem(); } --- Replaced with this: --- if ( argv[1] ) { getmess(); i = 1; while (argv[i]) doit(argv[i++]); } --- thanks in advance. On Fri, Mar 16, 2012 at 10:39 PM, Claudio Jeker <je...@n-r-g.com> wrote: > On Fri, Mar 16, 2012 at 08:26:55PM +0000, Nicolas de Bari Embriz Garcia Rojas > wrote: >> I think I have found the problem. but need some help fixing the code >> >> For some reason the qldap-filter.c is not adding the >> /var/qmail/control/ldapobjectclass >> > > ... thanks for the detailed report. I was able to verify it and the > attached diff should fix this problem. > > -- > :wq Claudio > > Index: qldap-filter.c > =================================================================== > RCS file: /home/cvs-djbware/CVS/qmail-ldap/qldap-filter.c,v > retrieving revision 1.10 > diff -u -p -r1.10 qldap-filter.c > --- qldap-filter.c 10 Nov 2009 22:46:06 -0000 1.10 > +++ qldap-filter.c 16 Mar 2012 23:37:23 -0000 > @@ -107,7 +107,7 @@ filter_uid(char *uid) > return 0; > > if (!filter_start(&filter) || > - !stralloc_copys(&filter,"(") || > + !stralloc_cats(&filter,"(") || > !stralloc_cats(&filter, LDAP_UID) || > !stralloc_cats(&filter, "=") || > !filter_escape(&filter, uid, str_len(uid)) || > @@ -179,7 +179,6 @@ filter_mail(char *mail, int *done) > } > extcnt--; > #else > -#error XXX XXX > /* basic qmail-ldap behavior test for usern...@domain.com and > catch...@domain.com */ > ext = 0; > @@ -193,7 +192,7 @@ filter_mail(char *mail, int *done) > /* build the search string for the email address */ > /* mail address */ > if (!filter_start(&filter) || > - !stralloc_copys(&filter, "(|(") || > + !stralloc_cats(&filter, "(|(") || > !stralloc_cats(&filter, LDAP_MAIL) || > !stralloc_cats(&filter, "=")) > return 0; > Index: qmail-ldaplookup.c > =================================================================== > RCS file: /home/cvs-djbware/CVS/qmail-ldap/qmail-ldaplookup.c,v > retrieving revision 1.39 > diff -u -p -r1.39 qmail-ldaplookup.c > --- qmail-ldaplookup.c 10 Nov 2009 22:43:06 -0000 1.39 > +++ qmail-ldaplookup.c 16 Mar 2012 23:37:23 -0000 > @@ -223,12 +223,12 @@ int main(int argc, char **argv) > switch (mode) { > case mail: > f = filter_mail(value, &done); > - if (value == 0) > + if (f == 0) > strerr_die2sys(1, FATAL, "building filter: "); > break; > case uid: > f = filter_uid(value); > - if (value == 0) > + if (f == 0) > strerr_die2sys(1, FATAL, "building filter: "); > done = 1; > break; -- > nbari