mirror of
https://github.com/zeek/zeek.git
synced 2025-10-06 16:48:19 +00:00
Move a few of the zeek::util methods and variables to zeek::util::detail
This commit is contained in:
parent
5a2ac84eee
commit
ddf48d7529
35 changed files with 1221 additions and 1226 deletions
478
src/util.h
478
src/util.h
|
@ -50,7 +50,6 @@
|
|||
extern HeapLeakChecker* heap_checker;
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#ifdef HAVE_LINUX
|
||||
|
@ -140,96 +139,21 @@ inline int safe_vsnprintf(char* str, size_t size, const char* format, va_list al
|
|||
extern "C" void out_of_memory(const char* where);
|
||||
|
||||
namespace zeek::util {
|
||||
|
||||
template <class T>
|
||||
void delete_each(T* t)
|
||||
{
|
||||
typedef typename T::iterator iterator;
|
||||
for ( iterator it = t->begin(); it != t->end(); ++it )
|
||||
delete *it;
|
||||
}
|
||||
namespace detail {
|
||||
|
||||
std::string extract_ip(const std::string& i);
|
||||
std::string extract_ip_and_len(const std::string& i, int* len);
|
||||
|
||||
inline void bytetohex(unsigned char byte, char* hex_out)
|
||||
{
|
||||
static constexpr char hex_chars[] = "0123456789abcdef";
|
||||
hex_out[0] = hex_chars[(byte & 0xf0) >> 4];
|
||||
hex_out[1] = hex_chars[byte & 0x0f];
|
||||
}
|
||||
|
||||
std::string get_unescaped_string(const std::string& str);
|
||||
|
||||
zeek::ODesc* get_escaped_string(zeek::ODesc* d, const char* str, size_t len,
|
||||
bool escape_all);
|
||||
std::string get_escaped_string(const char* str, size_t len, bool escape_all);
|
||||
|
||||
inline std::string get_escaped_string(const std::string& str, bool escape_all)
|
||||
{
|
||||
return get_escaped_string(str.data(), str.length(), escape_all);
|
||||
}
|
||||
|
||||
std::vector<std::string>* tokenize_string(std::string_view input,
|
||||
std::string_view delim,
|
||||
std::vector<std::string>* rval = nullptr, int limit = 0);
|
||||
|
||||
std::vector<std::string_view> tokenize_string(std::string_view input, const char delim) noexcept;
|
||||
|
||||
extern char* copy_string(const char* s);
|
||||
extern int streq(const char* s1, const char* s2);
|
||||
|
||||
// Returns the character corresponding to the given escape sequence (s points
|
||||
// just past the '\'), and updates s to point just beyond the last character
|
||||
// of the sequence.
|
||||
extern int expand_escape(const char*& s);
|
||||
|
||||
extern char* skip_whitespace(char* s);
|
||||
extern const char* skip_whitespace(const char* s);
|
||||
extern char* skip_whitespace(char* s, char* end_of_s);
|
||||
extern const char* skip_whitespace(const char* s, const char* end_of_s);
|
||||
extern char* skip_digits(char* s);
|
||||
extern char* get_word(char*& s);
|
||||
extern void get_word(int length, const char* s, int& pwlen, const char*& pw);
|
||||
extern void to_upper(char* s);
|
||||
extern std::string to_upper(const std::string& s);
|
||||
extern int decode_hex(char ch);
|
||||
extern unsigned char encode_hex(int h);
|
||||
extern const char* strpbrk_n(size_t len, const char* s, const char* charset);
|
||||
template<class T> int atoi_n(int len, const char* s, const char** end, int base, T& result);
|
||||
extern char* uitoa_n(uint64_t value, char* str, int n, int base, const char* prefix=nullptr);
|
||||
int strstr_n(const int big_len, const unsigned char* big,
|
||||
const int little_len, const unsigned char* little);
|
||||
extern int fputs(int len, const char* s, FILE* fp);
|
||||
extern bool is_printable(const char* s, int len);
|
||||
|
||||
// Return a lower-cased version of the string.
|
||||
extern std::string strtolower(const std::string& s);
|
||||
|
||||
extern const char* fmt_bytes(const char* data, int len);
|
||||
|
||||
// Note: returns a pointer into a shared buffer.
|
||||
extern const char* vfmt(const char* format, va_list args);
|
||||
// Note: returns a pointer into a shared buffer.
|
||||
extern const char* fmt(const char* format, ...)
|
||||
__attribute__((format (printf, 1, 2)));
|
||||
extern const char* fmt_access_time(double time);
|
||||
|
||||
extern bool ensure_intermediate_dirs(const char* dirname);
|
||||
extern bool ensure_dir(const char *dirname);
|
||||
|
||||
// Returns true if path exists and is a directory.
|
||||
bool is_dir(const std::string& path);
|
||||
|
||||
// Returns true if path exists and is a file.
|
||||
bool is_file(const std::string& path);
|
||||
|
||||
// Replaces all occurences of *o* in *s* with *n*.
|
||||
extern std::string strreplace(const std::string& s, const std::string& o, const std::string& n);
|
||||
|
||||
// Remove all leading and trailing white space from string.
|
||||
extern std::string strstrip(std::string s);
|
||||
|
||||
extern void hmac_md5(size_t size, const unsigned char* bytes,
|
||||
unsigned char digest[16]);
|
||||
|
||||
|
@ -251,6 +175,46 @@ extern bool have_random_seed();
|
|||
|
||||
extern uint64_t rand64bit();
|
||||
|
||||
/**
|
||||
* A platform-independent PRNG implementation. Note that this is not
|
||||
* necessarily a "statistically sound" implementation as the main purpose is
|
||||
* not for production use, but rather for regression testing.
|
||||
* @param state The value used to generate the next random number.
|
||||
* @return A new random value generated from *state* and that can passed
|
||||
* back into subsequent calls to generate further random numbers.
|
||||
*/
|
||||
long int prng(long int state);
|
||||
|
||||
/**
|
||||
* Wrapper for system random() in the default case, but when running in
|
||||
* deterministic mode, uses the platform-independent zeek::prng()
|
||||
* to obtain consistent results since implementations of rand() may vary.
|
||||
* @return A value in the range [0, zeek::max_random()].
|
||||
*/
|
||||
long int random_number();
|
||||
|
||||
/**
|
||||
* @return The maximum value that can be returned from zeek::random_number().
|
||||
* When not using deterministic-mode, this is always equivalent to RAND_MAX.
|
||||
*/
|
||||
long int max_random();
|
||||
|
||||
/**
|
||||
* Wrapper for system srandom() in the default case, but when running in
|
||||
* deterministic mode, updates the state used for calling zeek::prng()
|
||||
* inside of zeek::random_number().
|
||||
* @param seed Value to use for initializing the PRNG.
|
||||
*/
|
||||
void seed_random(unsigned int seed);
|
||||
|
||||
/**
|
||||
* Set the process/thread name. May not be supported on all OSs.
|
||||
* @param name new name for the process/thread. OS limitations typically
|
||||
* truncate the name to 15 bytes maximum.
|
||||
* @param tid handle of thread whose name shall change
|
||||
*/
|
||||
void set_thread_name(const char* name, pthread_t tid = pthread_self());
|
||||
|
||||
// Each event source that may generate events gets an internally unique ID.
|
||||
// This is always LOCAL for a local Bro. For remote event sources, it gets
|
||||
// assigned by the RemoteSerializer.
|
||||
|
@ -261,23 +225,14 @@ extern uint64_t rand64bit();
|
|||
|
||||
using SourceID = std::uintptr_t;
|
||||
#define PRI_SOURCE_ID PRI_PTR_COMPAT_UINT
|
||||
static const SourceID SOURCE_LOCAL = 0;
|
||||
constexpr SourceID SOURCE_LOCAL = 0;
|
||||
|
||||
// TODO: This is a temporary marker to flag events coming in via Broker.
|
||||
// Those are remote events but we don't have any further peer informationa
|
||||
// available for them (as the old communication code would have). Once we
|
||||
// remove RemoteSerializer, we can turn the SourceID into a simple boolean
|
||||
// indicating whether it's a local or remote event.
|
||||
static const SourceID SOURCE_BROKER = 0xffffffff;
|
||||
|
||||
extern void pinpoint();
|
||||
extern int int_list_cmp(const void* v1, const void* v2);
|
||||
|
||||
extern const std::string& zeek_path();
|
||||
extern const char* zeek_magic_path();
|
||||
extern const char* zeek_plugin_path();
|
||||
extern const char* zeek_plugin_activate();
|
||||
extern std::string zeek_prefixes();
|
||||
constexpr SourceID SOURCE_BROKER = 0xffffffff;
|
||||
|
||||
extern const std::array<std::string, 2> script_extensions;
|
||||
|
||||
|
@ -288,7 +243,6 @@ bool is_package_loader(const std::string& path);
|
|||
|
||||
extern void add_to_zeek_path(const std::string& dir);
|
||||
|
||||
|
||||
/**
|
||||
* Wrapper class for functions like dirname(3) or basename(3) that won't
|
||||
* modify the path argument and may optionally abort execution on error.
|
||||
|
@ -309,31 +263,6 @@ protected:
|
|||
|
||||
};
|
||||
|
||||
class SafeDirname : public SafePathOp {
|
||||
public:
|
||||
|
||||
explicit SafeDirname(const char* path, bool error_aborts = true);
|
||||
explicit SafeDirname(const std::string& path, bool error_aborts = true);
|
||||
|
||||
private:
|
||||
|
||||
void DoFunc(const std::string& path, bool error_aborts = true);
|
||||
};
|
||||
|
||||
class SafeBasename : public SafePathOp {
|
||||
public:
|
||||
|
||||
explicit SafeBasename(const char* path, bool error_aborts = true);
|
||||
explicit SafeBasename(const std::string& path, bool error_aborts = true);
|
||||
|
||||
private:
|
||||
|
||||
void DoFunc(const std::string& path, bool error_aborts = true);
|
||||
};
|
||||
|
||||
std::string implode_string_vector(const std::vector<std::string>& v,
|
||||
const std::string& delim = "\n");
|
||||
|
||||
/**
|
||||
* Flatten a script name by replacing '/' path separators with '.'.
|
||||
* @param file A path to a Zeek script. If it is a __load__.zeek, that part
|
||||
|
@ -367,6 +296,161 @@ std::string without_zeekpath_component(std::string_view path);
|
|||
*/
|
||||
std::string get_exe_path(const std::string& invocation);
|
||||
|
||||
/** Opens a Zeek script package.
|
||||
* @param path Location of a Zeek script package (a directory). Will be changed
|
||||
* to the path of the package's loader script.
|
||||
* @param mode An fopen(3) mode.
|
||||
* @return The return value of fopen(3) on the loader script or null if one
|
||||
* doesn't exist.
|
||||
*/
|
||||
FILE* open_package(std::string& path, const std::string& mode = "r");
|
||||
|
||||
// This mimics the script-level function with the same name.
|
||||
const char* log_file_name(const char* tag);
|
||||
|
||||
// Terminates processing gracefully, similar to pressing CTRL-C.
|
||||
void terminate_processing();
|
||||
|
||||
// Sets the current status of the Zeek process to the given string.
|
||||
// If the option --status-file has been set, this is written into
|
||||
// the the corresponding file. Otherwise, the function is a no-op.
|
||||
void set_processing_status(const char* status, const char* reason);
|
||||
|
||||
// Renames the given file to a new temporary name, and opens a new file with
|
||||
// the original name. Returns new file or NULL on error. Inits rotate_info if
|
||||
// given (open time is set network time).
|
||||
extern FILE* rotate_file(const char* name, zeek::RecordVal* rotate_info);
|
||||
|
||||
// Parse a time string of the form "HH:MM" (as used for the rotation base
|
||||
// time) into a double representing the number of seconds. Returns -1 if the
|
||||
// string cannot be parsed. The function's result is intended to be used with
|
||||
// calc_next_rotate().
|
||||
//
|
||||
// This function is not thread-safe.
|
||||
double parse_rotate_base_time(const char* rotate_base_time);
|
||||
|
||||
// Calculate the duration until the next time a file is to be rotated, based
|
||||
// on the given rotate_interval and rotate_base_time. 'current' the the
|
||||
// current time to be used as base, 'rotate_interval' the rotation interval,
|
||||
// and 'base' the value returned by parse_rotate_base_time(). For the latter,
|
||||
// if the function returned -1, that's fine, calc_next_rotate() handles that.
|
||||
//
|
||||
// This function is thread-safe.
|
||||
double calc_next_rotate(double current, double rotate_interval, double base);
|
||||
|
||||
} // namespace detail
|
||||
|
||||
template <class T>
|
||||
void delete_each(T* t)
|
||||
{
|
||||
typedef typename T::iterator iterator;
|
||||
for ( iterator it = t->begin(); it != t->end(); ++it )
|
||||
delete *it;
|
||||
}
|
||||
|
||||
inline void bytetohex(unsigned char byte, char* hex_out)
|
||||
{
|
||||
static constexpr char hex_chars[] = "0123456789abcdef";
|
||||
hex_out[0] = hex_chars[(byte & 0xf0) >> 4];
|
||||
hex_out[1] = hex_chars[byte & 0x0f];
|
||||
}
|
||||
|
||||
std::string get_unescaped_string(const std::string& str);
|
||||
|
||||
zeek::ODesc* get_escaped_string(zeek::ODesc* d, const char* str, size_t len,
|
||||
bool escape_all);
|
||||
std::string get_escaped_string(const char* str, size_t len, bool escape_all);
|
||||
|
||||
inline std::string get_escaped_string(const std::string& str, bool escape_all)
|
||||
{
|
||||
return get_escaped_string(str.data(), str.length(), escape_all);
|
||||
}
|
||||
|
||||
std::vector<std::string>* tokenize_string(std::string_view input,
|
||||
std::string_view delim,
|
||||
std::vector<std::string>* rval = nullptr, int limit = 0);
|
||||
|
||||
std::vector<std::string_view> tokenize_string(std::string_view input, const char delim) noexcept;
|
||||
|
||||
extern char* copy_string(const char* s);
|
||||
extern int streq(const char* s1, const char* s2);
|
||||
|
||||
extern char* skip_whitespace(char* s);
|
||||
extern const char* skip_whitespace(const char* s);
|
||||
extern char* skip_whitespace(char* s, char* end_of_s);
|
||||
extern const char* skip_whitespace(const char* s, const char* end_of_s);
|
||||
extern char* skip_digits(char* s);
|
||||
extern char* get_word(char*& s);
|
||||
extern void get_word(int length, const char* s, int& pwlen, const char*& pw);
|
||||
extern void to_upper(char* s);
|
||||
extern std::string to_upper(const std::string& s);
|
||||
extern int decode_hex(char ch);
|
||||
extern unsigned char encode_hex(int h);
|
||||
template<class T> int atoi_n(int len, const char* s, const char** end, int base, T& result);
|
||||
extern char* uitoa_n(uint64_t value, char* str, int n, int base, const char* prefix=nullptr);
|
||||
extern const char* strpbrk_n(size_t len, const char* s, const char* charset);
|
||||
int strstr_n(const int big_len, const unsigned char* big,
|
||||
const int little_len, const unsigned char* little);
|
||||
|
||||
// Replaces all occurences of *o* in *s* with *n*.
|
||||
extern std::string strreplace(const std::string& s, const std::string& o, const std::string& n);
|
||||
|
||||
// Remove all leading and trailing white space from string.
|
||||
extern std::string strstrip(std::string s);
|
||||
|
||||
// Return a lower-cased version of the string.
|
||||
extern std::string strtolower(const std::string& s);
|
||||
|
||||
extern int fputs(int len, const char* s, FILE* fp);
|
||||
extern bool is_printable(const char* s, int len);
|
||||
|
||||
extern const char* fmt_bytes(const char* data, int len);
|
||||
|
||||
// Note: returns a pointer into a shared buffer.
|
||||
extern const char* vfmt(const char* format, va_list args);
|
||||
// Note: returns a pointer into a shared buffer.
|
||||
extern const char* fmt(const char* format, ...)
|
||||
__attribute__((format (printf, 1, 2)));
|
||||
|
||||
// Returns true if path exists and is a directory.
|
||||
bool is_dir(const std::string& path);
|
||||
|
||||
// Returns true if path exists and is a file.
|
||||
bool is_file(const std::string& path);
|
||||
|
||||
extern int int_list_cmp(const void* v1, const void* v2);
|
||||
|
||||
extern const std::string& zeek_path();
|
||||
extern const char* zeek_magic_path();
|
||||
extern const char* zeek_plugin_path();
|
||||
extern const char* zeek_plugin_activate();
|
||||
extern std::string zeek_prefixes();
|
||||
|
||||
class SafeDirname : public detail::SafePathOp {
|
||||
public:
|
||||
|
||||
explicit SafeDirname(const char* path, bool error_aborts = true);
|
||||
explicit SafeDirname(const std::string& path, bool error_aborts = true);
|
||||
|
||||
private:
|
||||
|
||||
void DoFunc(const std::string& path, bool error_aborts = true);
|
||||
};
|
||||
|
||||
class SafeBasename : public detail::SafePathOp {
|
||||
public:
|
||||
|
||||
explicit SafeBasename(const char* path, bool error_aborts = true);
|
||||
explicit SafeBasename(const std::string& path, bool error_aborts = true);
|
||||
|
||||
private:
|
||||
|
||||
void DoFunc(const std::string& path, bool error_aborts = true);
|
||||
};
|
||||
|
||||
std::string implode_string_vector(const std::vector<std::string>& v,
|
||||
const std::string& delim = "\n");
|
||||
|
||||
/**
|
||||
* Locate a file within a given search path.
|
||||
* @param filename Name of a file to find.
|
||||
|
@ -388,48 +472,6 @@ std::string find_script_file(const std::string& filename, const std::string& pat
|
|||
// Wrapper around fopen(3). Emits an error when failing to open.
|
||||
FILE* open_file(const std::string& path, const std::string& mode = "r");
|
||||
|
||||
/** Opens a Zeek script package.
|
||||
* @param path Location of a Zeek script package (a directory). Will be changed
|
||||
* to the path of the package's loader script.
|
||||
* @param mode An fopen(3) mode.
|
||||
* @return The return value of fopen(3) on the loader script or null if one
|
||||
* doesn't exist.
|
||||
*/
|
||||
FILE* open_package(std::string& path, const std::string& mode = "r");
|
||||
|
||||
// Renames the given file to a new temporary name, and opens a new file with
|
||||
// the original name. Returns new file or NULL on error. Inits rotate_info if
|
||||
// given (open time is set network time).
|
||||
extern FILE* rotate_file(const char* name, zeek::RecordVal* rotate_info);
|
||||
|
||||
// This mimics the script-level function with the same name.
|
||||
const char* log_file_name(const char* tag);
|
||||
|
||||
// Parse a time string of the form "HH:MM" (as used for the rotation base
|
||||
// time) into a double representing the number of seconds. Returns -1 if the
|
||||
// string cannot be parsed. The function's result is intended to be used with
|
||||
// calc_next_rotate().
|
||||
//
|
||||
// This function is not thread-safe.
|
||||
double parse_rotate_base_time(const char* rotate_base_time);
|
||||
|
||||
// Calculate the duration until the next time a file is to be rotated, based
|
||||
// on the given rotate_interval and rotate_base_time. 'current' the the
|
||||
// current time to be used as base, 'rotate_interval' the rotation interval,
|
||||
// and 'base' the value returned by parse_rotate_base_time(). For the latter,
|
||||
// if the function returned -1, that's fine, calc_next_rotate() handles that.
|
||||
//
|
||||
// This function is thread-safe.
|
||||
double calc_next_rotate(double current, double rotate_interval, double base);
|
||||
|
||||
// Terminates processing gracefully, similar to pressing CTRL-C.
|
||||
void terminate_processing();
|
||||
|
||||
// Sets the current status of the Zeek process to the given string.
|
||||
// If the option --status-file has been set, this is written into
|
||||
// the the corresponding file. Otherwise, the function is a no-op.
|
||||
void set_processing_status(const char* status, const char* reason);
|
||||
|
||||
// Returns the current time.
|
||||
// (In pseudo-realtime mode this is faked to be the start time of the
|
||||
// trace plus the time interval Zeek has been running. To avoid this,
|
||||
|
@ -452,17 +494,6 @@ extern int time_compare(struct timeval* tv_a, struct timeval* tv_b);
|
|||
extern uint64_t calculate_unique_id();
|
||||
extern uint64_t calculate_unique_id(const size_t pool);
|
||||
|
||||
// For now, don't use hash_maps - they're not fully portable.
|
||||
#if 0
|
||||
// Use for hash_map's string keys.
|
||||
struct eqstr {
|
||||
bool operator()(const char* s1, const char* s2) const
|
||||
{
|
||||
return strcmp(s1, s2) == 0;
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
// Use for map's string keys.
|
||||
struct ltstr {
|
||||
bool operator()(const char* s1, const char* s2) const
|
||||
|
@ -471,8 +502,6 @@ struct ltstr {
|
|||
}
|
||||
};
|
||||
|
||||
// Versions of realloc/malloc which abort() on out of memory
|
||||
|
||||
constexpr size_t pad_size(size_t size)
|
||||
{
|
||||
// We emulate glibc here (values measured on Linux i386).
|
||||
|
@ -503,6 +532,8 @@ extern void safe_close(int fd);
|
|||
|
||||
// Versions of realloc/malloc which abort() on out of memory
|
||||
|
||||
// Versions of realloc/malloc which abort() on out of memory
|
||||
|
||||
inline void* safe_realloc(void* ptr, size_t size)
|
||||
{
|
||||
ptr = realloc(ptr, size);
|
||||
|
@ -571,46 +602,6 @@ char* zeekenv(const char* name);
|
|||
*/
|
||||
std::string json_escape_utf8(const std::string& val);
|
||||
|
||||
/**
|
||||
* Set the process/thread name. May not be supported on all OSs.
|
||||
* @param name new name for the process/thread. OS limitations typically
|
||||
* truncate the name to 15 bytes maximum.
|
||||
* @param tid handle of thread whose name shall change
|
||||
*/
|
||||
void set_thread_name(const char* name, pthread_t tid = pthread_self());
|
||||
|
||||
/**
|
||||
* A platform-independent PRNG implementation. Note that this is not
|
||||
* necessarily a "statistically sound" implementation as the main purpose is
|
||||
* not for production use, but rather for regression testing.
|
||||
* @param state The value used to generate the next random number.
|
||||
* @return A new random value generated from *state* and that can passed
|
||||
* back into subsequent calls to generate further random numbers.
|
||||
*/
|
||||
long int prng(long int state);
|
||||
|
||||
/**
|
||||
* Wrapper for system random() in the default case, but when running in
|
||||
* deterministic mode, uses the platform-independent zeek::prng()
|
||||
* to obtain consistent results since implementations of rand() may vary.
|
||||
* @return A value in the range [0, zeek::max_random()].
|
||||
*/
|
||||
long int random_number();
|
||||
|
||||
/**
|
||||
* @return The maximum value that can be returned from zeek::random_number().
|
||||
* When not using deterministic-mode, this is always equivalent to RAND_MAX.
|
||||
*/
|
||||
long int max_random();
|
||||
|
||||
/**
|
||||
* Wrapper for system srandom() in the default case, but when running in
|
||||
* deterministic mode, updates the state used for calling zeek::prng()
|
||||
* inside of zeek::random_number().
|
||||
* @param seed Value to use for initializing the PRNG.
|
||||
*/
|
||||
void seed_random(unsigned int seed);
|
||||
|
||||
} // namespace zeek::util
|
||||
|
||||
// A simple linear congruence PRNG. It takes its state as argument and
|
||||
|
@ -632,8 +623,8 @@ template<class T>
|
|||
[[ deprecated("Remove in v4.1. Use zeek::util::delete_each.")]]
|
||||
void delete_each(T* t) { zeek::util::delete_each<T>(t); }
|
||||
|
||||
constexpr auto extract_ip [[deprecated("Remove in v4.1. Use zeek::util::extract_ip.")]] = zeek::util::extract_ip;
|
||||
constexpr auto extract_ip_and_len [[deprecated("Remove in v4.1. Use zeek::util::extract_ip_and_len.")]] = zeek::util::extract_ip_and_len;
|
||||
constexpr auto extract_ip [[deprecated("Remove in v4.1. Use zeek::util::detail::extract_ip.")]] = zeek::util::detail::extract_ip;
|
||||
constexpr auto extract_ip_and_len [[deprecated("Remove in v4.1. Use zeek::util::detail::extract_ip_and_len.")]] = zeek::util::detail::extract_ip_and_len;
|
||||
constexpr auto bytetohex [[deprecated("Remove in v4.1. Use zeek::util::bytetohex.")]] = zeek::util::bytetohex;
|
||||
constexpr auto get_unescaped_string [[deprecated("Remove in v4.1. Use zeek::util::get_unescaped_string.")]] = zeek::util::get_unescaped_string;
|
||||
|
||||
|
@ -652,7 +643,7 @@ std::vector<std::string_view> tokenize_string(std::string_view input, const char
|
|||
|
||||
constexpr auto copy_string [[deprecated("Remove in v4.1. Use zeek::util::copy_string.")]] = zeek::util::copy_string;
|
||||
constexpr auto streq [[deprecated("Remove in v4.1. Use zeek::util::streq.")]] = zeek::util::streq;
|
||||
constexpr auto expand_escape [[deprecated("Remove in v4.1. Use zeek::util::expand_escape.")]] = zeek::util::expand_escape;
|
||||
constexpr auto expand_escape [[deprecated("Remove in v4.1. Use zeek::util::detail::expand_escape.")]] = zeek::util::detail::expand_escape;
|
||||
constexpr auto skip_digits [[deprecated("Remove in v4.1. Use zeek::util::skip_digits.")]] = zeek::util::skip_digits;
|
||||
|
||||
[[deprecated("Remove in v4.1. Use zeek::util::skip_whitespace.")]]
|
||||
|
@ -677,6 +668,8 @@ constexpr auto decode_hex [[deprecated("Remove in v4.1. Use zeek::util::decode_h
|
|||
constexpr auto encode_hex [[deprecated("Remove in v4.1. Use zeek::util::encode_hex.")]] = zeek::util::encode_hex;
|
||||
constexpr auto strpbrk_n [[deprecated("Remove in v4.1. Use zeek::util::strpbrk_n.")]] = zeek::util::strpbrk_n;
|
||||
constexpr auto strstr_n [[deprecated("Remove in v4.1. Use zeek::util::strstr_n.")]] = zeek::util::strstr_n;
|
||||
constexpr auto strreplace [[deprecated("Remove in v4.1. Use zeek::util::strreplace.")]] = zeek::util::strreplace;
|
||||
constexpr auto strstrip [[deprecated("Remove in v4.1. Use zeek::util::strstrip.")]] = zeek::util::strstrip;
|
||||
|
||||
template<class T>
|
||||
[[deprecated("Remove in v4.1. Use zeek::util::atoi_n.")]]
|
||||
|
@ -694,24 +687,21 @@ constexpr auto strtolower [[deprecated("Remove in v4.1. Use zeek::util::strtolow
|
|||
constexpr auto fmt_bytes [[deprecated("Remove in v4.1. Use zeek::util::fmt_bytes.")]] = zeek::util::fmt_bytes;
|
||||
constexpr auto vfmt [[deprecated("Remove in v4.1. Use zeek::util::vfmt.")]] = zeek::util::vfmt;
|
||||
constexpr auto fmt [[deprecated("Remove in v4.1. Use zeek::util::fmt.")]] = zeek::util::fmt;
|
||||
constexpr auto fmt_access_time [[deprecated("Remove in v4.1. Use zeek::util::fmt_access_time.")]] = zeek::util::fmt_access_time;
|
||||
constexpr auto ensure_intermediate_dirs [[deprecated("Remove in v4.1. Use zeek::util::ensure_intermediate_dirs.")]] = zeek::util::ensure_intermediate_dirs;
|
||||
constexpr auto ensure_dir [[deprecated("Remove in v4.1. Use zeek::util::ensure_dir.")]] = zeek::util::ensure_dir;
|
||||
constexpr auto fmt_access_time [[deprecated("Remove in v4.1. Use zeek::util::detail::fmt_access_time.")]] = zeek::util::detail::fmt_access_time;
|
||||
constexpr auto ensure_intermediate_dirs [[deprecated("Remove in v4.1. Use zeek::util::detail::ensure_intermediate_dirs.")]] = zeek::util::detail::ensure_intermediate_dirs;
|
||||
constexpr auto ensure_dir [[deprecated("Remove in v4.1. Use zeek::util::detail::ensure_dir.")]] = zeek::util::detail::ensure_dir;
|
||||
constexpr auto is_dir [[deprecated("Remove in v4.1. Use zeek::util::is_dir.")]] = zeek::util::is_dir;
|
||||
constexpr auto is_file [[deprecated("Remove in v4.1. Use zeek::util::is_file.")]] = zeek::util::is_file;
|
||||
constexpr auto strreplace [[deprecated("Remove in v4.1. Use zeek::util::strreplace.")]] = zeek::util::strreplace;
|
||||
constexpr auto strstrip [[deprecated("Remove in v4.1. Use zeek::util::strstrip.")]] = zeek::util::strstrip;
|
||||
constexpr auto hmac_md5 [[deprecated("Remove in v4.1. Use zeek::util::hmac_md5.")]] = zeek::util::hmac_md5;
|
||||
constexpr auto init_random_seed [[deprecated("Remove in v4.1. Use zeek::util::init_random_seed.")]] = zeek::util::init_random_seed;
|
||||
constexpr auto initial_seed [[deprecated("Remove in v4.1. Use zeek::util::initial_seed.")]] = zeek::util::initial_seed;
|
||||
constexpr auto have_random_seed [[deprecated("Remove in v4.1. Use zeek::util::have_random_seed.")]] = zeek::util::have_random_seed;
|
||||
constexpr auto rand64bit [[deprecated("Remove in v4.1. Use zeek::util::rand64bit.")]] = zeek::util::rand64bit;
|
||||
constexpr auto hmac_md5 [[deprecated("Remove in v4.1. Use zeek::util::detail::hmac_md5.")]] = zeek::util::detail::hmac_md5;
|
||||
constexpr auto init_random_seed [[deprecated("Remove in v4.1. Use zeek::util::detail::init_random_seed.")]] = zeek::util::detail::init_random_seed;
|
||||
constexpr auto initial_seed [[deprecated("Remove in v4.1. Use zeek::util::detail::initial_seed.")]] = zeek::util::detail::initial_seed;
|
||||
constexpr auto have_random_seed [[deprecated("Remove in v4.1. Use zeek::util::detail::have_random_seed.")]] = zeek::util::detail::have_random_seed;
|
||||
constexpr auto rand64bit [[deprecated("Remove in v4.1. Use zeek::util::detail::rand64bit.")]] = zeek::util::detail::rand64bit;
|
||||
|
||||
using SourceID [[deprecated("Remove in v4.1. Use zeek::util::SourceID.")]] = zeek::util::SourceID;
|
||||
static const zeek::util::SourceID SOURCE_LOCAL [[deprecated("Remove in v4.1. Use zeek::util::SOURCE_LOCAL.")]] = zeek::util::SOURCE_LOCAL;
|
||||
static const zeek::util::SourceID SOURCE_BROKER [[deprecated("Remove in v4.1. Use zeek::util::SOURCE_BROKER.")]] = zeek::util::SOURCE_BROKER;
|
||||
using SourceID [[deprecated("Remove in v4.1. Use zeek::util::detail::SourceID.")]] = zeek::util::detail::SourceID;
|
||||
static const zeek::util::detail::SourceID SOURCE_LOCAL [[deprecated("Remove in v4.1. Use zeek::util::detail::SOURCE_LOCAL.")]] = zeek::util::detail::SOURCE_LOCAL;
|
||||
static const zeek::util::detail::SourceID SOURCE_BROKER [[deprecated("Remove in v4.1. Use zeek::util::detail::SOURCE_BROKER.")]] = zeek::util::detail::SOURCE_BROKER;
|
||||
|
||||
constexpr auto pinpoint [[deprecated("Remove in v4.1. Use zeek::util::pinpoint.")]] = zeek::util::pinpoint;
|
||||
constexpr auto int_list_cmp [[deprecated("Remove in v4.1. Use zeek::util::int_list_cmp.")]] = zeek::util::int_list_cmp;
|
||||
constexpr auto bro_path [[deprecated("Remove in v4.1. Use zeek::util::zeek_path.")]] = zeek::util::zeek_path;
|
||||
constexpr auto bro_magic_path [[deprecated("Remove in v4.1. Use zeek::util::zeek_magic_path.")]] = zeek::util::zeek_magic_path;
|
||||
|
@ -719,13 +709,13 @@ constexpr auto bro_plugin_path [[deprecated("Remove in v4.1. Use zeek::util::zee
|
|||
constexpr auto bro_plugin_activate [[deprecated("Remove in v4.1. Use zeek::util::zeek_plugin_activate.")]] = zeek::util::zeek_plugin_activate;
|
||||
constexpr auto bro_prefixes [[deprecated("Remove in v4.1. Use zeek::util::zeek_prefixes.")]] = zeek::util::zeek_prefixes;
|
||||
|
||||
extern const std::array<std::string, 2>& script_extensions [[deprecated("Remove in v4.1. Use zeek::util::script_extensions.")]];
|
||||
extern const std::array<std::string, 2>& script_extensions [[deprecated("Remove in v4.1. Use zeek::util::detail::script_extensions.")]];
|
||||
|
||||
constexpr auto warn_if_legacy_script [[deprecated("Remove in v4.1. Use zeek::util::warn_if_legacy_script.")]] = zeek::util::warn_if_legacy_script;
|
||||
constexpr auto is_package_loader [[deprecated("Remove in v4.1. Use zeek::util::is_package_loader.")]] = zeek::util::is_package_loader;
|
||||
constexpr auto add_to_bro_path [[deprecated("Remove in v4.1. Use zeek::util::add_to_zeek_path.")]] = zeek::util::add_to_zeek_path;
|
||||
constexpr auto warn_if_legacy_script [[deprecated("Remove in v4.1. Use zeek::util::detail::warn_if_legacy_script.")]] = zeek::util::detail::warn_if_legacy_script;
|
||||
constexpr auto is_package_loader [[deprecated("Remove in v4.1. Use zeek::util::detail::is_package_loader.")]] = zeek::util::detail::is_package_loader;
|
||||
constexpr auto add_to_bro_path [[deprecated("Remove in v4.1. Use zeek::util::detail::add_to_zeek_path.")]] = zeek::util::detail::add_to_zeek_path;
|
||||
|
||||
using SafePathOp [[deprecated("Remove in v4.1. Use zeek::util::SafePathOp.")]] = zeek::util::SafePathOp;
|
||||
using SafePathOp [[deprecated("Remove in v4.1. Use zeek::util::detail::SafePathOp.")]] = zeek::util::detail::SafePathOp;
|
||||
using SafeDirname [[deprecated("Remove in v4.1. Use zeek::util::SafeDirname.")]] = zeek::util::SafeDirname;
|
||||
using SafeBasename [[deprecated("Remove in v4.1. Use zeek::util::SafeBasename.")]] = zeek::util::SafeBasename;
|
||||
|
||||
|
@ -736,9 +726,9 @@ std::string implode_string_vector(const std::vector<std::string>& v,
|
|||
std::string flatten_script_name(const std::string& name,
|
||||
const std::string& prefix = "");
|
||||
|
||||
constexpr auto normalize_path [[deprecated("Remove in v4.1. Use zeek::util::normalize_path.")]] = zeek::util::normalize_path;
|
||||
constexpr auto without_bropath_component [[deprecated("Remove in v4.1. Use zeek::util::without_zeekpath_component.")]] = zeek::util::without_zeekpath_component;
|
||||
constexpr auto get_exe_path [[deprecated("Remove in v4.1. Use zeek::util::get_exe_path.")]] = zeek::util::get_exe_path;
|
||||
constexpr auto normalize_path [[deprecated("Remove in v4.1. Use zeek::util::detail::normalize_path.")]] = zeek::util::detail::normalize_path;
|
||||
constexpr auto without_bropath_component [[deprecated("Remove in v4.1. Use zeek::util::detail::without_zeekpath_component.")]] = zeek::util::detail::without_zeekpath_component;
|
||||
constexpr auto get_exe_path [[deprecated("Remove in v4.1. Use zeek::util::detail::get_exe_path.")]] = zeek::util::detail::get_exe_path;
|
||||
constexpr auto find_script_file [[deprecated("Remove in v4.1. Use zeek::util::find_script_file.")]] = zeek::util::find_script_file;
|
||||
|
||||
[[deprecated("Remove in v4.1. Use zeek::util::find_file.")]]
|
||||
|
@ -749,12 +739,12 @@ FILE* open_file(const std::string& path, const std::string& mode = "r");
|
|||
[[deprecated("Remove in v4.1. Use zeek::util::open_package.")]]
|
||||
FILE* open_package(std::string& path, const std::string& mode = "r");
|
||||
|
||||
constexpr auto rotate_file [[deprecated("Remove in v4.1. Use zeek::util::rotate_file.")]] = zeek::util::rotate_file;
|
||||
constexpr auto log_file_name [[deprecated("Remove in v4.1. Use zeek::util::log_file_name.")]] = zeek::util::log_file_name;
|
||||
constexpr auto parse_rotate_base_time [[deprecated("Remove in v4.1. Use zeek::util::parse_rotate_base_time.")]] = zeek::util::parse_rotate_base_time;
|
||||
constexpr auto calc_next_rotate [[deprecated("Remove in v4.1. Use zeek::util::calc_next_rotate.")]] = zeek::util::calc_next_rotate;
|
||||
constexpr auto terminate_processing [[deprecated("Remove in v4.1. Use zeek::util::terminate_processing.")]] = zeek::util::terminate_processing;
|
||||
constexpr auto set_processing_status [[deprecated("Remove in v4.1. Use zeek::util::set_processing_status.")]] = zeek::util::set_processing_status;
|
||||
constexpr auto rotate_file [[deprecated("Remove in v4.1. Use zeek::util::detail::rotate_file.")]] = zeek::util::detail::rotate_file;
|
||||
constexpr auto log_file_name [[deprecated("Remove in v4.1. Use zeek::util::detail::log_file_name.")]] = zeek::util::detail::log_file_name;
|
||||
constexpr auto parse_rotate_base_time [[deprecated("Remove in v4.1. Use zeek::util::detail::parse_rotate_base_time.")]] = zeek::util::detail::parse_rotate_base_time;
|
||||
constexpr auto calc_next_rotate [[deprecated("Remove in v4.1. Use zeek::util::detail::calc_next_rotate.")]] = zeek::util::detail::calc_next_rotate;
|
||||
constexpr auto terminate_processing [[deprecated("Remove in v4.1. Use zeek::util::detail::terminate_processing.")]] = zeek::util::detail::terminate_processing;
|
||||
constexpr auto set_processing_status [[deprecated("Remove in v4.1. Use zeek::util::detail::set_processing_status.")]] = zeek::util::detail::set_processing_status;
|
||||
|
||||
[[deprecated("Remove in v4.1. Use zeek::util::current_time.")]]
|
||||
extern double current_time(bool real=false);
|
||||
|
@ -786,8 +776,8 @@ namespace zeek {
|
|||
[[deprecated("Remove in v4.1. Use zeek::util::set_thread_name.")]]
|
||||
void set_thread_name(const char* name, pthread_t tid = pthread_self());
|
||||
|
||||
constexpr auto prng [[deprecated("Remove in v4.1. Use zeek::util::prng.")]] = zeek::util::prng;
|
||||
constexpr auto random_number [[deprecated("Remove in v4.1. Use zeek::util::random_number.")]] = zeek::util::random_number;
|
||||
constexpr auto max_random [[deprecated("Remove in v4.1. Use zeek::util::max_random.")]] = zeek::util::max_random;
|
||||
constexpr auto seed_random [[deprecated("Remove in v4.1. Use zeek::util::seed_random.")]] = zeek::util::seed_random;
|
||||
constexpr auto prng [[deprecated("Remove in v4.1. Use zeek::util::detail::prng.")]] = zeek::util::detail::prng;
|
||||
constexpr auto random_number [[deprecated("Remove in v4.1. Use zeek::util::detail::random_number.")]] = zeek::util::detail::random_number;
|
||||
constexpr auto max_random [[deprecated("Remove in v4.1. Use zeek::util::detail::max_random.")]] = zeek::util::detail::max_random;
|
||||
constexpr auto seed_random [[deprecated("Remove in v4.1. Use zeek::util::detail::seed_random.")]] = zeek::util::detail::seed_random;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue