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   4096
#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 16 of file parse.h.

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

Definition at line 17 of file parse.h.

#define LDNS_PARSE_NO_NL   " \t"

Definition at line 18 of file parse.h.

#define LDNS_MAX_LINELEN   4096

Definition at line 19 of file parse.h.

#define LDNS_MAX_KEYWORDLEN   32

Definition at line 20 of file parse.h.


Typedef Documentation

typedef enum ldns_enum_directive ldns_directive

Definition at line 41 of file parse.h.


Enumeration Type Documentation

enum ldns_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 35 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 188 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 152 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 
)

Definition at line 160 of file parse.c.

References ldns_fget_token(), ldns_fget_token_l(), LDNS_FREE, LDNS_MAX_KEYWORDLEN, and LDNS_XMALLOC.

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 365 of file parse.c.

References ldns_bget_token(), 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 180 of file buffer.c.

References ldns_struct_buffer::_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 303 of file parse.c.

References ldns_struct_buffer::_limit, and ldns_struct_buffer::_position.

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 334 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 340 of file parse.c.


Generated on Thu Nov 29 13:39:19 2007 for ldns by  doxygen 1.5.2