From: Klunder, J. (Hans) <J.A...@rf...> - 2000-12-21 14:17:23
|
Graham and Chris, Thanks very much for the DN splitting code. Yes it would be very nice if it was incorporated into Net::LDAP. Mozilla's $entry->hasValue($attribute,$value,$options) checks if the given attribute has the given value. The options specify if case sensitivity should be applied. Regards, Hans -----Oorspronkelijk bericht----- Van: Chris Ridd [mailto:chr...@me...] Verzonden: donderdag 21 december 2000 15:08 Aan: Klunder, JAA (Hans); LDAP Mailing List Onderwerp: Re: Splitting a DN into RDN's "Klunder, JAA (Hans)" <J.A...@rf...> wrote: > Hello, > > Is there a simple way to split a DN into RDN's. Just splitting on comma's > is risky since the value of the RDN can contain a comma itself. > > I'm looking for something similar to explode_dn in mozilla ldap. > > Mozilla also has a $entry->hasValue method which can be quite convenient, > is there an equivalent in Net::LDAP ? > > Thanks in advance, > > Hans Klunder There isn't. (Net::LDAP doesn't provide much in the way of help manipulating values from the directory. This is a case where syntax handlers would be nice. If I could ever get around to finishing them!) Anyway, something like this regex *nearly* works: while ($dn =~ m{ \s* (\d[0-9\.]+|[a-zA-Z][a-zA-Z0-9-]+) # type = (\#[a-fA-F0-9]+| # hex value "[^"\\]*(?:\\.[^"\\]*)*"| # v2 quoted value [^\\,;+]*(?:\\[a-zA-Z0-9][a-zA-Z0-9][^\\,;+]*)*) # normal value ([,;+]?) # separator }gx) { print "type $1\n"; print "value $2\n"; print "separator $3\n"; } For some reason, this always stops matching before the penultimate RDN, eg "cn=Chris Ridd,ou=Engineering,o=MessagingDirect,c=CA" prints out the cn and ou. Can any regex wizards spot the problem? Would the equivalent of the $entry->hasValue thing be Net::LDAP's get method returning undef? I can't remember if this is what Net::LDAP does, and I don't know what the Mozzilla library does. Cheers, Chris ================================================ De informatie opgenomen in dit bericht kan vertrouwelijk zijn en is uitsluitend bestemd voor de geadresseerde. Indien u dit bericht onterecht ontvangt, wordt u verzocht de inhoud niet te gebruiken en de afzender direct te informeren door het bericht te retourneren. ================================================ The information contained in this message may be confidential and is intended to be exclusively for the addressee. Should you receive this message unintentionally, please do not use the contents herein and notify the sender immediately by return e-mail. |