--On Thursday, July 08, 2004 4:50 PM -0700 Larry Lile <[EMAIL PROTECTED]> wrote:
compiled against.
Right. But my question goes more to the fact that Net::LDAP.pm calls
$sasl_conn->property( sockname => $ldap->{net_ldap_socket}->sockname, peername => $ldap->{net_ldap_socket}->peername, );
That seems correct for SASLv1, but not for SASLv2. Net::LDAP is unaware of the SASL version.
So should Net::LDAP be aware of the SASL version and call something like this when the SASL version is 2?
$sasl_conn->property( iplocalport => $ldap->{net_ldap_host}, ipremoteport => $ldap->{net_ldap_peer}), );
No, Net::LDAP doesn't need to be aware about the SASL bits at all.
You are confusing the sockname from SASL v1 with the internal sockname defined inside of Cyrus.so, which is created from the Cyrus.xs file from Authen::SASL::Cyrus (Patrick's version), which defines sockname based on the version of SASL, so that Net::LDAP doesn't have to have this knowledge.
See code below:
static
int PropertyNumber(char *name)
{
if (!strcasecmp(name, "user")) return SASL_USERNAME;
else if (!strcasecmp(name, "ssf")) return SASL_SSF;
else if (!strcasecmp(name, "maxout")) return SASL_MAXOUTBUF;
else if (!strcasecmp(name, "optctx")) return SASL_GETOPTCTX;
#ifdef SASL2
else if (!strcasecmp(name, "realm")) return SASL_DEFUSERREALM;
else if (!strcasecmp(name, "iplocalport")) return SASL_IPLOCALPORT;
else if (!strcasecmp(name, "ipremoteport")) return SASL_IPREMOTEPORT;
else if (!strcasecmp(name, "service")) return SASL_SERVICE;
else if (!strcasecmp(name, "serverfqdn")) return SASL_SERVERFQDN;
else if (!strcasecmp(name, "authsource")) return SASL_AUTHSOURCE;
else if (!strcasecmp(name, "mechname")) return SASL_MECHNAME;
else if (!strcasecmp(name, "authuser")) return SASL_AUTHUSER;
else if (!strcasecmp(name, "sockname")) return SASL_IP_LOCAL;
else if (!strcasecmp(name, "peername")) return SASL_IP_REMOTE;
#else
else if (!strcasecmp(name, "realm")) return SASL_REALM;
else if (!strcasecmp(name, "iplocal")) return SASL_IP_LOCAL;
else if (!strcasecmp(name, "sockname")) return SASL_IP_LOCAL;
else if (!strcasecmp(name, "ipremote")) return SASL_IP_REMOTE;
else if (!strcasecmp(name, "peername")) return SASL_IP_REMOTE;
#endif
--Quanah
-- Quanah Gibson-Mount Principal Software Developer ITSS/Shared Services Stanford University GnuPG Public Key: http://www.stanford.edu/~quanah/pgp.html
