X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Fdds.c;h=3c95eb4f3dac3f0f698afd6ebd4e5d93fc803848;hb=b905811d3c800b6f4031d541e424e5de871aa0c7;hp=3ec8d651504b22a5066954a4144ef12ccab23b3e;hpb=339b9c371ec07b5125fed23e4bac1cdca2790525;p=openldap diff --git a/libraries/libldap/dds.c b/libraries/libldap/dds.c index 3ec8d65150..3c95eb4f3d 100644 --- a/libraries/libldap/dds.c +++ b/libraries/libldap/dds.c @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 2005-2006 The OpenLDAP Foundation. + * Copyright 2005-2011 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 ); }