Re: Perdition1.18 problem with LDAP query
Simon Horman <[email protected]>
| Newsgroups | gmane.mail.perdition.user |
|---|---|
| Message-ID | <[email protected]> |
On Wed, May 26, 2010 at 03:48:21PM +0800, cktan wrote: > Hi, > > I've tried that and it was started without any error but we can't > login with with the maillog error as below: > > > May 26 15:40:17 mail2 perdition[462]: version=1.18, add_domain="", > authenticate_in=off, authenticate_timeout=1800, bind_address="", > capability="UIDL USER", client_server_specification=off, > config_file="/etc/perdition/perdition.conf", connection_limit=0, > connection_logging=off, connect_relog=300, debug=off, > domain_delimiter="@", explicit_domain="", group="nobody", > inetd_mode=off, listen_port="110", log_facility="mail", > log_passwd="never", login_disabled=off, lower_case="", > map_library="/usr/lib/libperditiondb_gdbm.so.0", map_library_opt="ldap://ldap.abc.com:389/dc=.?uid,mailHost?sub?(mail=%45s)?!BINDNAME=cn=xxx%2cdc=.,X-BINDPW=yyy", > no_bind_banner=off, no_daemon=off, no_lookup=off, nodename="mail2", > ok_line="You are so in", outgoing_port="110", outgoing_server="", > pid_file="/var/run/perdition.pop3/perdition.pop3.pid", > protocol="POP3", server_resp_line=off, strip_domain="", > timeout=1800, username="nobody", username_from_database=off, > query_key="", quiet=off, ssl_mode="", ssl_ca_file="", ssl_ca_pat > > > Auth user="[email protected]" passwd="XXXXXX" server="(null)" port="110" > status="failed: Could not determine server" Sorry for not noticing this the first time around but I think that you are seeing the problem that is resolved by the following patch: http://hg.vergenet.net/perdition/perdition/rev/28264fe9e31b # HG changeset patch # User Simon Horman <[email protected]> # Date 1263455327 -39600 # Node ID 28264fe9e31b7f34676260de9f26134399bd0372 # Parent c9763a7ea6adb242c7e837bc232f19ec6ebda6ca LDAP: support schema-misc mailHost This previously worked by chance when the get_server() internal API was used, but broke when the ldap module was switched over to use get_server(). Tested-by: Dominique Marant <[email protected]> Signed-off-by: Simon Horman <[email protected]> --- a/perdition/db/ldap/perditiondb_ldap.c Thu Dec 24 17:40:40 2009 +1100 +++ b/perdition/db/ldap/perditiondb_ldap.c Thu Jan 14 18:48:47 2010 +1100 @@ -516,12 +516,27 @@ ber = NULL; /* Build the return string */ - if (returns[0]) - *user_str = returns[0]; - if (returns[1]) - *server_str = returns[1]; - if (returns[2]) - *port_str = returns[2]; + if (returns[0] && !returns[1] && !returns[2]) { + user_server_port_t *usp = NULL; + if (user_server_port_str_assign(&usp, returns[0]) < 0) { + VANESSA_LOGGER_DEBUG("user_server_port_str_assign"); + goto leave; + } + free(returns[0]); + *user_str = user_server_port_get_user(usp); + *server_str = user_server_port_get_server(usp); + *port_str = user_server_port_get_port(usp); + user_server_port_unassign(usp); + user_server_port_destroy(usp); + } + else { + if (returns[0]) + *user_str = returns[0]; + if (returns[1]) + *server_str = returns[1]; + if (returns[2]) + *port_str = returns[2]; + } status = 0; ______________________________________________ Perdition-users mailing list [email protected] http://lists.vergenet.net/listinfo/perdition-users