I'm a beginner in ruby (what a great language!) and I'm trying to convert
my Perl scripts. I have one using the Net::LDAP module so I tool the
ruby-ldap module.
What's wrong with the following please? Did I missed something basic?
Everytime I try to get something from one of the LDAP::Entry object, it
barfs...
Thanks.
bind: Success
ldap2mutt.rb:49:in `get_values': #<LDAP::Entry:0x805cff4> is not valid entry (LDAP::InvalidEntryError)
from ldap2mutt.rb:49
from ldap2mutt.rb:48:in `each'
from ldap2mutt.rb:48
from ldap2mutt.rb:32:in `bind'
from ldap2mutt.rb:32
the script:
-=-=-
#! /usr/bin/env ruby
# -*-Ruby-*-
#
## Copyright 2001 Ollivier Robert
#
## Gets the list of mail recipients from the LDAP server and generates
## a mutt compatible alias file.
##
#
## 1.0 28/02/2001 first version
#
require 'ldap'
## Config.
ldap_base = "ou=EEC, o=EUROCONTROL"
ldap_filter = "(&(objectclass=inetOrgPerson)(objectclass=mailRecipient))"
ldap_attrs = [
"sn",
"givenname",
"telephonenumber",
"roomnumber",
"mail",
"uid",
"ou",
]
ldap_server = "ldap.eurocontrol.fr"
users = Hash.new
conn = LDAP::Conn.new (ldap_server, LDAP::LDAP_PORT)
conn.bind {
conn.perror ("bind")
begin
conn.search (ldap_base,
LDAP::LDAP_SCOPE_SUBTREE,
ldap_filter,
ldap_attrs) { |e|
users[e.vals("uid").to_s] = e;
}
rescue LDAP::ResultError => msg
$stderr.print (msg)
end
uids = Array.new
uids = users.keys
uids.sort.each { |key|
print "#{key} = #{users[key].vals('cn')}\n"
}
}
-=-=-
--
Ollivier ROBERT -=- Eurocontrol EEC/ITM -=- roberto / eurocontrol.fr
Usenet Canal Historique FreeBSD: The Power to Serve!