Hello All!
I have configured ejabberd to use it with ldap.
After perfoming search in logs appear this:
=ERROR REPORT==== 2006-12-26 10:03:59 ===
** Generic server 'ejabberd_mod_vcard_ldap_net.qwerty.ru' terminating
** Last message in was {route,{jid,"admin",
"net.qwerty.ru",
"sim_0.9.4.1",
"admin",
"net.qwerty.ru",
"sim_0.9.4.1"},
{jid,[],
"vjud.net.qwerty.ru",
[],
[],
"vjud.net.qwerty.ru",
[]},
{xmlelement,
"iq",
[{"type","set"},
{"id","aabaa"},
{"to","vjud.net.qwerty.ru"}],
[{xmlcdata,<<"\n">>},
{xmlelement,
"query",
[{"xmlns","jabber:iq:search"}],
[{xmlcdata,<<"\n">>},
{xmlelement,
"x",
[{"xmlns","jabber:x:data"},
{"type","submit"}],
[{xmlcdata,<<"\n">>},
{xmlelement,
"field",
[{"var","x:data"}],
[]},
{xmlcdata,<<"\n">>},
{xmlelement,
"field",
[{"var","%u"}],
[{xmlcdata,<<"\n">>},
{xmlelement,
"value",
[],
[{xmlcdata,<<"*">>}]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>}]},
{xmlcdata,<<"\n">>}]}}
** When Server state == {state,"net.qwerty.ru",
"vjud.net.qwerty.ru",
"ejabberd_mod_vcard_ldap_net.qwerty.ru",
true,
["localhost"],
389,
"cn=jabber,ou=DSA,dc=qwerty,dc=ru",
"ou=Users,dc=qwerty,dc=ru",
"jabberpasswd",
"uid",
"%u",
[{"NICKNAME","%u",[]},
{"GIVEN","%s",["givenName"]},
{"FAMILY","%s",["sn"]},
{"FN","%s %s",["sn","givenName"]},
{"EMAIL","%s",["mail"]}],
["givenName","mail","sn","uid"],
"(&(uid=%u)(objectClass=inetOrgPerson))",
{'and',[{present,"uid"}]},
[{"User","%u"},
{"Name","givenName"},
{"Family Name","sn"},
{"Email","mail"}],
[{"Full Name","FN"},{"Nickname","NICKNAME"}],
["givenName","sn","uid"]}
** Reason for termination ==
** {function_clause,[{mod_vcard_ldap,'-make_filter/3-fun-0-',
[{"x:data",[]},"%u","uid"]},
{lists,flatmap,2},
{mod_vcard_ldap,make_filter,3},
{mod_vcard_ldap,search,2},
{mod_vcard_ldap,search_result,4},
{mod_vcard_ldap,do_route,4},
{mod_vcard_ldap,handle_info,2},
{gen_server,handle_msg,6}]}
mod_vcard_ldap configured like this:
{mod_vcard_ldap,
[
%% We use the same server and port, but want to bind anonymously because
%% our LDAP server accepts anonymous requests to
%% "ou=Users,dc=qwerty,dc=ru" subtree.
{ldap_rootdn, "cn=jabber,ou=DSA,dc=qwerty,dc=ru"},
{ldap_password, "jabberpasswd"},
%% define the addressbook's base
{ldap_base, "ou=Users,dc=qwerty,dc=ru"},
%% user's part of JID is located in the "mail" attribute
{ldap_uidattr, "uid"},
%% common format for our emails
{ldap_uidattr_format, "%u"},
%% We have to define empty filter here, because entries in addressbook does not
%% belong to shadowAccount object class
% {ldap_filter, "(objectClass=inetOrgPerson)"},
%% Now we want to define vCard pattern
{ldap_vcard_map,
[{"NICKNAME", "%u", []}, % just use user's part of JID as his nickname
{"GIVEN", "%s", ["givenName"]},
{"FAMILY", "%s", ["sn"]},
{"FN", "%s %s", ["sn", "givenName"]}, % example: "Smith, John"
{"EMAIL", "%s", ["mail"]}
% {"BDAY", "%s", ["birthDay"]}
]},
%% Search form
{ldap_search_fields,
[{"User", "%u"},
{"Name", "givenName"},
{"Family Name", "sn"},
{"Email", "mail"}
% {"Birthday", "birthDay"}
]},
%% vCard fields to be reported
%% Note that JID is always returned with search results
{ldap_search_reported,
[{"Full Name", "FN"},
{"Nickname", "NICKNAME"}
% {"Birthday", "BDAY"}
]}
Why error
** Reason for termination ==
** {function_clause,[{mod_vcard_ldap,'-make_filter/3-fun-0-',
[{"x:data",[]},"%u","uid"]},
may appear ?