From: Graham B. <gb...@po...> - 2002-05-28 19:07:33
|
----- Forwarded message from CZa...@wi... ----- Date: Tue, 28 May 2002 15:06:02 -0400 To: gb...@po... From: CZa...@wi... Subject: Net::LDAP Hello, I am trying to get the values for the change attibute, but I get is a lot of letters that are meaning less. The portion of the code where the search takes place is highlighted. and the result which is written to a ldif file is below. This search works from the commad line using the ldapseach command. Here is the output: .... Please help! dn: Changenumber=221, cn=changelog targetdn: cn=ExternalExportAgent,cn=Subscriber Profile,cn=ChangeLog Subscriber ,cn=Oracle Internet Directory changetype: Modify changes:: UmVwbGFjZTpvcmNsbGFzdGFwcGxpZWRjaGFuZ2VudW1iZXJeMTJeMjAwMjA1MjMxNzIw MjZ6Xmp3cy1wb3J0YWxkCm9yY2xsYXN0YXBwbGllZGNoYW5nZW51bWJlcjoyMjAKAA== ----- Forwarded by Carlton Zachary/IT/NewYork605/Wiley on 05/28/2002 02:56 PM ----- Sue Su To: Carlton Zachary/IT/NewYork605/Wiley@Wiley 05/28/2002 cc: 02:41 PM Subject: Net::LDAP ----------------------------------------------------- #!/opt/perl/bin/perl use Net::LDAP qw(:all); use Net::LDAP::Util qw(ldap_error_desc); use Net::LDAP::LDIF; $ldap = Net::LDAP->new('jws-server.com', port => '390') || die "ERROR: $@"; $ldif = Net::LDAP::LDIF->new( 'changelogentries.ldif', "w" ); $bind = $ldap->bind('cn=ExternalExportAgent,cn=Subscriber Profile,cn=ChangeLog Subscriber,cn=Oracle Internet Directory', pas sword=> 'welcome') || die "Can not bind"; #### Searching for last applied change number in the directory #### $mesg = $ldap->search( base => "cn=ExternalExportAgent,cn=Subscriber Profile,cn=ChangeLog Subscriber,cn=Oracle Internet Directory", scope => "base", filter => "(objectclass=*)" ); foreach $entry ($mesg->entries) { $LACN = $entry->get_value ('orcllastappliedchangenumber'); print "LACN is $LACN\n"; $CN = $LACN + 1; print "CN is $CN\n"; } #### Searching for change entries in the change log container which are greate than LACN #### ####(This searching is having problem)#### $mesg = $ldap->search( base => "cn=changeLog", scope => "one", filter => " (&(objectclass=changeLogEntry)(changeNumber>=$CN))", attrs => [qw(targetdn changetype changes)] ); foreach $entry ($mesg->entries) { $ldif->write_entry( $entry ); } #### Searching for last change number in the directory #### $mesg = $ldap->search( base => "", scope => "base", filter => "(objectclass=*)", attrs => ["lastchangenumber"] ); foreach $entry ($mesg->entries) { $LCN = $entry->get_value ('lastchangenumber'); print "LCN is $LCN\n"; } #### Modifying the last applied change number with last change number #### $r = $ldap->modify( "cn=ExternalExportAgent,cn=Subscriber Profile,cn=ChangeLog Subscriber,cn=Oracle Internet Directory", replace => {orclLastAppliedChangeNumber => $LCN} ); ---------------------------------------------------- dn: Changenumber=221, cn=changelog targetdn: cn=ExternalExportAgent,cn=Subscriber Profile,cn=ChangeLog Subscriber ,cn=Oracle Internet Directory changetype: Modify changes:: UmVwbGFjZTpvcmNsbGFzdGFwcGxpZWRjaGFuZ2VudW1iZXJeMTJeMjAwMjA1MjMxNzIw MjZ6Xmp3cy1wb3J0YWxkCm9yY2xsYXN0YXBwbGllZGNoYW5nZW51bWJlcjoyMjAKAA== ----- End forwarded message ----- |