ldns  1.7.0
Macros | Typedefs | Enumerations | Functions
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 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. More...
 
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. More...
 
ssize_t ldns_bget_token (ldns_buffer *b, char *token, const char *delim, size_t limit)
 returns a token/char from the buffer b. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 

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_PARSE_SKIP_SPACE

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

Definition at line 20 of file parse.h.

◆ LDNS_PARSE_NORMAL

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

Definition at line 21 of file parse.h.

◆ LDNS_PARSE_NO_NL

#define LDNS_PARSE_NO_NL   " \t"

Definition at line 22 of file parse.h.

◆ LDNS_MAX_LINELEN

#define LDNS_MAX_LINELEN   10230

Definition at line 23 of file parse.h.

◆ LDNS_MAX_KEYWORDLEN

#define LDNS_MAX_KEYWORDLEN   32

Definition at line 24 of file parse.h.

Typedef Documentation

◆ ldns_directive

Definition at line 45 of file parse.h.

Enumeration Type Documentation

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

Function Documentation

◆ ldns_fget_token()

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]*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

Definition at line 25 of file parse.c.

References ldns_fget_token_l().

◆ 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]*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

Definition at line 31 of file parse.c.

References ldns_fskipcs_l(), and LDNS_PARSE_NORMAL.

◆ ldns_bget_token()

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]*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

Definition at line 223 of file parse.c.

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

◆ ldns_fget_keyword_data()

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

References ldns_fget_keyword_data_l().

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

◆ ldns_bget_keyword_data()

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

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

◆ ldns_bgetc()

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]*bufferbuffer to read from
Returns
EOF on failure otherwise return the character

Definition at line 157 of file buffer.c.

◆ ldns_bskipcs()

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]*bufferbuffer to use
[in]*scharacters to skip
Returns
void

Definition at line 353 of file parse.c.

◆ ldns_fskipcs()

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]*fpfile to use
[in]*scharacters to skip
Returns
void

Definition at line 376 of file parse.c.

References ldns_fskipcs_l().

◆ 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]*fpfile to use
[in]*scharacters to skip
[in]line_nrpointer to an integer containing the current line number (for debugging purposes)
Returns
void

Definition at line 382 of file parse.c.