diff options
Diffstat (limited to 'framework/src/suricata/src/util-error.c')
-rw-r--r-- | framework/src/suricata/src/util-error.c | 315 |
1 files changed, 315 insertions, 0 deletions
diff --git a/framework/src/suricata/src/util-error.c b/framework/src/suricata/src/util-error.c new file mode 100644 index 00000000..6e783f42 --- /dev/null +++ b/framework/src/suricata/src/util-error.c @@ -0,0 +1,315 @@ +/* Copyright (C) 2007-2010 Open Information Security Foundation + * + * You can copy, redistribute or modify this Program under the terms of + * the GNU General Public License version 2 as published by the Free + * Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * version 2 along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA. + */ + +/** + * \file + * + * \author Anoop Saldanha <anoopsaldanha@gmail.com> + * + * Error utility functions + * + * \todo Needs refining of the error codes. Renaming with a prefix of SC_ERR, + * removal of duplicates and entries have to be made in util-error.c + */ + +#include "util-error.h" + +#define CASE_CODE(E) case E: return #E + +/** + * \brief Maps the error code, to its string equivalent + * + * \param The error code + * + * \retval The string equivalent for the error code + */ +const char * SCErrorToString(SCError err) +{ + switch (err) { + CASE_CODE (SC_OK); + CASE_CODE (SC_ERR_MEM_ALLOC); + CASE_CODE (SC_ERR_ACTION_ORDER); + CASE_CODE (SC_ERR_PCRE_MATCH); + CASE_CODE (SC_ERR_PCRE_GET_SUBSTRING); + CASE_CODE (SC_ERR_PCRE_COMPILE); + CASE_CODE (SC_ERR_PCRE_STUDY); + CASE_CODE (SC_ERR_PCRE_PARSE); + CASE_CODE (SC_ERR_LOG_MODULE_NOT_INIT); + CASE_CODE (SC_ERR_LOG_FG_FILTER_MATCH); + CASE_CODE (SC_ERR_PCAP_DISPATCH); + CASE_CODE (SC_ERR_PCAP_CREATE); + CASE_CODE (SC_ERR_PCAP_SET_SNAPLEN); + CASE_CODE (SC_ERR_PCAP_SET_PROMISC); + CASE_CODE (SC_ERR_PCAP_SET_TIMEOUT); + CASE_CODE (SC_ERR_PCAP_OPEN_LIVE); + CASE_CODE (SC_ERR_PCAP_OPEN_OFFLINE); + CASE_CODE (SC_ERR_PCAP_ACTIVATE_HANDLE); + CASE_CODE (SC_ERR_PCAP_SET_BUFF_SIZE); + CASE_CODE (SC_ERR_NO_PCAP_SET_BUFFER_SIZE); + CASE_CODE (SC_ERR_NO_PF_RING); + CASE_CODE (SC_ERR_PF_RING_RECV); + CASE_CODE (SC_ERR_PF_RING_GET_CLUSTERID_FAILED); + CASE_CODE (SC_ERR_PF_RING_GET_INTERFACE_FAILED); + CASE_CODE (SC_ERR_PF_RING_OPEN); + CASE_CODE (SC_ERR_GET_CLUSTER_TYPE_FAILED); + CASE_CODE (SC_ERR_INVALID_CLUSTER_TYPE); + CASE_CODE (SC_ERR_PF_RING_SET_CLUSTER_FAILED); + CASE_CODE (SC_ERR_DATALINK_UNIMPLEMENTED); + CASE_CODE (SC_ERR_INVALID_SIGNATURE); + CASE_CODE (SC_ERR_OPENING_FILE); + CASE_CODE (SC_ERR_OPENING_RULE_FILE); + CASE_CODE (SC_ERR_NO_RULES); + CASE_CODE (SC_ERR_NO_RULES_LOADED); + CASE_CODE (SC_ERR_COUNTER_EXCEEDED); + CASE_CODE (SC_ERR_INVALID_CHECKSUM); + CASE_CODE (SC_ERR_SPRINTF); + CASE_CODE (SC_ERR_FATAL); + CASE_CODE (SC_ERR_INVALID_ARGUMENT); + CASE_CODE (SC_ERR_SPINLOCK); + CASE_CODE (SC_ERR_INVALID_ENUM_MAP); + CASE_CODE (SC_ERR_INVALID_IP_NETBLOCK); + CASE_CODE (SC_ERR_INVALID_IPV4_ADDR); + CASE_CODE (SC_ERR_INVALID_IPV6_ADDR); + CASE_CODE (SC_ERR_INVALID_RUNMODE); + CASE_CODE (SC_ERR_COMPLETE_PORT_SPACE_NEGATED); + CASE_CODE (SC_ERR_NO_PORTS_LEFT_AFTER_MERGE); + CASE_CODE (SC_ERR_NEGATED_VALUE_IN_PORT_RANGE); + CASE_CODE (SC_ERR_PORT_PARSE_INSERT_STRING); + CASE_CODE (SC_ERR_UNREACHABLE_CODE_REACHED); + CASE_CODE (SC_ERR_INVALID_NUMERIC_VALUE); + CASE_CODE (SC_ERR_NUMERIC_VALUE_ERANGE); + CASE_CODE (SC_ERR_INVALID_NUM_BYTES); + CASE_CODE (SC_ERR_ARG_LEN_LONG); + CASE_CODE (SC_ERR_ALPARSER); + CASE_CODE (SC_ERR_POOL_EMPTY); + CASE_CODE (SC_ERR_REASSEMBLY); + CASE_CODE (SC_ERR_POOL_INIT); + CASE_CODE (SC_ERR_UNIMPLEMENTED); + CASE_CODE (SC_ERR_ADDRESS_ENGINE_GENERIC); + CASE_CODE (SC_ERR_PORT_ENGINE_GENERIC); + CASE_CODE (SC_ERR_FAST_LOG_GENERIC); + CASE_CODE (SC_ERR_IPONLY_RADIX); + CASE_CODE (SC_ERR_DEBUG_LOG_GENERIC); + CASE_CODE (SC_ERR_UNIFIED_LOG_GENERIC); + CASE_CODE (SC_ERR_HTTP_LOG_GENERIC); + CASE_CODE (SC_ERR_UNIFIED_ALERT_GENERIC); + CASE_CODE (SC_ERR_UNIFIED2_ALERT_GENERIC); + CASE_CODE (SC_ERR_FWRITE); + CASE_CODE (SC_ERR_FOPEN); + CASE_CODE (SC_ERR_THREAD_NICE_PRIO); + CASE_CODE (SC_ERR_THREAD_SPAWN); + CASE_CODE (SC_ERR_THREAD_CREATE); + CASE_CODE (SC_ERR_THREAD_INIT); + CASE_CODE (SC_ERR_THREAD_DEINIT); + CASE_CODE (SC_ERR_THRESHOLD_HASH_ADD); + CASE_CODE (SC_ERR_UNDEFINED_VAR); + CASE_CODE (SC_ERR_RULE_KEYWORD_UNKNOWN); + CASE_CODE (SC_ERR_FLAGS_MODIFIER); + CASE_CODE (SC_ERR_DISTANCE_MISSING_CONTENT); + CASE_CODE (SC_ERR_BYTETEST_MISSING_CONTENT); + CASE_CODE (SC_ERR_BYTEJUMP_MISSING_CONTENT); + CASE_CODE (SC_ERR_WITHIN_MISSING_CONTENT); + CASE_CODE (SC_ERR_WITHIN_INVALID); + CASE_CODE (SC_ERR_DEPTH_MISSING_CONTENT); + CASE_CODE (SC_ERR_OFFSET_MISSING_CONTENT); + CASE_CODE (SC_ERR_NOCASE_MISSING_PATTERN); + CASE_CODE (SC_ERR_RAWBYTES_MISSING_CONTENT); + CASE_CODE (SC_ERR_NO_URICONTENT_NEGATION); + CASE_CODE (SC_ERR_HASH_TABLE_INIT); + CASE_CODE (SC_ERR_STAT); + CASE_CODE (SC_ERR_LOGDIR_CONFIG); + CASE_CODE (SC_ERR_LOGDIR_CMDLINE); + CASE_CODE (SC_ERR_RADIX_TREE_GENERIC); + CASE_CODE (SC_ERR_MISSING_QUOTE); + CASE_CODE (SC_ERR_UNKNOWN_PROTOCOL); + CASE_CODE (SC_ERR_UNKNOWN_RUN_MODE); + CASE_CODE (SC_ERR_IPFW_NOSUPPORT); + CASE_CODE (SC_ERR_IPFW_BIND); + CASE_CODE (SC_ERR_IPFW_SOCK); + CASE_CODE (SC_ERR_IPFW_SETSOCKOPT); + CASE_CODE (SC_ERR_IPFW_NOPORT); + CASE_CODE (SC_WARN_IPFW_RECV); + CASE_CODE (SC_WARN_IPFW_XMIT); + CASE_CODE (SC_WARN_IPFW_SETSOCKOPT); + CASE_CODE (SC_WARN_IPFW_UNBIND); + CASE_CODE (SC_ERR_MULTIPLE_RUN_MODE); + CASE_CODE (SC_ERR_BPF); + CASE_CODE (SC_ERR_MISSING_CONFIG_PARAM); + CASE_CODE (SC_ERR_UNKNOWN_VALUE); + CASE_CODE (SC_ERR_INVALID_VALUE); + CASE_CODE (SC_ERR_UNKNOWN_REGEX_MOD); + CASE_CODE (SC_ERR_INVALID_OPERATOR); + CASE_CODE (SC_ERR_PCAP_RECV_INIT); + CASE_CODE (SC_ERR_NFQ_NOSUPPORT); + CASE_CODE (SC_ERR_NFQ_UNBIND); + CASE_CODE (SC_ERR_NFQ_BIND); + CASE_CODE (SC_ERR_NFQ_HANDLE_PKT); + CASE_CODE (SC_ERR_NFLOG_NOSUPPORT); + CASE_CODE (SC_ERR_NFLOG_OPEN); + CASE_CODE (SC_ERR_NFLOG_BIND); + CASE_CODE (SC_ERR_NFLOG_UNBIND); + CASE_CODE (SC_ERR_NFLOG_MAX_BUFSIZ); + CASE_CODE (SC_ERR_NFLOG_SET_MODE); + CASE_CODE (SC_ERR_NFLOG_HANDLE_PKT); + CASE_CODE (SC_ERR_NFLOG_GROUP); + CASE_CODE (SC_ERR_NFLOG_FD); + CASE_CODE (SC_WARN_NFLOG_SETSOCKOPT); + CASE_CODE (SC_WARN_NFLOG_RECV); + CASE_CODE (SC_WARN_NFLOG_LOSING_EVENTS); + CASE_CODE (SC_WARN_NFLOG_MAXBUFSIZ_REACHED); + CASE_CODE (SC_ERR_CUDA_ERROR); + CASE_CODE (SC_ERR_CUDA_HANDLER_ERROR); + CASE_CODE (SC_ERR_TM_THREADS_ERROR); + CASE_CODE (SC_ERR_TM_MODULES_ERROR); + CASE_CODE (SC_ERR_AC_CUDA_ERROR); + CASE_CODE (SC_ERR_INVALID_YAML_CONF_ENTRY); + CASE_CODE (SC_ERR_TMQ_ALREADY_REGISTERED); + CASE_CODE (SC_ERR_CONFLICTING_RULE_KEYWORDS); + CASE_CODE (SC_ERR_INITIALIZATION); + CASE_CODE (SC_ERR_INVALID_ACTION); + CASE_CODE (SC_ERR_LIBNET_REQUIRED_FOR_ACTION); + CASE_CODE (SC_ERR_LIBNET_INIT); + CASE_CODE (SC_ERR_LIBNET_INVALID_DIR); + CASE_CODE (SC_ERR_LIBNET_BUILD_FAILED); + CASE_CODE (SC_ERR_LIBNET_WRITE_FAILED); + CASE_CODE (SC_ERR_LIBNET_NOT_ENABLED); + CASE_CODE (SC_ERR_UNIFIED_LOG_FILE_HEADER); + CASE_CODE (SC_ERR_REFERENCE_UNKNOWN); + CASE_CODE (SC_ERR_PIDFILE_SNPRINTF); + CASE_CODE (SC_ERR_PIDFILE_OPEN); + CASE_CODE (SC_ERR_PIDFILE_WRITE); + CASE_CODE (SC_ERR_PIDFILE_DAEMON); + CASE_CODE (SC_ERR_UID_FAILED); + CASE_CODE (SC_ERR_GID_FAILED); + CASE_CODE (SC_ERR_CHANGING_CAPS_FAILED); + CASE_CODE (SC_ERR_LIBCAP_NG_REQUIRED); + CASE_CODE (SC_ERR_LIBNET11_INCOMPATIBLE_WITH_LIBCAP_NG); + CASE_CODE (SC_WARN_FLOW_EMERGENCY); + CASE_CODE (SC_ERR_SVC); + CASE_CODE (SC_ERR_ERF_DAG_OPEN_FAILED); + CASE_CODE (SC_ERR_ERF_DAG_STREAM_OPEN_FAILED); + CASE_CODE (SC_ERR_ERF_DAG_STREAM_START_FAILED); + CASE_CODE (SC_ERR_ERF_DAG_STREAM_SET_FAILED); + CASE_CODE (SC_ERR_ERF_DAG_STREAM_READ_FAILED); + CASE_CODE (SC_WARN_ERF_DAG_REC_LEN_CHANGED); + CASE_CODE (SC_ERR_NAPATECH_OPEN_FAILED); + CASE_CODE (SC_ERR_NAPATECH_STREAM_NEXT_FAILED); + CASE_CODE (SC_ERR_NAPATECH_NOSUPPORT); + CASE_CODE (SC_ERR_NAPATECH_REQUIRED); + CASE_CODE (SC_ERR_NAPATECH_TIMESTAMP_TYPE_NOT_SUPPORTED); + CASE_CODE (SC_ERR_NAPATECH_INIT_FAILED); + CASE_CODE (SC_ERR_NAPATECH_CONFIG_STREAM); + CASE_CODE (SC_ERR_NAPATECH_STREAMS_REGISTER_FAILED); + CASE_CODE (SC_ERR_NAPATECH_STAT_DROPS_FAILED); + CASE_CODE (SC_ERR_NAPATECH_PARSE_CONFIG); + CASE_CODE (SC_WARN_COMPATIBILITY); + CASE_CODE (SC_ERR_DCERPC); + CASE_CODE (SC_ERR_DETECT_PREPARE); + CASE_CODE (SC_ERR_AHO_CORASICK); + CASE_CODE (SC_ERR_REFERENCE_CONFIG); + CASE_CODE (SC_ERR_DUPLICATE_SIG); + CASE_CODE (SC_WARN_PCAP_MULTI_DEV_EXPERIMENTAL); + CASE_CODE (SC_ERR_PCAP_MULTI_DEV_NO_SUPPORT); + CASE_CODE (SC_ERR_HTTP_METHOD_NEEDS_PRECEEDING_CONTENT); + CASE_CODE (SC_ERR_HTTP_METHOD_INCOMPATIBLE_WITH_RAWBYTES); + CASE_CODE (SC_ERR_HTTP_METHOD_RELATIVE_MISSING); + CASE_CODE (SC_ERR_HTTP_COOKIE_NEEDS_PRECEEDING_CONTENT); + CASE_CODE (SC_ERR_HTTP_COOKIE_INCOMPATIBLE_WITH_RAWBYTES); + CASE_CODE (SC_ERR_HTTP_COOKIE_RELATIVE_MISSING); + CASE_CODE (SC_ERR_LOGPCAP_SGUIL_BASE_DIR_MISSING); + CASE_CODE (SC_ERR_UNKNOWN_DECODE_EVENT); + CASE_CODE (SC_ERR_RUNMODE); + CASE_CODE (SC_ERR_SHUTDOWN); + CASE_CODE (SC_ERR_INVALID_DIRECTION); + CASE_CODE (SC_ERR_AFP_CREATE); + CASE_CODE (SC_ERR_AFP_READ); + CASE_CODE (SC_ERR_AFP_DISPATCH); + CASE_CODE (SC_ERR_CMD_LINE); + CASE_CODE (SC_ERR_SIZE_PARSE); + CASE_CODE (SC_ERR_RAWBYTES_FILE_DATA); + CASE_CODE (SC_ERR_SOCKET); + CASE_CODE (SC_ERR_PCAP_TRANSLATE); + CASE_CODE (SC_WARN_OUTDATED_LIBHTP); + CASE_CODE (SC_WARN_DEPRECATED); + CASE_CODE (SC_WARN_PROFILE); + CASE_CODE (SC_ERR_FLOW_INIT); + CASE_CODE (SC_ERR_HOST_INIT); + CASE_CODE (SC_ERR_MEM_BUFFER_API); + CASE_CODE (SC_ERR_INVALID_MD5); + CASE_CODE (SC_ERR_NO_MD5_SUPPORT); + CASE_CODE (SC_ERR_EVENT_ENGINE); + CASE_CODE (SC_ERR_NO_LUA_SUPPORT); + CASE_CODE (SC_ERR_LUA_ERROR); + CASE_CODE (SC_ERR_NO_GEOIP_SUPPORT); + CASE_CODE (SC_ERR_GEOIP_ERROR); + CASE_CODE (SC_ERR_DEFRAG_INIT); + CASE_CODE (SC_ERR_NO_REPUTATION); + CASE_CODE (SC_ERR_NOT_SUPPORTED); + CASE_CODE (SC_ERR_LIVE_RULE_SWAP); + CASE_CODE (SC_WARN_UNCOMMON); + CASE_CODE (SC_ERR_SYSCALL); + CASE_CODE (SC_ERR_SYSCONF); + CASE_CODE (SC_ERR_INVALID_ARGUMENTS); + CASE_CODE (SC_ERR_STATS_NOT_INIT); + CASE_CODE (SC_ERR_NFQ_OPEN); + CASE_CODE (SC_ERR_NFQ_MAXLEN); + CASE_CODE (SC_ERR_NFQ_CREATE_QUEUE); + CASE_CODE (SC_ERR_NFQ_SET_MODE); + CASE_CODE (SC_ERR_NFQ_SETSOCKOPT); + CASE_CODE (SC_ERR_NFQ_RECV); + CASE_CODE (SC_ERR_NFQ_SET_VERDICT); + CASE_CODE (SC_ERR_NFQ_THREAD_INIT); + CASE_CODE (SC_ERR_DAEMON); + CASE_CODE (SC_ERR_TLS_LOG_GENERIC); + CASE_CODE (SC_ERR_MUTEX); + CASE_CODE (SC_ERR_REPUTATION_INVALID_OPERATION); + CASE_CODE (SC_ERR_REPUTATION_INVALID_TYPE); + CASE_CODE (SC_ERR_BYTE_EXTRACT_FAILED); + CASE_CODE (SC_ERR_DAG_REQUIRED); + CASE_CODE (SC_ERR_DAG_NOSUPPORT); + CASE_CODE (SC_ERR_NO_AF_PACKET); + CASE_CODE (SC_ERR_PCAP_FILE_DELETE_FAILED); + CASE_CODE (SC_ERR_MAGIC_OPEN); + CASE_CODE (SC_ERR_MAGIC_LOAD); + CASE_CODE (SC_ERR_CUDA_BUFFER_ERROR); + CASE_CODE (SC_ERR_DNS_LOG_GENERIC); + CASE_CODE (SC_WARN_OPTION_OBSOLETE); + CASE_CODE (SC_WARN_NO_UNITTESTS); + CASE_CODE (SC_ERR_THREAD_QUEUE); + CASE_CODE (SC_WARN_XFF_INVALID_MODE); + CASE_CODE (SC_WARN_XFF_INVALID_HEADER); + CASE_CODE (SC_WARN_XFF_INVALID_DEPLOYMENT); + CASE_CODE (SC_ERR_THRESHOLD_SETUP); + CASE_CODE (SC_ERR_DNS_CONFIG); + CASE_CODE (SC_ERR_MODBUS_CONFIG); + CASE_CODE (SC_ERR_CONF_YAML_ERROR); + CASE_CODE (SC_ERR_CONF_NAME_TOO_LONG); + CASE_CODE (SC_ERR_APP_LAYER_PROTOCOL_DETECTION); + CASE_CODE (SC_ERR_PCIE_INIT_FAILED); + CASE_CODE (SC_WARN_LUA_SCRIPT); + CASE_CODE (SC_ERR_LUA_SCRIPT); + CASE_CODE (SC_WARN_NO_STATS_LOGGERS); + CASE_CODE (SC_ERR_NO_NETMAP); + CASE_CODE (SC_ERR_NETMAP_CREATE); + CASE_CODE (SC_ERR_NETMAP_READ); + CASE_CODE (SC_ERR_IPPAIR_INIT); + CASE_CODE (SC_ERR_MT_NO_SELECTOR); + CASE_CODE (SC_ERR_MT_DUPLICATE_TENANT); + } + + return "UNKNOWN_ERROR"; +} |