/usr/include/dovecot/uri-util.h is in dovecot-dev 1:2.2.9-1ubuntu2.
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 | #ifndef URI_UTIL_H
#define URI_UTIL_H
#include "net.h"
/*
* Generic URI parsing.
*/
struct uri_authority {
const char *enc_userinfo;
const char *host_literal;
struct ip_addr host_ip;
in_port_t port;
unsigned int have_host_ip:1;
unsigned int have_port:1;
};
struct uri_parser {
pool_t pool;
const char *error;
const unsigned char *begin, *cur, *end;
string_t *tmpbuf;
};
int uri_parse_unreserved(struct uri_parser *parser, string_t *part);
bool uri_data_decode(struct uri_parser *parser, const char *data,
const char *until, const char **decoded_r) ATTR_NULL(3);
int uri_cut_scheme(const char **uri_p, const char **scheme_r);
int uri_parse_scheme(struct uri_parser *parser, const char **scheme_r);
int uri_parse_authority(struct uri_parser *parser,
struct uri_authority *auth);
int uri_parse_slashslash_authority(struct uri_parser *parser,
struct uri_authority *auth);
int uri_parse_path_segment(struct uri_parser *parser, const char **segment_r);
int uri_parse_path(struct uri_parser *parser, int *relative_r,
const char *const **path_r);
int uri_parse_query(struct uri_parser *parser, const char **query_r);
int uri_parse_fragment(struct uri_parser *parser, const char **fragment_r);
void uri_parser_init(struct uri_parser *parser, pool_t pool, const char *data);
string_t *uri_parser_get_tmpbuf(struct uri_parser *parser, size_t size);
/*
* Generic URI construction
*/
void uri_append_scheme(string_t *out, const char *scheme);
void uri_append_user_data(string_t *out, const char *esc, const char *data);
void uri_append_userinfo(string_t *out, const char *userinfo);
void uri_append_host_name(string_t *out, const char *name);
void uri_append_host_ip(string_t *out, const struct ip_addr *host_ip);
void uri_append_port(string_t *out, in_port_t port);
void uri_append_path_segment_data(string_t *out, const char *esc, const char *data);
void uri_append_path_segment(string_t *out, const char *segment);
void uri_append_path_data(string_t *out, const char *esc, const char *data);
void uri_append_path(string_t *out, const char *path);
void uri_append_query_data(string_t *out, const char *esc, const char *data);
void uri_append_query(string_t *out, const char *query);
void uri_append_fragment_data(string_t *out, const char *esc, const char *data);
void uri_append_fragment(string_t *out, const char *fragment);
#endif
|