Electroneum
parse.h
Go to the documentation of this file.
1 /*
2  * parse.h
3  *
4  * a Net::DNS like library for C
5  * LibDNS Team @ NLnet Labs
6  * (c) NLnet Labs, 2005-2006
7  * See the file LICENSE for the license
8  */
9 
10 #ifndef LDNS_PARSE_H
11 #define LDNS_PARSE_H
12 
13 struct sldns_buffer;
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 #define LDNS_PARSE_SKIP_SPACE "\f\n\r\v"
20 #define LDNS_PARSE_NORMAL " \f\n\r\t\v"
21 #define LDNS_PARSE_NO_NL " \t"
22 #define LDNS_MAX_LINELEN 10230
23 #define LDNS_MAX_KEYWORDLEN 32
24 
25 
39 {
43 };
45 
56 ssize_t sldns_fget_token(FILE *f, char *token, const char *delim, size_t limit);
57 
69 ssize_t sldns_fget_token_l(FILE *f, char *token, const char *delim, size_t limit, int *line_nr);
70 
87 ssize_t sldns_bget_token_par(struct sldns_buffer *b, char *token, const char *delim, size_t limit, int* par, const char* skipw);
88 
99 ssize_t sldns_bget_token(struct sldns_buffer *b, char *token, const char *delim, size_t limit);
100 
101 /*
102  * searches for keyword and delim in a file. Gives everything back
103  * after the keyword + k_del until we hit d_del
104  * \param[in] f file pointer to read from
105  * \param[in] keyword keyword to look for
106  * \param[in] k_del keyword delimiter
107  * \param[out] data the data found
108  * \param[in] d_del the data delimiter
109  * \param[in] data_limit maximum size the the data buffer
110  * \return the number of character read
111  */
112 ssize_t sldns_fget_keyword_data(FILE *f, const char *keyword, const char *k_del, char *data, const char *d_del, size_t data_limit);
113 
114 /*
115  * searches for keyword and delim. Gives everything back
116  * after the keyword + k_del until we hit d_del
117  * \param[in] f file pointer to read from
118  * \param[in] keyword keyword to look for
119  * \param[in] k_del keyword delimiter
120  * \param[out] data the data found
121  * \param[in] d_del the data delimiter
122  * \param[in] data_limit maximum size the the data buffer
123  * \param[in] line_nr pointer to an integer containing the current line number (for
124 debugging purposes)
125  * \return the number of character read
126  */
127 ssize_t sldns_fget_keyword_data_l(FILE *f, const char *keyword, const char *k_del, char *data, const char *d_del, size_t data_limit, int *line_nr);
128 
129 /*
130  * searches for keyword and delim in a buffer. Gives everything back
131  * after the keyword + k_del until we hit d_del
132  * \param[in] b buffer pointer to read from
133  * \param[in] keyword keyword to look for
134  * \param[in] k_del keyword delimiter
135  * \param[out] data the data found
136  * \param[in] d_del the data delimiter
137  * \param[in] data_limit maximum size the the data buffer
138  * \return the number of character read
139  */
140 ssize_t sldns_bget_keyword_data(struct sldns_buffer *b, const char *keyword, const char *k_del, char *data, const char *d_del, size_t data_limit);
141 
149 int sldns_bgetc(struct sldns_buffer *buffer);
150 
158 void sldns_bskipcs(struct sldns_buffer *buffer, const char *s);
159 
167 void sldns_fskipcs(FILE *fp, const char *s);
168 
169 
178 void sldns_fskipcs_l(FILE *fp, const char *s, int *line_nr);
179 
180 #ifdef __cplusplus
181 }
182 #endif
183 
184 #endif /* LDNS_PARSE_H */
ssize_t sldns_fget_token(FILE *f, char *token, const char *delim, size_t limit)
ssize_t sldns_bget_token(struct sldns_buffer *b, char *token, const char *delim, size_t limit)
ssize_t sldns_bget_token_par(struct sldns_buffer *b, char *token, const char *delim, size_t limit, int *par, const char *skipw)
ssize_t sldns_bget_keyword_data(struct sldns_buffer *b, const char *keyword, const char *k_del, char *data, const char *d_del, size_t data_limit)
sldns_enum_directive
Definition: parse.h:38
ssize_t sldns_fget_keyword_data_l(FILE *f, const char *keyword, const char *k_del, char *data, const char *d_del, size_t data_limit, int *line_nr)
void sldns_bskipcs(struct sldns_buffer *buffer, const char *s)
ssize_t sldns_fget_keyword_data(FILE *f, const char *keyword, const char *k_del, char *data, const char *d_del, size_t data_limit)
int sldns_bgetc(struct sldns_buffer *buffer)
void sldns_fskipcs(FILE *fp, const char *s)
void sldns_fskipcs_l(FILE *fp, const char *s, int *line_nr)
ssize_t sldns_fget_token_l(FILE *f, char *token, const char *delim, size_t limit, int *line_nr)
enum sldns_enum_directive sldns_directive
Definition: parse.h:44