}
+void PowerLDAP::modify( const string &dn, LDAPMod *mods[], LDAPControl **scontrols, LDAPControl **ccontrols )
+{
+ int rc;
+
+ rc = ldap_modify_ext_s( d_ld, dn.c_str(), mods, scontrols, ccontrols );
+ if ( rc == LDAP_SERVER_DOWN || rc == LDAP_CONNECT_ERROR )
+ throw LDAPNoConnection();
+ else if ( rc != LDAP_SUCCESS )
+ throw LDAPException( "Error modifying LDAP entry " + dn + ": " + getError( rc ) );
+}
+
+
int PowerLDAP::search( const string& base, int scope, const string& filter, const char** attr )
{
int msgid, rc;
void bind( const string& ldapbinddn = "", const string& ldapsecret = "", int method = LDAP_AUTH_SIMPLE, int timeout = 5 );
void simpleBind( const string& ldapbinddn = "", const string& ldapsecret = "" );
int search( const string& base, int scope, const string& filter, const char** attr = 0 );
+ void modify( const string& dn, LDAPMod *mods[], LDAPControl **scontrols = 0, LDAPControl **ccontrols = 0 );
bool getSearchEntry( int msgid, sentry_t& entry, bool dn = false, int timeout = 5 );
void getSearchResults( int msgid, sresult_t& result, bool dn = false, int timeout = 5 );