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

WEB邮件程序

开发平台:

C/C++

  1. /*
  2. ** Copyright 1998 - 1999 Double Precision, Inc.  See COPYING for
  3. ** distribution information.
  4. */
  5. #ifndef authstaticlist_h
  6. #define authstaticlist_h
  7. #if HAVE_CONFIG_H
  8. #include "config.h"
  9. #endif
  10. #include <sys/types.h>
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. static const char authstaticlist_h_rcsid[]="$Id: authstaticlist.h,v 1.5 2000/04/27 02:51:00 mrsam Exp $";
  15. struct authinfo;
  16. struct authstaticinfo {
  17. const char *auth_name;
  18. char * (*auth_func)(const char *, const char *, char *, int,
  19. void (*)(struct authinfo *, void *),
  20.                         void *);
  21. int (*auth_prefunc)(const char *, const char *,
  22. int (*)(struct authinfo *, void *),
  23.                         void *);
  24. void (*auth_cleanupfunc)();
  25. int (*auth_changepwd)(const char *, const char *, const char *,
  26. const char *); /* NOT IMPLEMENTED YET */
  27. } ;
  28. extern struct authstaticinfo authstaticlist[];
  29. /*
  30. ** Call statically-linked authentication modules, according to the order
  31. ** specified in configuration file 'configfile'.  If configfile does not
  32. ** exist, the installed order is used.
  33. **
  34. ** The first time this function is called, the contents of configfile
  35. ** are read and saved in a memory buffer, and subsequent invocations will
  36. ** use the saved copy of the module list.
  37. */
  38. int authstaticlist_search(
  39. const char *userid, /* userid to authenticate */
  40. const char *service, /* service to authenticate */
  41. const char *configfile, /* configuration file */
  42. int (*callback)(struct authinfo *, void *), /* callback function */
  43. void *callback_arg); /* argument to the callback function */
  44. /*
  45. ** If an authentication module is not found for this userid, a negative
  46. ** value is returned.  If there was a temporary error (database offline,
  47. ** etc) a positive value is returned.  Otherwise, the callback function
  48. ** is invoked, and the exit code from the callback function is returned
  49. ** (which should be zero).
  50. */
  51. #ifdef __cplusplus
  52. }
  53. #endif
  54. #endif