On Tue, 26 Sep 2006 13:06:54 -0700 Glenn Lamb <[EMAIL PROTECTED]> wrote:
> -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Adding an ampersand to the start of your filter ($filter="& > (objectClass=...") should work just fine. > However, if you really want to nest: > > my $filter = "(&(objectClass=dhcpHost)(objectClass=mwcDHCPhost)"; > $filter .= "(dhcpStatements=fixed-address " . $config{ip}. ")" if > defined($config{ip}); > $filter .= "(mwcDHCPhostAuthedAs=" . $config{user} . ")" if > defined($config{user}); > $filter .= "(dhcpHWAddress=ethernet " . $config{mac} . ")" if > defined($config{mac}); > $filter .= ")"; > > On Sep 26, 2006, at 12:52 PM, Zane C. Bowers wrote: > > > my $filter="(objectClass=dhcpHost)(objectClass=mwcDHCPhost)"; > > if (defined($config{ip})){$filter.="(dhcpStatements=fixed-address > > ". $config{ip}.")";}; > > if > > (defined($config{user})){$filter.="(mwcDHCPhostAuthedAs=".$config > > {user}.")";}; if > > (defined($config{mac})){$filter.="(dhcpHWAddress=ethernet ". > > $config{mac}.")";}; > > > > That is how I originally started building a filter. The problem > > was it did not > > work. The problem is it will generate a filter that will work with > > ldapsearch, > > but will not work with Net::LDAP. > > > > After reading the RFC and doing a bit of testing, I found > > "(&(objectClass=dhcpHost)(objectClass=mwcDHCPhost))" will work, > > but it needs > > to be done in groups of layered. > > > > Before I set out to most likely re-invent the well, any one know > > of any > > existing solutions for this? After a bit of thinking I came up with this a few minutes ago... my $filter="(&(objectClass=mwcDHCPhost)(objectClass=dhcpHost))"; if (defined($config{ip})){$filter="(&(dhcpStatements=fixed-address ".$config{ip}.")".$filter.")";}; if (defined($config{user})){$filter="(&(mwcDHCPhostAuthedAs=".$config{user}.")".$filter.")";}; if (defined($config{mac})){$filter="(&(dhcpHWAddress=ethernet ".$config{mac}.")".$filter.")";}; Thanks though. :)
signature.asc
Description: PGP signature