parse.h

Go to the documentation of this file.
00001 /*
00002  * parse.h 
00003  *
00004  * a Net::DNS like library for C
00005  * LibDNS Team @ NLnet Labs
00006  * (c) NLnet Labs, 2005-2006
00007  * See the file LICENSE for the license
00008  */
00009 
00010 #ifndef LDNS_PARSE_H
00011 #define LDNS_PARSE_H
00012 
00013 #include <ldns/common.h>
00014 #include <ldns/buffer.h>
00015 
00016 #define LDNS_PARSE_SKIP_SPACE           "\f\n\r\v"
00017 #define LDNS_PARSE_NORMAL               " \f\n\r\t\v"
00018 #define LDNS_PARSE_NO_NL                " \t"
00019 #define LDNS_MAX_LINELEN                4096
00020 #define LDNS_MAX_KEYWORDLEN             32
00021 
00022 
00035 enum ldns_enum_directive
00036 {
00037         LDNS_DIR_TTL,
00038         LDNS_DIR_ORIGIN,
00039         LDNS_DIR_INCLUDE
00040 };
00041 typedef enum ldns_enum_directive ldns_directive;
00042 
00053 ssize_t ldns_fget_token(FILE *f, char *token, const char *delim, size_t limit);
00054 
00066 ssize_t ldns_fget_token_l(FILE *f, char *token, const char *delim, size_t limit, int *line_nr);
00067 
00078 ssize_t ldns_bget_token(ldns_buffer *b, char *token, const char *delim, size_t limit);
00079 
00080 /*
00081  * searches for keyword and delim in a file. Gives everything back
00082  * after the keyword + k_del until we hit d_del
00083  * \param[in] f file pointer to read from
00084  * \param[in] keyword keyword to look for
00085  * \param[in] k_del keyword delimeter 
00086  * \param[out] data the data found 
00087  * \param[in] d_del the data delimeter
00088  * \param[in] data_limit maximum size the the data buffer
00089  * \return the number of character read
00090  */
00091 ssize_t ldns_fget_keyword_data(FILE *f, const char *keyword, const char *k_del, char *data, const char *d_del, size_t data_limit);
00092 
00093 /*
00094  * searches for keyword and delim. Gives everything back
00095  * after the keyword + k_del until we hit d_del
00096  * \param[in] f file pointer to read from
00097  * \param[in] keyword keyword to look for
00098  * \param[in] k_del keyword delimeter 
00099  * \param[out] data the data found 
00100  * \param[in] d_del the data delimeter
00101  * \param[in] data_limit maximum size the the data buffer
00102  * \param[in] line_nr pointer to an integer containing the current line number (for
00103 debugging purposes)
00104  * \return the number of character read
00105  */
00106 ssize_t ldns_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);
00107 
00108 /*
00109  * searches for keyword and delim in a buffer. Gives everything back
00110  * after the keyword + k_del until we hit d_del
00111  * \param[in] b buffer pointer to read from
00112  * \param[in] keyword keyword to look for
00113  * \param[in] k_del keyword delimeter 
00114  * \param[out] data the data found 
00115  * \param[in] d_del the data delimeter
00116  * \param[in] data_limit maximum size the the data buffer
00117  * \return the number of character read
00118  */
00119 ssize_t ldns_bget_keyword_data(ldns_buffer *b, const char *keyword, const char *k_del, char *data, const char *d_del, size_t data_limit);
00120 
00128 int ldns_bgetc(ldns_buffer *buffer);
00129 
00137 void ldns_bskipcs(ldns_buffer *buffer, const char *s);
00138 
00146 void ldns_fskipcs(FILE *fp, const char *s);
00147 
00148 
00157 void ldns_fskipcs_l(FILE *fp, const char *s, int *line_nr);
00158 
00159 #endif /* LDNS_PARSE_H */

Generated on Fri Nov 23 00:48:29 2007 for ldns by  doxygen 1.5.3-20071008