[ SYSTEM ]: Linux srv.persadacompanies.com 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64
[ SERVER ]: Apache | PHP: 8.4.19
[ USER ]: persadamedika | IP: 45.64.1.108
GEFORCE FILE MANAGER
/
usr
/
include
/
bind9
/
isc
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📄 aes.h
1,080 B
SET
[ EDIT ]
|
[ DEL ]
📄 app.h
10,478 B
SET
[ EDIT ]
|
[ DEL ]
📄 assertions.h
2,907 B
SET
[ EDIT ]
|
[ DEL ]
📄 atomic.h
4,168 B
SET
[ EDIT ]
|
[ DEL ]
📄 backtrace.h
3,891 B
SET
[ EDIT ]
|
[ DEL ]
📄 base32.h
4,453 B
SET
[ EDIT ]
|
[ DEL ]
📄 base64.h
2,866 B
SET
[ EDIT ]
|
[ DEL ]
📄 bind9.h
830 B
SET
[ EDIT ]
|
[ DEL ]
📄 boolean.h
594 B
SET
[ EDIT ]
|
[ DEL ]
📄 buffer.h
26,268 B
SET
[ EDIT ]
|
[ DEL ]
📄 bufferlist.h
1,452 B
SET
[ EDIT ]
|
[ DEL ]
📄 cmocka.h
1,383 B
SET
[ EDIT ]
|
[ DEL ]
📄 commandline.h
1,713 B
SET
[ EDIT ]
|
[ DEL ]
📄 condition.h
1,478 B
SET
[ EDIT ]
|
[ DEL ]
📄 counter.h
1,926 B
SET
[ EDIT ]
|
[ DEL ]
📄 crc64.h
998 B
SET
[ EDIT ]
|
[ DEL ]
📄 deprecated.h
623 B
SET
[ EDIT ]
|
[ DEL ]
📄 dir.h
1,598 B
SET
[ EDIT ]
|
[ DEL ]
📄 endian.h
4,778 B
SET
[ EDIT ]
|
[ DEL ]
📄 entropy.h
10,373 B
SET
[ EDIT ]
|
[ DEL ]
📄 errno.h
659 B
SET
[ EDIT ]
|
[ DEL ]
📄 errno2result.h
902 B
SET
[ EDIT ]
|
[ DEL ]
📄 error.h
1,430 B
SET
[ EDIT ]
|
[ DEL ]
📄 event.h
3,053 B
SET
[ EDIT ]
|
[ DEL ]
📄 eventclass.h
1,381 B
SET
[ EDIT ]
|
[ DEL ]
📄 file.h
11,667 B
SET
[ EDIT ]
|
[ DEL ]
📄 formatcheck.h
893 B
SET
[ EDIT ]
|
[ DEL ]
📄 fsaccess.h
7,442 B
SET
[ EDIT ]
|
[ DEL ]
📄 hash.h
7,662 B
SET
[ EDIT ]
|
[ DEL ]
📄 heap.h
5,264 B
SET
[ EDIT ]
|
[ DEL ]
📄 hex.h
2,806 B
SET
[ EDIT ]
|
[ DEL ]
📄 hmacmd5.h
1,787 B
SET
[ EDIT ]
|
[ DEL ]
📄 hmacsha.h
4,511 B
SET
[ EDIT ]
|
[ DEL ]
📄 ht.h
4,396 B
SET
[ EDIT ]
|
[ DEL ]
📄 httpd.h
2,318 B
SET
[ EDIT ]
|
[ DEL ]
📄 int.h
1,088 B
SET
[ EDIT ]
|
[ DEL ]
📄 interfaceiter.h
3,120 B
SET
[ EDIT ]
|
[ DEL ]
📄 iterated_hash.h
1,046 B
SET
[ EDIT ]
|
[ DEL ]
📄 json.h
1,459 B
SET
[ EDIT ]
|
[ DEL ]
📄 keyboard.h
989 B
SET
[ EDIT ]
|
[ DEL ]
📄 lang.h
637 B
SET
[ EDIT ]
|
[ DEL ]
📄 lex.h
9,771 B
SET
[ EDIT ]
|
[ DEL ]
📄 lfsr.h
2,958 B
SET
[ EDIT ]
|
[ DEL ]
📄 lib.h
1,068 B
SET
[ EDIT ]
|
[ DEL ]
📄 likely.h
818 B
SET
[ EDIT ]
|
[ DEL ]
📄 list.h
5,751 B
SET
[ EDIT ]
|
[ DEL ]
📄 log.h
28,734 B
SET
[ EDIT ]
|
[ DEL ]
📄 magic.h
994 B
SET
[ EDIT ]
|
[ DEL ]
📄 md5.h
2,380 B
SET
[ EDIT ]
|
[ DEL ]
📄 mem.h
21,110 B
SET
[ EDIT ]
|
[ DEL ]
📄 meminfo.h
710 B
SET
[ EDIT ]
|
[ DEL ]
📄 msgcat.h
2,726 B
SET
[ EDIT ]
|
[ DEL ]
📄 msgs.h
8,422 B
SET
[ EDIT ]
|
[ DEL ]
📄 mutex.h
3,524 B
SET
[ EDIT ]
|
[ DEL ]
📄 mutexblock.h
1,375 B
SET
[ EDIT ]
|
[ DEL ]
📄 net.h
10,534 B
SET
[ EDIT ]
|
[ DEL ]
📄 netaddr.h
4,590 B
SET
[ EDIT ]
|
[ DEL ]
📄 netdb.h
863 B
SET
[ EDIT ]
|
[ DEL ]
📄 netscope.h
967 B
SET
[ EDIT ]
|
[ DEL ]
📄 offset.h
700 B
SET
[ EDIT ]
|
[ DEL ]
📄 once.h
983 B
SET
[ EDIT ]
|
[ DEL ]
📄 ondestroy.h
2,799 B
SET
[ EDIT ]
|
[ DEL ]
📄 os.h
671 B
SET
[ EDIT ]
|
[ DEL ]
📄 parseint.h
1,542 B
SET
[ EDIT ]
|
[ DEL ]
📄 platform.h
9,717 B
SET
[ EDIT ]
|
[ DEL ]
📄 pool.h
3,502 B
SET
[ EDIT ]
|
[ DEL ]
📄 portset.h
3,295 B
SET
[ EDIT ]
|
[ DEL ]
📄 print.h
2,475 B
SET
[ EDIT ]
|
[ DEL ]
📄 queue.h
5,204 B
SET
[ EDIT ]
|
[ DEL ]
📄 quota.h
2,440 B
SET
[ EDIT ]
|
[ DEL ]
📄 radix.h
6,491 B
SET
[ EDIT ]
|
[ DEL ]
📄 random.h
3,582 B
SET
[ EDIT ]
|
[ DEL ]
📄 ratelimiter.h
3,497 B
SET
[ EDIT ]
|
[ DEL ]
📄 refcount.h
8,193 B
SET
[ EDIT ]
|
[ DEL ]
📄 regex.h
767 B
SET
[ EDIT ]
|
[ DEL ]
📄 region.h
2,034 B
SET
[ EDIT ]
|
[ DEL ]
📄 resource.h
2,862 B
SET
[ EDIT ]
|
[ DEL ]
📄 result.h
4,982 B
SET
[ EDIT ]
|
[ DEL ]
📄 resultclass.h
1,599 B
SET
[ EDIT ]
|
[ DEL ]
📄 rwlock.h
3,807 B
SET
[ EDIT ]
|
[ DEL ]
📄 safe.h
1,352 B
SET
[ EDIT ]
|
[ DEL ]
📄 serial.h
1,368 B
SET
[ EDIT ]
|
[ DEL ]
📄 sha1.h
1,556 B
SET
[ EDIT ]
|
[ DEL ]
📄 sha2.h
5,733 B
SET
[ EDIT ]
|
[ DEL ]
📄 siphash.h
734 B
SET
[ EDIT ]
|
[ DEL ]
📄 sockaddr.h
6,039 B
SET
[ EDIT ]
|
[ DEL ]
📄 socket.h
36,655 B
SET
[ EDIT ]
|
[ DEL ]
📄 stat.h
806 B
SET
[ EDIT ]
|
[ DEL ]
📄 stats.h
3,709 B
SET
[ EDIT ]
|
[ DEL ]
📄 stdatomic.h
5,250 B
SET
[ EDIT ]
|
[ DEL ]
📄 stdio.h
1,787 B
SET
[ EDIT ]
|
[ DEL ]
📄 stdlib.h
704 B
SET
[ EDIT ]
|
[ DEL ]
📄 stdtime.h
1,065 B
SET
[ EDIT ]
|
[ DEL ]
📄 strerror.h
777 B
SET
[ EDIT ]
|
[ DEL ]
📄 string.h
6,019 B
SET
[ EDIT ]
|
[ DEL ]
📄 symtab.h
4,326 B
SET
[ EDIT ]
|
[ DEL ]
📄 syslog.h
844 B
SET
[ EDIT ]
|
[ DEL ]
📄 task.h
21,544 B
SET
[ EDIT ]
|
[ DEL ]
📄 taskpool.h
3,709 B
SET
[ EDIT ]
|
[ DEL ]
📄 thread.h
1,506 B
SET
[ EDIT ]
|
[ DEL ]
📄 time.h
8,876 B
SET
[ EDIT ]
|
[ DEL ]
📄 timer.h
10,795 B
SET
[ EDIT ]
|
[ DEL ]
📄 tm.h
895 B
SET
[ EDIT ]
|
[ DEL ]
📄 types.h
5,780 B
SET
[ EDIT ]
|
[ DEL ]
📄 utf8.h
928 B
SET
[ EDIT ]
|
[ DEL ]
📄 util.h
10,537 B
SET
[ EDIT ]
|
[ DEL ]
📄 version.h
689 B
SET
[ EDIT ]
|
[ DEL ]
📄 xml.h
1,094 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: lex.h
/* * Copyright (C) Internet Systems Consortium, Inc. ("ISC") * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, you can obtain one at https://mozilla.org/MPL/2.0/. * * See the COPYRIGHT file distributed with this work for additional * information regarding copyright ownership. */ #ifndef ISC_LEX_H #define ISC_LEX_H 1 /***** ***** Module Info *****/ /*! \file isc/lex.h * \brief The "lex" module provides a lightweight tokenizer. It can operate * on files or buffers, and can handle "include". It is designed for * parsing of DNS master files and the BIND configuration file, but * should be general enough to tokenize other things, e.g. HTTP. * * \li MP: * No synchronization is provided. Clients must ensure exclusive * access. * * \li Reliability: * No anticipated impact. * * \li Resources: * TBS * * \li Security: * No anticipated impact. * * \li Standards: * None. */ /*** *** Imports ***/ #include <stdbool.h> #include <stdio.h> #include <isc/lang.h> #include <isc/region.h> #include <isc/types.h> ISC_LANG_BEGINDECLS /*** *** Options ***/ /*@{*/ /*! * Various options for isc_lex_gettoken(). */ #define ISC_LEXOPT_EOL 0x01 /*%< Want end-of-line token. */ #define ISC_LEXOPT_EOF 0x02 /*%< Want end-of-file token. */ #define ISC_LEXOPT_INITIALWS 0x04 /*%< Want initial whitespace. */ #define ISC_LEXOPT_NUMBER 0x08 /*%< Recognize numbers. */ #define ISC_LEXOPT_QSTRING 0x10 /*%< Recognize qstrings. */ /*@}*/ /*@{*/ /*! * The ISC_LEXOPT_DNSMULTILINE option handles the processing of '(' and ')' in * the DNS master file format. If this option is set, then the * ISC_LEXOPT_INITIALWS and ISC_LEXOPT_EOL options will be ignored when * the paren count is > 0. To use this option, '(' and ')' must be special * characters. */ #define ISC_LEXOPT_DNSMULTILINE 0x20 /*%< Handle '(' and ')'. */ #define ISC_LEXOPT_NOMORE 0x40 /*%< Want "no more" token. */ #define ISC_LEXOPT_CNUMBER 0x80 /*%< Recognize octal and hex. */ #define ISC_LEXOPT_ESCAPE 0x100 /*%< Recognize escapes. */ #define ISC_LEXOPT_QSTRINGMULTILINE 0x200 /*%< Allow multiline "" strings */ #define ISC_LEXOPT_OCTAL 0x400 /*%< Expect a octal number. */ #define ISC_LEXOPT_BTEXT 0x800 /*%< Bracketed text. */ /*@}*/ /*@{*/ /*! * Various commenting styles, which may be changed at any time with * isc_lex_setcomments(). */ #define ISC_LEXCOMMENT_C 0x01 #define ISC_LEXCOMMENT_CPLUSPLUS 0x02 #define ISC_LEXCOMMENT_SHELL 0x04 #define ISC_LEXCOMMENT_DNSMASTERFILE 0x08 /*@}*/ /*** *** Types ***/ /*! Lex */ typedef char isc_lexspecials_t[256]; /* Tokens */ typedef enum { isc_tokentype_unknown = 0, isc_tokentype_string = 1, isc_tokentype_number = 2, isc_tokentype_qstring = 3, isc_tokentype_eol = 4, isc_tokentype_eof = 5, isc_tokentype_initialws = 6, isc_tokentype_special = 7, isc_tokentype_nomore = 8, isc_tokentype_btext = 8 } isc_tokentype_t; typedef union { char as_char; unsigned long as_ulong; isc_region_t as_region; isc_textregion_t as_textregion; void * as_pointer; } isc_tokenvalue_t; typedef struct isc_token { isc_tokentype_t type; isc_tokenvalue_t value; } isc_token_t; /*** *** Functions ***/ isc_result_t isc_lex_create(isc_mem_t *mctx, size_t max_token, isc_lex_t **lexp); /*%< * Create a lexer. * * 'max_token' is a hint of the number of bytes in the largest token. * * Requires: *\li '*lexp' is a valid lexer. * * Ensures: *\li On success, *lexp is attached to the newly created lexer. * * Returns: *\li #ISC_R_SUCCESS *\li #ISC_R_NOMEMORY */ void isc_lex_destroy(isc_lex_t **lexp); /*%< * Destroy the lexer. * * Requires: *\li '*lexp' is a valid lexer. * * Ensures: *\li *lexp == NULL */ unsigned int isc_lex_getcomments(isc_lex_t *lex); /*%< * Return the current lexer commenting styles. * * Requires: *\li 'lex' is a valid lexer. * * Returns: *\li The commenting styles which are currently allowed. */ void isc_lex_setcomments(isc_lex_t *lex, unsigned int comments); /*%< * Set allowed lexer commenting styles. * * Requires: *\li 'lex' is a valid lexer. * *\li 'comments' has meaningful values. */ void isc_lex_getspecials(isc_lex_t *lex, isc_lexspecials_t specials); /*%< * Put the current list of specials into 'specials'. * * Requires: *\li 'lex' is a valid lexer. */ void isc_lex_setspecials(isc_lex_t *lex, isc_lexspecials_t specials); /*!< * The characters in 'specials' are returned as tokens. Along with * whitespace, they delimit strings and numbers. * * Note: *\li Comment processing takes precedence over special character * recognition. * * Requires: *\li 'lex' is a valid lexer. */ isc_result_t isc_lex_openfile(isc_lex_t *lex, const char *filename); /*%< * Open 'filename' and make it the current input source for 'lex'. * * Requires: *\li 'lex' is a valid lexer. * *\li filename is a valid C string. * * Returns: *\li #ISC_R_SUCCESS *\li #ISC_R_NOMEMORY Out of memory *\li #ISC_R_NOTFOUND File not found *\li #ISC_R_NOPERM No permission to open file *\li #ISC_R_FAILURE Couldn't open file, not sure why *\li #ISC_R_UNEXPECTED */ isc_result_t isc_lex_openstream(isc_lex_t *lex, FILE *stream); /*%< * Make 'stream' the current input source for 'lex'. * * Requires: *\li 'lex' is a valid lexer. * *\li 'stream' is a valid C stream. * * Returns: *\li #ISC_R_SUCCESS *\li #ISC_R_NOMEMORY Out of memory */ isc_result_t isc_lex_openbuffer(isc_lex_t *lex, isc_buffer_t *buffer); /*%< * Make 'buffer' the current input source for 'lex'. * * Requires: *\li 'lex' is a valid lexer. * *\li 'buffer' is a valid buffer. * * Returns: *\li #ISC_R_SUCCESS *\li #ISC_R_NOMEMORY Out of memory */ isc_result_t isc_lex_close(isc_lex_t *lex); /*%< * Close the most recently opened object (i.e. file or buffer). * * Returns: *\li #ISC_R_SUCCESS *\li #ISC_R_NOMORE No more input sources */ isc_result_t isc_lex_gettoken(isc_lex_t *lex, unsigned int options, isc_token_t *tokenp); /*%< * Get the next token. * * Requires: *\li 'lex' is a valid lexer. * *\li 'lex' has an input source. * *\li 'options' contains valid options. * *\li '*tokenp' is a valid pointer. * * Returns: *\li #ISC_R_SUCCESS *\li #ISC_R_UNEXPECTEDEND *\li #ISC_R_NOMEMORY * * These two results are returned only if their corresponding lexer * options are not set. * *\li #ISC_R_EOF End of input source *\li #ISC_R_NOMORE No more input sources */ isc_result_t isc_lex_getmastertoken(isc_lex_t *lex, isc_token_t *token, isc_tokentype_t expect, bool eol); /*%< * Get the next token from a DNS master file type stream. This is a * convenience function that sets appropriate options and handles quoted * strings and end of line correctly for master files. It also ungets * unexpected tokens. If `eol` is set then expect end-of-line otherwise * eol is a error. * * Requires: *\li 'lex' is a valid lexer. * *\li 'token' is a valid pointer * * Returns: * * \li any return code from isc_lex_gettoken(). */ isc_result_t isc_lex_getoctaltoken(isc_lex_t *lex, isc_token_t *token, bool eol); /*%< * Get the next token from a DNS master file type stream. This is a * convenience function that sets appropriate options and handles end * of line correctly for master files. It also ungets unexpected tokens. * If `eol` is set then expect end-of-line otherwise eol is a error. * * Requires: *\li 'lex' is a valid lexer. * *\li 'token' is a valid pointer * * Returns: * * \li any return code from isc_lex_gettoken(). */ void isc_lex_ungettoken(isc_lex_t *lex, isc_token_t *tokenp); /*%< * Unget the current token. * * Requires: *\li 'lex' is a valid lexer. * *\li 'lex' has an input source. * *\li 'tokenp' points to a valid token. * *\li There is no ungotten token already. */ void isc_lex_getlasttokentext(isc_lex_t *lex, isc_token_t *tokenp, isc_region_t *r); /*%< * Returns a region containing the text of the last token returned. * * Requires: *\li 'lex' is a valid lexer. * *\li 'lex' has an input source. * *\li 'tokenp' points to a valid token. * *\li A token has been gotten and not ungotten. */ char * isc_lex_getsourcename(isc_lex_t *lex); /*%< * Return the input source name. * * Requires: *\li 'lex' is a valid lexer. * * Returns: * \li source name or NULL if no current source. *\li result valid while current input source exists. */ unsigned long isc_lex_getsourceline(isc_lex_t *lex); /*%< * Return the input source line number. * * Requires: *\li 'lex' is a valid lexer. * * Returns: *\li Current line number or 0 if no current source. */ isc_result_t isc_lex_setsourcename(isc_lex_t *lex, const char *name); /*%< * Assigns a new name to the input source. * * Requires: * * \li 'lex' is a valid lexer. * * Returns: * \li #ISC_R_SUCCESS * \li #ISC_R_NOMEMORY * \li #ISC_R_NOTFOUND - there are no sources. */ isc_result_t isc_lex_setsourceline(isc_lex_t *lex, unsigned long line); /*%< * Assigns a new line number to the input source. This can be used * when parsing a buffer that's been excerpted from the middle a file, * allowing logged messages to display the correct line number, * rather than the line number within the buffer. * * Requires: * * \li 'lex' is a valid lexer. * * Returns: * \li #ISC_R_SUCCESS * \li #ISC_R_NOTFOUND - there are no sources. */ bool isc_lex_isfile(isc_lex_t *lex); /*%< * Return whether the current input source is a file. * * Requires: *\li 'lex' is a valid lexer. * * Returns: * \li #true if the current input is a file, *\li #false otherwise. */ ISC_LANG_ENDDECLS #endif /* ISC_LEX_H */