]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/dds.c
ldap_control*_dup() is no longer private; add ldap_pvt_put_control
[openldap] / libraries / libldap / dds.c
index 3ec8d651504b22a5066954a4144ef12ccab23b3e..e3c986d89edbe69860b795a2a1ab8bfd46ada78c 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2005-2006 The OpenLDAP Foundation.
+ * Copyright 2005-2007 The OpenLDAP Foundation.
  * Portions Copyright 2005-2006 SysNet s.n.c.
  * All rights reserved.
  *
@@ -27,7 +27,7 @@
 #include "ldap-int.h"
 
 int
-ldap_parse_refresh( LDAP *ld, LDAPMessage *res, int *newttl )
+ldap_parse_refresh( LDAP *ld, LDAPMessage *res, ber_int_t *newttl )
 {
        int             rc;
        struct berval   *retdata = NULL;
@@ -83,7 +83,7 @@ int
 ldap_refresh(
        LDAP            *ld,
        struct berval   *dn,
-       int             ttl,
+       ber_int_t               ttl,
        LDAPControl     **sctrls,
        LDAPControl     **cctrls,
        int             *msgidp )
@@ -113,13 +113,14 @@ ldap_refresh(
        rc = ber_flatten2( ber, &bv, 0 );
 
        if ( rc < 0 ) {
-               ld->ld_errno = LDAP_ENCODING_ERROR;
-               return ld->ld_errno;
+               rc = ld->ld_errno = LDAP_ENCODING_ERROR;
+               goto done;
        }
 
        rc = ldap_extended_operation( ld, LDAP_EXOP_REFRESH, &bv,
                sctrls, cctrls, msgidp );
 
+done:;
         ber_free( ber, 1 );
 
        return rc;
@@ -129,8 +130,8 @@ int
 ldap_refresh_s(
        LDAP            *ld,
        struct berval   *dn,
-       int             ttl,
-       int             *newttl,
+       ber_int_t               ttl,
+       ber_int_t               *newttl,
        LDAPControl     **sctrls,
        LDAPControl     **cctrls )
 {
@@ -139,13 +140,10 @@ ldap_refresh_s(
        LDAPMessage     *res;
 
        rc = ldap_refresh( ld, dn, ttl, sctrls, cctrls, &msgid );
-       if ( rc != LDAP_SUCCESS ) {
-               return rc;
-       }
-
-       if ( ldap_result( ld, msgid, LDAP_MSG_ALL, (struct timeval *)NULL, &res ) == -1 ) {
-               return ld->ld_errno;
-       }
+       if ( rc != LDAP_SUCCESS ) return rc;
+       
+       rc = ldap_result( ld, msgid, LDAP_MSG_ALL, (struct timeval *)NULL, &res );
+       if( rc == -1 || !res ) return ld->ld_errno;
 
        rc = ldap_parse_refresh( ld, res, newttl );
        if( rc != LDAP_SUCCESS ) {
@@ -153,6 +151,6 @@ ldap_refresh_s(
                return rc;
        }
 
-       return( ldap_result2error( ld, res, 1 ) );
+       return ldap_result2error( ld, res, 1 );
 }