summaryrefslogtreecommitdiffstats
path: root/src/lib/str-find.h
blob: 9ab8f37830d7ac7a9fbeb3a6b067c006a0817a14 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef STR_FIND_H
#define STR_FIND_H

struct str_find_context;

struct str_find_context *str_find_init(pool_t pool, const char *key);
void str_find_deinit(struct str_find_context **ctx);

/* Returns TRUE if key is found. It's possible to send the data in arbitrary
   blocks and have the key still match. */
bool str_find_more(struct str_find_context *ctx,
		   const unsigned char *data, size_t size);
/* After str_find_more() has returned TRUE, this function returns the end
   position in the previous data block where the key had matched. */
size_t str_find_get_match_end_pos(struct str_find_context *ctx);
/* Reset input data. The next str_find_more() call won't try to match the key
   to earlier data. */
void str_find_reset(struct str_find_context *ctx);

#endif