ldns documentation

- Main Page
- Related Pages
- Data Structures
- Files

- File List
- Globals

Macros | Typedefs | Enumerations | Functions
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.

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

#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

typedef enum ldns_enum_directive ldns_directive

Definition at line 45 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 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
| ) |  |

Definition at line 182 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 399 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.

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 345 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 368 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 374 of file parse.c.