Electroneum
parse.h File Reference

Go to the source code of this file.

Macros

#define LDNS_PARSE_SKIP_SPACE   "\f\n\r\v"
 
#define LDNS_PARSE_NORMAL   " \f\n\r\t\v"
 
#define LDNS_PARSE_NO_NL   " \t"
 
#define LDNS_MAX_LINELEN   10230
 
#define LDNS_MAX_KEYWORDLEN   32
 

Typedefs

typedef enum sldns_enum_directive sldns_directive
 

Enumerations

enum  sldns_enum_directive { LDNS_DIR_TTL, LDNS_DIR_ORIGIN, LDNS_DIR_INCLUDE }
 

Functions

ssize_t sldns_fget_token (FILE *f, char *token, const char *delim, size_t limit)
 
ssize_t sldns_fget_token_l (FILE *f, char *token, const char *delim, size_t limit, int *line_nr)
 
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_token (struct sldns_buffer *b, char *token, const char *delim, size_t limit)
 
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)
 
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)
 
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)
 
int sldns_bgetc (struct sldns_buffer *buffer)
 
void sldns_bskipcs (struct sldns_buffer *buffer, const char *s)
 
void sldns_fskipcs (FILE *fp, const char *s)
 
void sldns_fskipcs_l (FILE *fp, const char *s, int *line_nr)
 

Detailed Description

Contains some low-level parsing functions, mostly used in the _frm_str family of functions.

Definition in file parse.h.

Macro Definition Documentation

◆ LDNS_MAX_KEYWORDLEN

#define LDNS_MAX_KEYWORDLEN   32

Definition at line 23 of file parse.h.

◆ LDNS_MAX_LINELEN

#define LDNS_MAX_LINELEN   10230

Definition at line 22 of file parse.h.

◆ LDNS_PARSE_NO_NL

#define LDNS_PARSE_NO_NL   " \t"

Definition at line 21 of file parse.h.

◆ LDNS_PARSE_NORMAL

#define LDNS_PARSE_NORMAL   " \f\n\r\t\v"

Definition at line 20 of file parse.h.

◆ LDNS_PARSE_SKIP_SPACE

#define LDNS_PARSE_SKIP_SPACE   "\f\n\r\v"

Definition at line 19 of file parse.h.

Typedef Documentation

◆ sldns_directive

Definition at line 44 of file parse.h.

Enumeration Type Documentation

◆ sldns_enum_directive

different type of directives in zone files We now deal with $TTL, $ORIGIN and $INCLUDE. The latter is not implemented in ldns (yet)

Enumerator
LDNS_DIR_TTL 
LDNS_DIR_ORIGIN 
LDNS_DIR_INCLUDE 

Definition at line 38 of file parse.h.

Function Documentation

◆ sldns_bget_keyword_data()

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_bget_token()

ssize_t sldns_bget_token ( struct sldns_buffer b,
char *  token,
const char *  delim,
size_t  limit 
)

returns a token/char from the buffer b. This function deals with ( and ) in the buffer, and ignores when it finds them.

Parameters
[in]*bthe buffer to read from
[out]*tokenthe token is put here
[in]*delimchars at which the parsing should stop
[in]*limithow much to read. If 0 the builtin maximum is used
Returns
0 on error of EOF of b. Otherwise return the length of what is read

◆ sldns_bget_token_par()

ssize_t sldns_bget_token_par ( struct sldns_buffer b,
char *  token,
const char *  delim,
size_t  limit,
int *  par,
const char *  skipw 
)

returns a token/char from the buffer b. This function deals with ( and ) in the buffer, and ignores when it finds them.

Parameters
[in]*bthe buffer to read from
[out]*tokenthe token is put here
[in]*delimchars at which the parsing should stop
[in]*limithow much to read. If 0 the builtin maximum is used
[in]*parif you pass nonNULL, set to 0 on first call, the parenthesis state is stored in it, for use on next call. User must check it is back to zero after last bget in string (for parse error). If you pass NULL, the entire parenthesized string is read in.
[in]skipwstring with whitespace to skip before the start of the token, like " ", or " \t", or NULL for none.
Returns
0 on error of EOF of b. Otherwise return the length of what is read

◆ sldns_bgetc()

int sldns_bgetc ( struct sldns_buffer buffer)

returns the next character from a buffer. Advances the position pointer with 1. When end of buffer is reached returns EOF. This is the buffer's equivalent for getc().

Parameters
[in]*bufferbuffer to read from
Returns
EOF on failure otherwise return the character

◆ sldns_bskipcs()

void sldns_bskipcs ( struct sldns_buffer buffer,
const char *  s 
)

skips all of the characters in the given string in the buffer, moving the position to the first character that is not in *s.

Parameters
[in]*bufferbuffer to use
[in]*scharacters to skip
Returns
void

◆ sldns_fget_keyword_data()

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 
)

◆ sldns_fget_keyword_data_l()

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 
)

◆ sldns_fget_token()

ssize_t sldns_fget_token ( FILE *  f,
char *  token,
const char *  delim,
size_t  limit 
)

returns a token/char from the stream F. This function deals with ( and ) in the stream, and ignores them when encountered

Parameters
[in]*fthe file to read from
[out]*tokenthe read token is put here
[in]*delimchars at which the parsing should stop
[in]*limithow much to read. If 0 the builtin maximum is used
Returns
0 on error of EOF of the stream F. Otherwise return the length of what is read

◆ sldns_fget_token_l()

ssize_t sldns_fget_token_l ( FILE *  f,
char *  token,
const char *  delim,
size_t  limit,
int *  line_nr 
)

returns a token/char from the stream F. This function deals with ( and ) in the stream, and ignores when it finds them.

Parameters
[in]*fthe file to read from
[out]*tokenthe token is put here
[in]*delimchars at which the parsing should stop
[in]*limithow much to read. If 0 use builtin maximum
[in]line_nrpointer to an integer containing the current line number (for debugging purposes)
Returns
0 on error of EOF of F otherwise return the length of what is read

◆ sldns_fskipcs()

void sldns_fskipcs ( FILE *  fp,
const char *  s 
)

skips all of the characters in the given string in the fp, moving the position to the first character that is not in *s.

Parameters
[in]*fpfile to use
[in]*scharacters to skip
Returns
void

◆ sldns_fskipcs_l()

void sldns_fskipcs_l ( FILE *  fp,
const char *  s,
int *  line_nr 
)

skips all of the characters in the given string in the fp, moving the position to the first character that is not in *s.

Parameters
[in]*fpfile to use
[in]*scharacters to skip
[in]line_nrpointer to an integer containing the current line number (for debugging purposes)
Returns
void