lib.c
上传用户:julian
上传日期:2007-01-04
资源大小:22k
文件大小:5k
源码类别:

代理服务器

开发平台:

Unix_Linux

  1. /*
  2.     File: tcpproxy/lib.c
  3.     Version 1.0
  4.     
  5.     Copyright (C) 1999 by Wolfgang Zekoll  <wzk@quietsche-entchen.de>
  6.     This source 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, or (at your option)
  9.     any later version.
  10.     This source is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.     GNU General Public License for more details.
  14.     You should have received a copy of the GNU General Public License
  15.     along with this program; if not, write to the Free Software
  16.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17. */
  18. #include <stdlib.h>
  19. #include <stdio.h>
  20. #include <string.h>
  21. #include <ctype.h>
  22. #include <unistd.h>
  23. #include <time.h>
  24. #include <fcntl.h>
  25. #include <sys/types.h>
  26. #include <sys/stat.h>
  27. #include "lib.h"
  28. #define DEBUG(x)
  29. void *allocate(size_t size)
  30. {
  31. void *p;
  32. if ((p = malloc(size)) == NULL) {
  33. fprintf (stderr, "%s: memory allocation errorn", program);
  34. exit (-1);
  35. }
  36. memset(p, 0, size);
  37. return (p);
  38. }
  39. void *reallocate(void *p, size_t size)
  40. {
  41. if ((p = realloc(p, size)) == NULL) {
  42. fprintf (stderr, "%s: memory allocation errorn", program);
  43. exit (-1);
  44. }
  45. return (p);
  46. }
  47. static unsigned int lower[256], upper[256];
  48. static int _init_upper()
  49. {
  50. unsigned int c;
  51. DEBUG( fprintf (stderr, "init upper[]n"); )
  52. for (c = 0; c < 256; c++)
  53. upper[c] = c;
  54. DEBUG( fprintf (stderr, "init uppercase lettersn"); )
  55. for (c = 'a'; c < 'z'+1; c++)
  56. upper[c] = 'A' + (c - 'a');
  57. DEBUG( fprintf (stderr, "init umlauten"); )
  58. upper[c = (unsigned char) '