/* * bronx_listener_common.h * * Copyright (C) 2007 Groundwork Open Source * Written by Daniel Emmanuel Feinsmith * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * 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 * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301, USA. * * Change Log: * DEF Created on September 17, 2007, 1:00 PM */ #include "bronx_listener_defines.h" #undef ERROR #define ERROR -1 #define OK 0 #ifndef TRUE #define TRUE 1 #elif (TRUE!=1) #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #elif (FALSE!=0) #define FALSE 0 #endif #define STATE_UNKNOWN 3 /* service state return codes */ #define STATE_CRITICAL 2 #define STATE_WARNING 1 #define STATE_OK 0 #define NSCA_DEFAULT_SOCKET_TIMEOUT 10 /* timeout after 10 seconds */ #define MAX_HOST_ADDRESS_LENGTH 256 /* max size of a host address */ #define MAX_NSCA_PLUGINOUTPUT_LENGTH 512 #define MAX_HOSTNAME_LENGTH 64 #define MAX_DESCRIPTION_LENGTH 128 #define MAX_PASSWORD_LENGTH 512 /********************* ENCRYPTION TYPES ****************/ #define ENCRYPT_NONE 0 /* no encryption */ #define ENCRYPT_XOR 1 /* not really encrypted, just obfuscated */ #define ENCRYPT_DES 2 /* DES */ #define ENCRYPT_3DES 3 /* 3DES or Triple DES */ #define ENCRYPT_CAST128 4 /* CAST-128 */ #define ENCRYPT_CAST256 5 /* CAST-256 */ #define ENCRYPT_XTEA 6 /* xTEA */ #define ENCRYPT_3WAY 7 /* 3-WAY */ #define ENCRYPT_BLOWFISH 8 /* SKIPJACK */ #define ENCRYPT_TWOFISH 9 /* TWOFISH */ #define ENCRYPT_LOKI97 10 /* LOKI97 */ #define ENCRYPT_RC2 11 /* RC2 */ #define ENCRYPT_ARCFOUR 12 /* RC4 */ #define ENCRYPT_RC6 13 /* RC6 */ /* UNUSED */ #define ENCRYPT_RIJNDAEL128 14 /* RIJNDAEL-128 */ #define ENCRYPT_RIJNDAEL192 15 /* RIJNDAEL-192 */ #define ENCRYPT_RIJNDAEL256 16 /* RIJNDAEL-256 */ #define ENCRYPT_MARS 17 /* MARS */ /* UNUSED */ #define ENCRYPT_PANAMA 18 /* PANAMA */ /* UNUSED */ #define ENCRYPT_WAKE 19 /* WAKE */ #define ENCRYPT_SERPENT 20 /* SERPENT */ #define ENCRYPT_IDEA 21 /* IDEA */ /* UNUSED */ #define ENCRYPT_ENIGMA 22 /* ENIGMA (Unix crypt) */ #define ENCRYPT_GOST 23 /* GOST */ #define ENCRYPT_SAFER64 24 /* SAFER-sk64 */ #define ENCRYPT_SAFER128 25 /* SAFER-sk128 */ #define ENCRYPT_SAFERPLUS 26 /* SAFER+ */ /******************** MISC DEFINITIONS *****************/ #define TRANSMITTED_IV_SIZE 128 /* size of IV to transmit - must be as big as largest IV needed for any crypto algorithm */ /*************** PACKET STRUCTURE DEFINITIONS **********/ #define NSCA_PACKET_VERSION_3 3 /* packet version identifier */ #define NSCA_PACKET_VERSION_2 2 /* older packet version identifiers */ #define NSCA_PACKET_VERSION_1 1 /* data packet containing service check results */ typedef struct data_packet_struct{ int16_t packet_version; u_int32_t crc32_value; u_int32_t timestamp; int16_t return_code; char host_name[MAX_HOSTNAME_LENGTH]; char svc_description[MAX_DESCRIPTION_LENGTH]; char plugin_output[MAX_NSCA_PLUGINOUTPUT_LENGTH]; }data_packet; /* initialization packet containing IV and timestamp */ typedef struct init_packet_struct{ char iv[TRANSMITTED_IV_SIZE]; u_int32_t timestamp; }init_packet;