/usr/include/htp/bstr_builder.h is in libhtp-dev 0.5.15-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | /***************************************************************************
* Copyright (c) 2009-2010 Open Information Security Foundation
* Copyright (c) 2010-2013 Qualys, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* - Neither the name of the Qualys, Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
***************************************************************************/
/**
* @file
* @author Ivan Ristic <ivanr@webkreator.com>
*/
#ifndef _BSTR_BUILDER_H
#define _BSTR_BUILDER_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct bstr_builder_t bstr_builder_t;
#include "htp_list.h"
struct bstr_builder_t {
htp_list_t *pieces;
};
#define BSTR_BUILDER_DEFAULT_SIZE 16
/**
* Adds one new string to the builder. This function will adopt the
* string and destroy it when the builder itself is destroyed.
*
* @param[in] bb
* @param[in] b
* @return HTP_OK on success, HTP_ERROR on failure.
*/
htp_status_t bstr_builder_appendn(bstr_builder_t *bb, bstr *b);
/**
* Adds one new piece, in the form of a NUL-terminated string, to
* the builder. This function will make a copy of the provided string.
*
* @param[in] bb
* @param[in] cstr
* @return HTP_OK on success, HTP_ERROR on failure.
*/
htp_status_t bstr_builder_append_c(bstr_builder_t *bb, const char *cstr);
/**
* Adds one new piece, defined with the supplied pointer and
* length, to the builder. This function will make a copy of the
* provided data region.
*
* @param[in] bb
* @param[in] data
* @param[in] len
* @return @return HTP_OK on success, HTP_ERROR on failure.
*/
htp_status_t bstr_builder_append_mem(bstr_builder_t *bb, const void *data, size_t len);
/**
* Clears this string builder, destroying all existing pieces. You may
* want to clear a builder once you've either read all the pieces and
* done something with them, or after you've converted the builder into
* a single string.
*
* @param[in] bb
*/
void bstr_builder_clear(bstr_builder_t *bb);
/**
* Creates a new string builder.
*
* @return New string builder, or NULL on error.
*/
bstr_builder_t *bstr_builder_create(void);
/**
* Destroys an existing string builder, also destroying all
* the pieces stored within.
*
* @param[in] bb
*/
void bstr_builder_destroy(bstr_builder_t *bb);
/**
* Returns the size (the number of pieces) currently in a string builder.
*
* @param[in] bb
* @return size
*/
size_t bstr_builder_size(const bstr_builder_t *bb);
/**
* Creates a single string out of all the pieces held in a
* string builder. This method will not destroy any of the pieces.
*
* @param[in] bb
* @return New string, or NULL on error.
*/
bstr *bstr_builder_to_str(const bstr_builder_t *bb);
#ifdef __cplusplus
}
#endif
#endif /* _BSTR_BUILDER_H */
|