ldapaddressbook.h
上传用户:s81996212
上传日期:2007-01-04
资源大小:722k
文件大小:2k
源码类别:

WEB邮件程序

开发平台:

C/C++

  1. #ifndef ldapaddressbook_h
  2. #define ldapaddressbook_h
  3. /* $Id */
  4. /*
  5. ** Copyright 2000 Double Precision, Inc.  See COPYING for
  6. ** distribution information.
  7. */
  8. #ifdef  __cplusplus
  9. extern "C" {
  10. #endif
  11. /*
  12. ** This module implements an abstraction of an interface to an LDAP address
  13. ** book.  There's no reason to reinvent the wheel, so we simply run ldapsearch
  14. ** as a child process, and read its output.  ldapsearch is run indirectly, via
  15. ** a stub shell script that can be customized on a given system.  The template
  16. ** for the stub shell script is provided.
  17. **
  18. ** There's a small library here that can be used to maintain a configuration
  19. ** file listing available address books that can be contacted.  The format
  20. ** of each line in this library is simply:
  21. **
  22. ** name<tab>host<tab>port<tab>suffix<tab>binddn<tab>bindpw
  23. **
  24. ** Functions are provided to add and remove names from this configuration
  25. ** file easily.  The above is parsed into the following structure:
  26. */
  27. struct ldapabook {
  28. struct ldapabook *next;
  29. char *name;
  30. char *host;
  31. char *port;
  32. char *suffix;
  33. char *binddn;
  34. char *bindpw;
  35. } ;
  36. /* Read a configuration file, and create a link list of ldapabook structs */
  37. struct ldapabook *ldapabook_read(const char *); /* filename */
  38. /* Free memory allocated by ldapabook_init */
  39. void ldapabook_free(struct ldapabook *);
  40. /* Find a certain address book */
  41. const struct ldapabook *ldapabook_find(const struct ldapabook *,
  42. const char *);
  43. /* Add a new entry to the address book */
  44. int ldapabook_add(const char *, /* filename */
  45. const struct ldapabook *); /* new entry */
  46. /* Delete an entry from the address book */
  47. int ldapabook_del(const char *, /* filename */
  48. const char *, /* temporary filename on same filesys */
  49. const char *); /* name to delete */
  50. /* Run ldapsearch in the background, return a file descriptor containing
  51. ** ldapsearch's output.
  52. */
  53. int ldapabook_search(const struct ldapabook *, /* Search this address book */
  54. const char *, /* Shell script filename */
  55. const char *, /* LDAP search filter */
  56. int); /* Set stderr to this file descriptor, -1 if
  57. ** stderr should not be redirected.
  58. */
  59. #ifdef  __cplusplus
  60. }
  61. #endif
  62. #endif