I might have found the problem... here is what I believe is happening: - pbsadd.c calls control_readfile (in control.c) to look up its control
if (control_readfile(&addresses,"control/pbsservers",0) != 1) die_control(); for this call to be successful, control_readfile must return a 1. - control_readfile calls control_ldap_search like this: if( (rc = control_ldap_search(fn, sa, flagme, 1)) > 0) { //if( flagme ) return 1; return 1; to satisfy pbsadd.c's call, control_ldap_search must return >0 for control_readfile to return a 1. However...... control_ldap_search can never return a value >0 due to the following code: int control_ldap_search <code code code...> /* Search for the desired information in the database. Search below ControlDN. */ rc = qldap_lookup(q, filter.s, attr); #if 0 <-- never executed.... so we proceed directly to "CLEANUP" with the zero return.... /* Count the results, we must have exactly one dn! */ <code code code....> #else CLEANUP; return 0; <-- zero always returned #endif I am using qmail-ldap-1.03-20040301a-controls20040325.patch on a clean system..... - Rich