00001
00002
00003
00004
00005
00006
00007
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
00027 enum ldns_enum_directive
00028 {
00029 LDNS_DIR_TTL,
00030 LDNS_DIR_ORIGIN,
00031 LDNS_DIR_INCLUDE
00032 };
00033 typedef enum ldns_enum_directive ldns_directive;
00034
00045 ssize_t ldns_fget_token(FILE *f, char *token, const char *delim, size_t limit);
00046
00058 ssize_t ldns_fget_token_l(FILE *f, char *token, const char *delim, size_t limit, int *line_nr);
00059
00060
00061
00062
00063
00064 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);
00065
00066
00067
00068
00069
00070
00071 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);
00072
00083 ssize_t ldns_bget_token(ldns_buffer *b, char *token, const char *delim, size_t limit);
00084
00085
00086
00087
00088
00089 ssize_t ldns_bget_keyword_data(ldns_buffer *b, const char *keyword, const char *k_del, char *data, const char *d_del);
00090
00098 char *ldns_str_remove_comment(char *str);
00099
00107 int ldns_bgetc(ldns_buffer *buffer);
00108
00116 void ldns_bskipcs(ldns_buffer *buffer, const char *s);
00117
00125 void ldns_fskipcs(FILE *fp, const char *s);
00126
00127
00136 void ldns_fskipcs_l(FILE *fp, const char *s, int *line_nr);
00137
00138 #endif