diff options
author | Reyk Floeter <reyk@esdenera.com> | 2015-06-23 17:25:57 +0200 |
---|---|---|
committer | Reyk Floeter <reyk@esdenera.com> | 2015-06-23 17:25:57 +0200 |
commit | 81406d22e54b5d3ad4799d92125dd1c4a4bc0a28 (patch) | |
tree | f06195078745a28c9e9ba9d66ac5a80032735ae0 /httpd/patterns.h | |
parent | ada83f819308cab0c92bcba37a152a655782157b (diff) | |
parent | f9ef46fb267f6cf5ec187b068c993615040b7a7b (diff) | |
download | httpd-81406d22e54b5d3ad4799d92125dd1c4a4bc0a28.tar.gz httpd-81406d22e54b5d3ad4799d92125dd1c4a4bc0a28.zip |
Merge branch 'patterns'
Diffstat (limited to 'httpd/patterns.h')
-rw-r--r-- | httpd/patterns.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/httpd/patterns.h b/httpd/patterns.h new file mode 100644 index 0000000..6db5991 --- /dev/null +++ b/httpd/patterns.h @@ -0,0 +1,47 @@ +/* $OpenBSD$ */ + +/* + * Copyright (c) 2015 Reyk Floeter <reyk@openbsd.org> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include <sys/types.h> +#include <sys/cdefs.h> + +#ifndef PATTERNS_H +#define PATTERNS_H + +#define MAXCAPTURES 32 /* Max no. of allowed captures in pattern */ +#define MAXCCALLS 200 /* Max recusion depth in pattern matching */ +#define MAXREPETITION 0xfffff /* Max for repetition items */ + +struct str_find { + off_t sm_so; /* start offset of match */ + off_t sm_eo; /* end offset of match */ +}; + +struct str_match { + char **sm_match; /* allocated array of matched strings */ + unsigned int sm_nmatch; /* number of elements in array */ +}; + +__BEGIN_DECLS +int str_find(const char *, const char *, struct str_find *, size_t, + const char **); +int str_match(const char *, const char *, struct str_match *, + const char **); +void str_match_free(struct str_match *); +__END_DECLS + +#endif /* PATTERNS_H */ |