#ifdef __cplusplus #include #include #include #include #ifndef EZOPTION #define EZOPTION #endif /* EZOPTION */ #endif #include #include #include #include #include #include #include #ifdef NDEBUG #undef NDEBUG #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "openssl/bio.h" #include "openssl/sha.h" #include "openssl/md5.h" #include "openssl/ssl.h" #include "openssl/err.h" #include #include #include #include #include "mysql.h" #include "mariadb_com.h" #include "proxysql_mem.h" #include "proxysql_structs.h" #include "proxysql_debug.h" #include "proxysql_macros.h" #include "proxysql_coredump.h" #include "proxysql_sslkeylog.h" #include "jemalloc.h" // AI Features includes #include "AI_Features_Manager.h" #include "LLM_Bridge.h" #include "Anomaly_Detector.h" #include "AI_Vector_Storage.h" #ifndef NOJEM #if defined(__APPLE__) && defined(__MACH__) #ifndef mallctl #define mallctl(a, b, c, d, e) je_mallctl(a, b, c, d, e) #endif #endif // __APPLE__ and __MACH__ #endif // NOJEM //#include "sqlite3.h" #include "c_tokenizer.h" #ifdef DEBUG #define DEB "_DEBUG" #else #define DEB "" #endif /* DEBUG */ #define PROXYSQL_VERSION GITVERSION DEB #define PROXYSQL_CODENAME "Truls" #ifndef PROXYSQL_FUNC_DEFS #define PROXYSQL_FUNC_DEFS #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ int listen_on_port(char *ip, uint16_t port, int backlog, bool reuseport=false); int listen_on_unix(char *, int); int connect_socket(char *, int); int config_file_is_readable(char *); unsigned int CPY3(unsigned char *); int pkt_ok(unsigned char *, unsigned int); int pkt_end(unsigned char *, unsigned int); int pkt_com_query(unsigned char *, unsigned int); enum MySQL_response_type mysql_response(unsigned char *, unsigned int); __attribute__((__format__ (__printf__, 2, 3))) void proxy_error_func(int errcode, const char *, ...); void print_backtrace(void); void proxy_info_(const char* msg, ...); #ifdef DEBUG void init_debug_struct(); void init_debug_struct_from_cmdline(); /** * @brief Add a debug entry in the error log. To be used through 'proxy_debug' macro. * @details This function saves/restores the previous 'errno' value. */ __attribute__((__format__ (__printf__, 7, 8))) void proxy_debug_func(enum debug_module, int, int, const char *, int, const char *, const char *, ...); void proxy_debug_get_filters(std::set&); void proxy_debug_load_filters(std::set&); #endif #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* PROXYSQL_FUNC_DEFS */