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

Web服务器

开发平台:

Unix_Linux

  1. /*
  2. ** urlcache.h
  3. **
  4. ** Copyright (c) 1995 Peter Eriksson <pen@signum.se>
  5. **
  6. ** This program is free software; you can redistribute it and/or modify
  7. ** it under the terms of the GNU General Public License as published by
  8. ** the Free Software Foundation; either version 2 of the License, or
  9. ** (at your option) any later version.
  10. **
  11. ** This program is distributed in the hope that it will be useful,
  12. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. ** GNU General Public License for more details.
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program; if not, write to the Free Software
  17. ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18. */
  19. #ifndef PHTTPD_URLCACHE_H
  20. #define PHTTPD_URLCACHE_H
  21. #define UCF_HANDLER 0x0001
  22. #define UCF_ACCESS 0x0004
  23. #define UCF_AUTH 0x0008
  24. #define UCF_REDIRECT 0x0010
  25. #define UCF_PREDIRECT 0x0020
  26. #define UCF_ALL         0x00FF
  27. #define UCF_RELOAD 0x0100
  28. typedef struct urlinfo_s
  29. {
  30.     mutex_t lock;
  31.     unsigned int flags;
  32.     char *handler;
  33.     struct
  34.     {
  35. char *url;
  36. char *request;
  37.     } rewrite;
  38.     struct
  39.     {
  40. char *path;
  41.     } access;
  42.     struct
  43.     {
  44. char *source;
  45. char *realm;
  46.     } auth;
  47.     struct
  48.     {
  49. char *url;
  50. char *request;
  51.     } redirect;
  52.     struct
  53.     {
  54. char *url;
  55. char *request;
  56.     } predirect;
  57. } urlinfo_t;
  58. typedef struct ucentry_s
  59. {
  60.     cacheentry_t *cep;
  61.     urlinfo_t *uip;
  62. } ucentry_t;
  63. extern void urlcache_init(void);
  64.     
  65. extern ucentry_t *urlcache_lookup(char *url,
  66.   unsigned int flags);
  67. extern void urlcache_release(ucentry_t *ucp);
  68. extern int urlcache_getdata(ucentry_t *ucp,
  69.     unsigned int flags);
  70. extern int urlcache_getstats(cachestat_t *csp);
  71.      
  72. extern int urlcache_refresh;
  73. extern int urlcache_ttl;
  74. extern int urlcache_gc_interval;
  75. extern int urlcache_size;
  76.      
  77. #endif