# define rs_assert_ok(rs) ((void) (rs))
# define rs_assert_ready(rs) ((void) (rs))
# define rs_assert_done(rs) ((void) (rs))
-# define rs_reinit(rs) ((void) memset( rs, 0, sizeof(SlapReply) ))
#endif
LDAP_SLAPD_F (void) (rs_assert_ok) LDAP_P(( const SlapReply *rs ));
LDAP_SLAPD_F (void) (rs_assert_ready) LDAP_P(( const SlapReply *rs ));
LDAP_SLAPD_F (void) (rs_assert_done) LDAP_P(( const SlapReply *rs ));
-LDAP_SLAPD_F (void) (rs_reinit) LDAP_P(( SlapReply *rs ));
+#define rs_reinit(rs, type) do { \
+ SlapReply *const rsRI = (rs); \
+ rs_assert_done( rsRI ); \
+ memset( rsRI, 0, sizeof(*rsRI) ); \
+ rsRI->sr_type = (type); \
+ } while ( 0 )
+LDAP_SLAPD_F (void) (rs_reinit) LDAP_P(( SlapReply *rs, slap_reply_t type ));
LDAP_SLAPD_F (void) rs_flush_entry LDAP_P(( Operation *op,
SlapReply *rs, slap_overinst *on ));
LDAP_SLAPD_F (void) rs_replace_entry LDAP_P(( Operation *op,
/* Reset a used SlapReply whose contents has been flushed (freed/released) */
void
-(rs_reinit)( SlapReply *rs )
+(rs_reinit)( SlapReply *rs, slap_reply_t type )
{
- rs_assert_done( rs );
- memset( rs, 0, sizeof(SlapReply) );
+ rs_reinit( rs, type ); /* proto-slap.h macro */
}
/* Obey and clear rs->sr_flags & REP_ENTRY_MASK. Clear sr_entry if freed. */