1
0

retrocl_rootdse.c 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /** BEGIN COPYRIGHT BLOCK
  2. * Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
  3. * Copyright (C) 2005 Red Hat, Inc.
  4. * All rights reserved.
  5. *
  6. * License: GPL (version 3 or any later version).
  7. * See LICENSE for details.
  8. * END COPYRIGHT BLOCK **/
  9. #ifdef HAVE_CONFIG_H
  10. # include <config.h>
  11. #endif
  12. #include "retrocl.h"
  13. /*
  14. * Function: retrocl_rootdse_search
  15. *
  16. * Returns: SLAPI_DSE_CALLBACK_OK always
  17. *
  18. * Arguments: See plugin API
  19. *
  20. * Description: callback function plugged into base object search of root DSE.
  21. * Adds changelog, firstchangenumber and lastchangenumber attributes.
  22. *
  23. */
  24. int
  25. retrocl_rootdse_search(Slapi_PBlock *pb, Slapi_Entry* e, Slapi_Entry* entryAfter, int *returncode, char *returntext, void *arg)
  26. {
  27. struct berval val;
  28. struct berval *vals[2];
  29. vals[0] = &val;
  30. vals[1] = NULL;
  31. /* Changelog information */
  32. if ( retrocl_be_changelog != NULL )
  33. {
  34. char buf[BUFSIZ];
  35. changeNumber cnum;
  36. /* Changelog suffix */
  37. val.bv_val = RETROCL_CHANGELOG_DN;
  38. if ( val.bv_val != NULL )
  39. {
  40. val.bv_len = strlen( val.bv_val );
  41. slapi_entry_attr_replace( e, "changelog", vals );
  42. }
  43. /* First change number contained in log */
  44. cnum = retrocl_get_first_changenumber();
  45. sprintf( buf, "%lu", cnum );
  46. val.bv_val = buf;
  47. val.bv_len = strlen( val.bv_val );
  48. slapi_entry_attr_replace( e, "firstchangenumber", vals );
  49. /* Last change number contained in log */
  50. cnum = retrocl_get_last_changenumber();
  51. sprintf( buf, "%lu", cnum );
  52. val.bv_val = buf;
  53. val.bv_len = strlen( val.bv_val );
  54. slapi_entry_attr_replace( e, "lastchangenumber", vals );
  55. }
  56. return SLAPI_DSE_CALLBACK_OK;
  57. }