util.h
上传用户:liugui
上传日期:2007-01-04
资源大小:822k
文件大小:4k
源码类别:

代理服务器

开发平台:

Unix_Linux

  1. /*
  2.  * $Id: util.h,v 1.53 1999/01/29 19:39:09 wessels Exp $
  3.  *
  4.  * AUTHOR: Harvest Derived
  5.  *
  6.  * SQUID Internet Object Cache  http://squid.nlanr.net/Squid/
  7.  * --------------------------------------------------------
  8.  *
  9.  *  Squid is the result of efforts by numerous individuals from the
  10.  *  Internet community.  Development is led by Duane Wessels of the
  11.  *  National Laboratory for Applied Network Research and funded by
  12.  *  the National Science Foundation.
  13.  *
  14.  *  This program is free software; you can redistribute it and/or modify
  15.  *  it under the terms of the GNU General Public License as published by
  16.  *  the Free Software Foundation; either version 2 of the License, or
  17.  *  (at your option) any later version.
  18.  *  
  19.  *  This program is distributed in the hope that it will be useful,
  20.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  21.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  22.  *  GNU General Public License for more details.
  23.  *  
  24.  *  You should have received a copy of the GNU General Public License
  25.  *  along with this program; if not, write to the Free Software
  26.  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
  27.  *  
  28.  */
  29. #ifndef _UTIL_H_
  30. #define _UTIL_H_
  31. #include "config.h"
  32. #include <stdio.h>
  33. #include <time.h>
  34. #if HAVE_TIME_H
  35. #include <time.h>
  36. #endif
  37. #if HAVE_SYS_TIME_H
  38. #include <sys/time.h>
  39. #endif
  40. #if !defined(SQUIDHOSTNAMELEN)
  41. #include <sys/param.h>
  42. #ifndef _SQUID_NETDB_H_ /* need protection on NEXTSTEP */
  43. #define _SQUID_NETDB_H_
  44. #include <netdb.h>
  45. #endif
  46. #if !defined(MAXHOSTNAMELEN) || (MAXHOSTNAMELEN < 128)
  47. #define SQUIDHOSTNAMELEN 128
  48. #else
  49. #define SQUIDHOSTNAMELEN MAXHOSTNAMELEN
  50. #endif
  51. #endif
  52. #if defined(_SQUID_FREEBSD_)
  53. #define _etext etext
  54. #endif
  55. extern const char *getfullhostname(void);
  56. extern const char *mkhttpdlogtime(const time_t *);
  57. extern const char *mkrfc1123(time_t);
  58. extern char *uudecode(const char *);
  59. extern char *xstrdup(const char *);
  60. extern char *xstrndup(const char *, size_t);
  61. extern const char *xstrerror(void);
  62. extern const char *xbstrerror(int);
  63. extern int tvSubMsec(struct timeval, struct timeval);
  64. extern int tvSubUsec(struct timeval, struct timeval);
  65. extern double tvSubDsec(struct timeval, struct timeval);
  66. extern char *xstrncpy(char *, const char *, size_t);
  67. extern size_t xcountws(const char *str);
  68. extern time_t parse_rfc1123(const char *str);
  69. extern void *xcalloc(int, size_t);
  70. extern void *xmalloc(size_t);
  71. extern void *xrealloc(void *, size_t);
  72. extern void Tolower(char *);
  73. extern void xfree(void *);
  74. extern void xxfree(void *);
  75. /* rfc1738.c */
  76. extern char *rfc1738_escape(const char *);
  77. extern void rfc1738_unescape(char *);
  78. #if XMALLOC_STATISTICS
  79. extern void malloc_statistics(void (*)(int, int, void *), void *);
  80. #endif
  81. #if XMALLOC_TRACE
  82. #define xmalloc(size) (xmalloc_func="xmalloc",xmalloc_line=__LINE__,xmalloc_file=__FILE__,xmalloc(size))
  83. #define xfree(ptr) (xmalloc_func="xfree",xmalloc_line=__LINE__,xmalloc_file=__FILE__,xfree(ptr))
  84. #define xxfree(ptr) (xmalloc_func="xxfree",xmalloc_line=__LINE__,xmalloc_file=__FILE__,xxfree(ptr))
  85. #define xrealloc(ptr,size) (xmalloc_func="xrealloc",xmalloc_line=__LINE__,xmalloc_file=__FILE__,xrealloc(ptr,size))
  86. #define xcalloc(n,size) (xmalloc_func="xcalloc",xmalloc_line=__LINE__,xmalloc_file=__FILE__,xcalloc(n,size))
  87. #define xstrdup(ptr) (xmalloc_func="xstrdup",xmalloc_line=__LINE__,xmalloc_file=__FILE__,xstrdup(ptr))
  88. extern int xmalloc_line;
  89. extern char *xmalloc_file;
  90. extern char *xmalloc_func;
  91. extern int xmalloc_trace;
  92. extern size_t xmalloc_total;
  93. extern void xmalloc_find_leaks(void);
  94. #endif
  95. typedef struct in_addr SIA;
  96. extern int safe_inet_addr(const char *, SIA *);
  97. extern time_t parse_iso3307_time(const char *buf);
  98. extern char *base64_decode(const char *coded);
  99. extern const char *base64_encode(const char *decoded);
  100. extern double xpercent(double part, double whole);
  101. extern int xpercentInt(double part, double whole);
  102. extern double xdiv(double nom, double denom);
  103. extern const char *xitoa(int num);
  104. #if !HAVE_DRAND48
  105. double drand48(void);
  106. #endif
  107. #endif /* ndef _UTIL_H_ */