]> git.sur5r.net Git - openldap/commitdiff
Implemented slapi_dup_control().
authorLuke Howard <lukeh@openldap.org>
Thu, 27 Feb 2003 13:00:25 +0000 (13:00 +0000)
committerLuke Howard <lukeh@openldap.org>
Thu, 27 Feb 2003 13:00:25 +0000 (13:00 +0000)
servers/slapd/slapi/proto-slapi.h
servers/slapd/slapi/slapi_utils.c

index 78a167b304e6d9e0c2d1bd4b58fc674b495a6ed5..11494570b438b8a225b3be8698a8f434c07da776 100644 (file)
@@ -169,6 +169,7 @@ extern void slapi_register_supported_control(char *controloid,
 extern int slapi_get_supported_controls(char ***ctrloidsp, unsigned long **ctrlopsp);
 extern int slapi_control_present( LDAPControl **controls, char *oid, 
                                struct berval **val, int *iscritical);
+extern LDAPControl *slapi_dup_control(LDAPControl *control);
 extern void slapi_register_supported_saslmechanism(char *mechanism);
 extern char **slapi_get_supported_saslmechanisms();
 extern char **slapi_get_supported_extended_ops(void);
index 001ee206938e4b6b7f37133081995b01ce80e08c..3f8956aa6de30d7bacdadfc1ca461fa8f5f586b7 100644 (file)
@@ -1210,6 +1210,23 @@ error_return:
 #endif /* LDAP_SLAPI */
 }
 
+LDAPControl *
+slapi_dup_control( LDAPControl *ctrl )
+{
+#ifdef LDAP_SLAPI
+       LDAPControl *ret;
+
+       ret = (LDAPControl *)slapi_ch_malloc( sizeof(*ret) );
+       ret->ldctl_oid = slapi_ch_strdup( ctrl->ldctl_oid );
+       ber_dupbv( &ret->ldctl_value, &ctrl->ldctl_value );
+       ret->ldctl_iscritical = ctrl->ldctl_iscritical;
+
+       return ret;
+#else
+       return NULL;
+#endif /* LDAP_SLAPI */
+}
+
 void 
 slapi_register_supported_saslmechanism( char *mechanism )
 {