parse.h File Reference

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

Go to the source code of this file.

Defines

#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 ldns_enum_directive ldns_directive

Enumerations

enum  ldns_enum_directive { LDNS_DIR_TTL, LDNS_DIR_ORIGIN, LDNS_DIR_INCLUDE }
 

different type of directives in zone files We now deal with $TTL, $ORIGIN and $INCLUDE.

More...

Functions

ssize_t ldns_fget_token (FILE *f, char *token, const char *delim, size_t limit)
 returns a token/char from the stream F.
ssize_t ldns_fget_token_l (FILE *f, char *token, const char *delim, size_t limit, int *line_nr)
 returns a token/char from the stream F.
ssize_t ldns_bget_token (ldns_buffer *b, char *token, const char *delim, size_t limit)
 returns a token/char from the buffer b.
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)
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)
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)
int ldns_bgetc (ldns_buffer *buffer)
 returns the next character from a buffer.
void ldns_bskipcs (ldns_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.
void ldns_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.
void ldns_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.

Detailed Description

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

Definition in file parse.h.


Define Documentation

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

Definition at line 20 of file parse.h.

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

Definition at line 21 of file parse.h.

#define LDNS_PARSE_NO_NL   " \t"

Definition at line 22 of file parse.h.

#define LDNS_MAX_LINELEN   10230

Definition at line 23 of file parse.h.

#define LDNS_MAX_KEYWORDLEN   32

Definition at line 24 of file parse.h.


Typedef Documentation

Definition at line 45 of file parse.h.


Enumeration Type Documentation

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 39 of file parse.h.


Function Documentation

ssize_t ldns_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] *f the file to read from
[out] *token the read token is put here
[in] *delim chars at which the parsing should stop
[in] *limit how 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

Definition at line 25 of file parse.c.

References ldns_fget_token_l().

ssize_t ldns_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] *f the file to read from
[out] *token the token is put here
[in] *delim chars at which the parsing should stop
[in] *limit how much to read. If 0 use builtin maximum
[in] line_nr pointer 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

Definition at line 31 of file parse.c.

References ldns_fskipcs_l(), and LDNS_PARSE_NORMAL.

ssize_t ldns_bget_token ( ldns_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] *b the buffer to read from
[out] *token the token is put here
[in] *delim chars at which the parsing should stop
[in] *limit how 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

Definition at line 217 of file parse.c.

References ldns_bgetc(), ldns_bskipcs(), and LDNS_PARSE_NORMAL.

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 
)

Definition at line 174 of file parse.c.

References ldns_fget_keyword_data_l().

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

Definition at line 417 of file parse.c.

References ldns_bget_token(), LDNS_FREE, LDNS_MAX_KEYWORDLEN, and LDNS_XMALLOC.

int ldns_bgetc ( ldns_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] *buffer buffer to read from
Returns:
EOF on failure otherwise return the character

Definition at line 157 of file buffer.c.

References ldns_struct_buffer::_position, ldns_buffer_available_at(), ldns_buffer_limit(), ldns_buffer_read_u8(), and ldns_buffer_set_position().

void ldns_bskipcs ( ldns_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] *buffer buffer to use
[in] *s characters to skip
Returns:
void

Definition at line 357 of file parse.c.

References ldns_struct_buffer::_limit, ldns_struct_buffer::_position, ldns_buffer_available_at(), and ldns_buffer_read_u8_at().

void ldns_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] *fp file to use
[in] *s characters to skip
Returns:
void

Definition at line 386 of file parse.c.

References ldns_fskipcs_l().

void ldns_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] *fp file to use
[in] *s characters to skip
[in] line_nr pointer to an integer containing the current line number (for debugging purposes)
Returns:
void

Definition at line 392 of file parse.c.


Generated on 22 Sep 2015 for ldns by  doxygen 1.6.1