Forget this 'patch/modification' bellow, it will just crash ldapcluster forwarding
On Sat, Mar 17, 2012 at 12:05 AM, Nicolas de Bari Embriz Garcia Rojas <nb...@unixmexico.org> wrote: > 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 -- > nbari