annotate src/gt_utils.h @ 0:d39e1d0d75b6

initial add
author paulo@hit-nxdomain.opendns.com
date Sat, 20 Feb 2010 21:18:28 -0800
parents
children
rev   line source
paulo@0 1 /*
paulo@0 2 * $Id: gt_utils.h,v 1.8 2004/04/17 06:05:54 hipnod Exp $
paulo@0 3 *
paulo@0 4 * Copyright (C) 2001-2003 giFT project (gift.sourceforge.net)
paulo@0 5 *
paulo@0 6 * This program is free software; you can redistribute it and/or modify it
paulo@0 7 * under the terms of the GNU General Public License as published by the
paulo@0 8 * Free Software Foundation; either version 2, or (at your option) any
paulo@0 9 * later version.
paulo@0 10 *
paulo@0 11 * This program is distributed in the hope that it will be useful, but
paulo@0 12 * WITHOUT ANY WARRANTY; without even the implied warranty of
paulo@0 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
paulo@0 14 * General Public License for more details.
paulo@0 15 */
paulo@0 16
paulo@0 17 #ifndef GIFT_GT_UTILS_H_
paulo@0 18 #define GIFT_GT_UTILS_H_
paulo@0 19
paulo@0 20 /*****************************************************************************/
paulo@0 21
paulo@0 22 /* define to set data structures to a predefined value after freeing */
paulo@0 23 /* #define POISON_FREE 1 */
paulo@0 24
paulo@0 25 /*****************************************************************************/
paulo@0 26
paulo@0 27 typedef struct gt_zlib_stream
paulo@0 28 {
paulo@0 29 void *streamptr;
paulo@0 30
paulo@0 31 enum
paulo@0 32 {
paulo@0 33 ZSTREAM_NONE = 0x00,
paulo@0 34 ZSTREAM_INFLATE = 0x01,
paulo@0 35 ZSTREAM_DEFLATE = 0x02,
paulo@0 36 } type;
paulo@0 37
paulo@0 38 char *data;
paulo@0 39 char *start, *end;
paulo@0 40 char *pos;
paulo@0 41 } ZlibStream;
paulo@0 42
paulo@0 43 /*****************************************************************************/
paulo@0 44
paulo@0 45 char *make_str (char *pseudo_str, int len);
paulo@0 46
paulo@0 47 int peer_addr (int fd, in_addr_t *r_ip, in_port_t *r_port);
paulo@0 48
paulo@0 49 void fprint_hex (FILE *f, char *buf, int len);
paulo@0 50
paulo@0 51 /*****************************************************************************/
paulo@0 52
paulo@0 53 ZlibStream *zlib_stream_open (size_t max);
paulo@0 54 void zlib_stream_close (ZlibStream *stream);
paulo@0 55 int zlib_stream_inflate (ZlibStream *stream, char *data, size_t size);
paulo@0 56 int zlib_stream_write (ZlibStream *stream, char *data, size_t size);
paulo@0 57
paulo@0 58 /* returns the amount of data read */
paulo@0 59 int zlib_stream_read (ZlibStream *stream, char **r_data);
paulo@0 60
paulo@0 61 /*****************************************************************************/
paulo@0 62
paulo@0 63 #ifdef POISON_FREE
paulo@0 64 #define poisoned_free(ptr, chr) \
paulo@0 65 do { \
paulo@0 66 memset ((ptr), (chr), sizeof (*(ptr))); \
paulo@0 67 free ((ptr)); \
paulo@0 68 } while (0)
paulo@0 69 #else /* POISON_FREE */
paulo@0 70 #define poisoned_free(ptr, chr) \
paulo@0 71 free ((ptr))
paulo@0 72 #endif /* POISON_FREE */
paulo@0 73
paulo@0 74 /*****************************************************************************/
paulo@0 75
paulo@0 76 #endif /* GIFT_GT_UTILS_H_ */