Author: rhafer Date: Fri Nov 6 11:03:10 2009 New Revision: 59362 URL: http://svn.opensuse.org/viewcvs/yast?rev=59362&view=rev Log: Track connection in Agent instead of OlcConfig Modified: branches/SuSE-Code-11-SP1-Branch/ldap-server/src/agent/SlapdConfigAgent.cc branches/SuSE-Code-11-SP1-Branch/ldap-server/src/agent/SlapdConfigAgent.h branches/SuSE-Code-11-SP1-Branch/ldap-server/src/lib/slapd-config.h Modified: branches/SuSE-Code-11-SP1-Branch/ldap-server/src/agent/SlapdConfigAgent.cc URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ldap-server/src/agent/SlapdConfigAgent.cc?rev=59362&r1=59361&r2=59362&view=diff ============================================================================== --- branches/SuSE-Code-11-SP1-Branch/ldap-server/src/agent/SlapdConfigAgent.cc (original) +++ branches/SuSE-Code-11-SP1-Branch/ldap-server/src/agent/SlapdConfigAgent.cc Fri Nov 6 11:03:10 2009 @@ -61,14 +61,19 @@ y2_logger(y2level, "libslapdconfig", file, line, function, "%s", msg.c_str()); } -SlapdConfigAgent::SlapdConfigAgent() +SlapdConfigAgent::SlapdConfigAgent() : m_lc(0) { y2milestone("SlapdConfigAgent::SlapdConfigAgent"); OlcConfig::setLogCallback(y2LogCallback); } SlapdConfigAgent::~SlapdConfigAgent() -{} +{ + if ( m_lc) + { + delete(m_lc); + } +} YCPValue SlapdConfigAgent::Read( const YCPPath &path, const YCPValue &arg, @@ -189,20 +194,20 @@ target.setPort( targetMap->value(YCPString("port"))->asInteger()->value() ); uri = target.getURLString(); } - LDAPConnection *lc = new LDAPConnection(uri); + m_lc = new LDAPConnection(uri); try { if( arg.isNull() ) { SaslExternalHandler sih; - lc->saslInteractiveBind("external", 2 /* LDAP_SASL_QUIET */, (SaslInteractionHandler*)&sih); + m_lc->saslInteractiveBind("external", 2 /* LDAP_SASL_QUIET */, (SaslInteractionHandler*)&sih); } else { if ( argMap->value(YCPString("starttls"))->asBoolean()->value() ) { - lc->start_tls(); + m_lc->start_tls(); } - lc->bind("cn=config", std::string( argMap->value(YCPString("configcred"))->asString()->value_cstr() )); + m_lc->bind("cn=config", std::string( argMap->value(YCPString("configcred"))->asString()->value_cstr() )); } } catch ( LDAPException e) @@ -214,10 +219,11 @@ YCPString(errstring) ); lastError->add(YCPString("description"), YCPString( details ) ); y2milestone("Error connection to the LDAP Server: %s", details.c_str()); - delete(lc); + delete(m_lc); + m_lc=0; return YCPBoolean(false); } - olc = OlcConfig(lc); + olc = OlcConfig(m_lc); } databases.clear(); schema.clear(); @@ -231,6 +237,9 @@ // olc.getLdapConnection()->unbind(); } olc = OlcConfig(); + if ( m_lc) + delete m_lc; + m_lc=0; databases.clear(); schema.clear(); deleteableSchema.clear(); Modified: branches/SuSE-Code-11-SP1-Branch/ldap-server/src/agent/SlapdConfigAgent.h URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ldap-server/src/agent/SlapdConfigAgent.h?rev=59362&r1=59361&r2=59362&view=diff ============================================================================== --- branches/SuSE-Code-11-SP1-Branch/ldap-server/src/agent/SlapdConfigAgent.h (original) +++ branches/SuSE-Code-11-SP1-Branch/ldap-server/src/agent/SlapdConfigAgent.h Fri Nov 6 11:03:10 2009 @@ -79,6 +79,7 @@ private: YCPMap lastError; + LDAPConnection *m_lc; OlcConfig olc; OlcDatabaseList databases; OlcSchemaList schema; Modified: branches/SuSE-Code-11-SP1-Branch/ldap-server/src/lib/slapd-config.h URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-SP1-Branch/ldap-server/src/lib/slapd-config.h?rev=59362&r1=59361&r2=59362&view=diff ============================================================================== --- branches/SuSE-Code-11-SP1-Branch/ldap-server/src/lib/slapd-config.h (original) +++ branches/SuSE-Code-11-SP1-Branch/ldap-server/src/lib/slapd-config.h Fri Nov 6 11:03:10 2009 @@ -433,11 +433,6 @@ public: OlcConfig(LDAPConnection *lc=0 ); - inline ~OlcConfig() - { - if(m_lc) - delete(m_lc); - } bool hasConnection() const; inline LDAPConnection* getLdapConnection() -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org