[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdebase/kioslave/ldap
From:       Szombathelyi György <gyurco () freemail ! hu>
Date:       2004-04-17 18:51:30
Message-ID: 20040417185130.0DE009A4E () office ! kde ! org
[Download RAW message or body]

CVS commit by gyurco: 

Setting sizelimit and timelimit implemented


  M +36 -6     kio_ldap.cpp   1.35
  M +1 -1      kio_ldap.h   1.14


--- kdebase/kioslave/ldap/kio_ldap.cpp  #1.34:1.35
@@ -66,4 +66,5 @@ LDAPProtocol::LDAPProtocol( const QCStri
   mLDAP = 0; mTLS = 0; mVer = 3; mAuthSASL = false;
   mRealm = ""; mBaseName = "";
+  mTimeLimit = mSizeLimit = 0;
   kdDebug(7125) << "LDAPProtocol::LDAPProtocol (" << protocol << ")" << endl;
 }
@@ -372,9 +373,16 @@ void LDAPProtocol::changeCheck( const LD
   if ( url.hasExtension( "basename" ) ) 
     basename = url.extension( "basename", critical).upper();
+  int timelimit = 0;
+  if ( url.hasExtension( "x-timelimit" ) )
+    timelimit = url.extension( "x-timelimit", critical).toInt();
+  int sizelimit = 0;
+  if ( url.hasExtension( "x-sizelimit" ) )
+    sizelimit = url.extension( "x-sizelimit", critical).toInt();
   
   if ( !authSASL && basename.isEmpty() ) basename = mUser;
     
   if ( tls != mTLS || ver != mVer || authSASL != mAuthSASL || mech != mMech ||
-    mRealm != realm || mBaseName != basename ) {
+    mRealm != realm || mBaseName != basename || mTimeLimit != timelimit ||
+    mSizeLimit != sizelimit ) {
     closeConnection();
     mTLS = tls;
@@ -384,4 +392,6 @@ void LDAPProtocol::changeCheck( const LD
     mRealm = realm;
     mBaseName = basename;
+    mTimeLimit = timelimit;
+    mSizeLimit = sizelimit;
     kdDebug(7125) << "parameters changed: tls = " << mTLS << 
       " version: " << mVer << "SASLauth: " << mAuthSASL << endl;
@@ -469,5 +479,4 @@ static int kldap_sasl_interact( LDAP *, 
 void LDAPProtocol::openConnection()
 {
-  
   if ( mLDAP ) return;
   
@@ -535,4 +544,24 @@ void LDAPProtocol::openConnection()
   }
   
+  if ( mSizeLimit ) {
+    kdDebug(7125) << "sizelimit: " << mSizeLimit << endl;
+    if ( ldap_set_option( mLDAP, LDAP_OPT_SIZELIMIT, &mSizeLimit ) != LDAP_SUCCESS ) {
+      closeConnection();
+      error( ERR_UNSUPPORTED_ACTION, 
+        i18n("Cannot set size limit!").arg(version) );
+      return;
+    }
+  }
+  
+  if ( mTimeLimit ) {
+    kdDebug(7125) << "timelimit: " << mTimeLimit << endl;
+    if ( ldap_set_option( mLDAP, LDAP_OPT_TIMELIMIT, &mTimeLimit ) != LDAP_SUCCESS ) {
+      closeConnection();
+      error( ERR_UNSUPPORTED_ACTION, 
+        i18n("Cannot set time limit!").arg(version) );
+      return;
+    }
+  }
+  
   bool auth = false;
   bool firstauth = true;
@@ -649,9 +678,10 @@ void LDAPProtocol::get( const KURL &_url
       result = LDAPEntryAsLDIF(entry);
       result += '\n';
-      processed_size += result.length();
-      array.setRawData( result.data(), result.length() );
+      uint len = result.length();
+      processed_size += len;
+      array.setRawData( result.data(), len );
       data(array);
       processedSize( processed_size );
-      array.resetRawData( result.data(), result.length() );
+      array.resetRawData( result.data(), len );
     
       entry = ldap_next_entry( mLDAP, entry );

--- kdebase/kioslave/ldap/kio_ldap.h  #1.13:1.14
@@ -35,5 +35,5 @@ class LDAPProtocol : public KIO::SlaveBa
     QString mPassword;
     LDAP *mLDAP;
-    int mVer;
+    int mVer, mSizeLimit, mTimeLimit;
     bool mTLS;
     bool mAuthSASL;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic