diff options
Diffstat (limited to 'net-voip/captagent/files/captagent-6.3.1-gcc10.patch')
-rw-r--r-- | net-voip/captagent/files/captagent-6.3.1-gcc10.patch | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/net-voip/captagent/files/captagent-6.3.1-gcc10.patch b/net-voip/captagent/files/captagent-6.3.1-gcc10.patch new file mode 100644 index 000000000000..a03dd72dfea7 --- /dev/null +++ b/net-voip/captagent/files/captagent-6.3.1-gcc10.patch @@ -0,0 +1,207 @@ +From 61ea167f9b4ab34a1437736cbda20d21efd06e30 Mon Sep 17 00:00:00 2001 +From: Jaco Kroon <jaco@uls.co.za> +Date: Tue, 11 May 2021 16:44:55 +0200 +Subject: [PATCH] Minimum set of changes to make gcc10 compatible. + +This does not fix any of the other bugs I spotted along the way +(module_path being assigned a static string and then later free()d for +example). +--- + .gitignore | 2 ++ + include/captagent/api.h | 10 ++++++++-- + include/captagent/modules.h | 2 +- + src/captagent.c | 2 -- + src/conf_function.c | 3 +++ + src/conf_function.h | 2 -- + src/modules.c | 3 +++ + src/modules/protocol/tls/decryption.h | 6 +----- + src/modules/protocol/tls/parser_tls.h | 12 ++++++------ + 9 files changed, 24 insertions(+), 18 deletions(-) + +diff --git a/.gitignore b/.gitignore +index d2ed328..a7cd5a3 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -2,6 +2,7 @@ INSTALL + Makefile + Makefile.in + aclocal.m4 ++compile + config.guess + src/config.h + src/config.h.in +@@ -45,5 +46,6 @@ pkg/debian/files + pkg/debian/captagent/ + pkg/debian/captagent.init + src/captagent ++src/capplan.tab.c + *.dh-orig + +diff --git a/include/captagent/api.h b/include/captagent/api.h +index 4ec62de..d550875 100644 +--- a/include/captagent/api.h ++++ b/include/captagent/api.h +@@ -43,6 +43,13 @@ + + #include "config.h" + ++#ifdef __GNUC__ ++/* GNU C */ ++#define PACK_OFF __attribute__ ((__packed__)); ++#else ++#define PACK_OFF ++#endif ++ + #ifndef AGENT_CONFIG_DIR + #define AGENT_CONFIG_DIR "/usr/local/etc/captagent/" + #endif //DEF_CONF +@@ -120,9 +127,8 @@ typedef struct stats_object { + + extern struct stats_object stats_obj; + +-struct hep_module *hepmod; + extern int get_basestat(char *module, char *stats, size_t len); +-struct module *module_list; ++extern struct module *module_list; + + #ifndef TRUE + #define TRUE 1 +diff --git a/include/captagent/modules.h b/include/captagent/modules.h +index 1eedabe..ec0676b 100644 +--- a/include/captagent/modules.h ++++ b/include/captagent/modules.h +@@ -27,7 +27,7 @@ + #ifndef MODULES_H_ + #define MODULES_H_ + +-char *module_path; ++extern char *module_path; + + #define VAR_PARAM_NO -128 + +diff --git a/src/captagent.c b/src/captagent.c +index b5c3081..6f5f533 100644 +--- a/src/captagent.c ++++ b/src/captagent.c +@@ -321,8 +321,6 @@ int main(int argc, char *argv[]) { + /* PATH */ + module_path = MODULE_DIR; + +- hepmod = malloc(sizeof(hep_module_t)); +- + load_xml_config(); + + /*CORE CONFIG */ +diff --git a/src/conf_function.c b/src/conf_function.c +index 478ce73..9f4648f 100644 +--- a/src/conf_function.c ++++ b/src/conf_function.c +@@ -57,6 +57,9 @@ + #define ROUTE_MAX_REC_LEV 10 /* maximum number of recursive calls + for capture()*/ + ++struct sr_module* modules; /* global module list */ ++ ++ + /* ret= 0! if action -> end of list(e.g DROP), + > 0 to continue processing next actions + and <0 on error */ +diff --git a/src/conf_function.h b/src/conf_function.h +index 3ee82ba..ff532d9 100644 +--- a/src/conf_function.h ++++ b/src/conf_function.h +@@ -79,8 +79,6 @@ struct sr_module{ + struct sr_module* next; + }; + +-struct sr_module* modules; /* global module list */ +- + int register_builtin_modules(); + int load_module(char* path); + cmd_function find_export2(char* name, int param_no); +diff --git a/src/modules.c b/src/modules.c +index 0ad00b5..c0397e1 100644 +--- a/src/modules.c ++++ b/src/modules.c +@@ -40,6 +40,9 @@ + #include <captagent/modules_api.h> + #include <captagent/modules.h> + ++struct module *module_list; ++char *module_path; ++ + int register_module(char *resource_name, xml_node *config, bool global) { + const char *error; + module_exports_t *exp; +diff --git a/src/modules/protocol/tls/decryption.h b/src/modules/protocol/tls/decryption.h +index fd5e0d7..b553195 100644 +--- a/src/modules/protocol/tls/decryption.h ++++ b/src/modules/protocol/tls/decryption.h +@@ -35,6 +35,7 @@ + #include <gcrypt.h> + #include "define.h" + #include "uthash.h" ++#include "captagent/api.h" + + #define SHA384 0x009d + #define SHA256 0x009c +@@ -68,11 +69,6 @@ int private_decrypt(unsigned char * enc_data, int data_len, unsigned char * key, + + /* **************************** */ + +-#ifdef __GNUC__ +-/* GNU C */ +-#define PACK_OFF __attribute__ ((__packed__)); +-#endif +- + + /* ++++++++++++++++++++++++ CISCO HDLC +++++++++++++++++++++++++ */ + struct chdlc_hdr +diff --git a/src/modules/protocol/tls/parser_tls.h b/src/modules/protocol/tls/parser_tls.h +index e6d6aec..c24076b 100644 +--- a/src/modules/protocol/tls/parser_tls.h ++++ b/src/modules/protocol/tls/parser_tls.h +@@ -45,15 +45,15 @@ + #define TLS12 0x0303 + + // Record Type values +-enum { ++enum Record_Type { + CHANGE_CIPHER_SPEC = 20, + ALERT = 21, + HANDSHAKE = 22, + APPLICATION_DATA = 23 +-} Record_Type; ++}; + + // Handshake Type values +-enum { ++enum Handshake_Type { + HELLO_REQUEST = 0, + CLIENT_HELLO = 1, + SERVER_HELLO = 2, +@@ -66,10 +66,10 @@ enum { + CERTIFICATE_VERIFY = 15, + CLIENT_KEY_EXCHANGE = 16, + FINISHED = 20 +-} Handshake_Type; ++}; + + // Client Certificate types for Certificate Request +-enum { ++enum Client_Certificate_Type { + RSA_SIGN = 1, + DSS_SIGN = 2, + RSA_FIXED_DH = 3, +@@ -77,7 +77,7 @@ enum { + RSA_EPHEMERAL_DH_RESERVED = 5, + DSS_EPHEMERAL_DH_RESERVED = 6, + FORTEZZA_DMS_RESERVED = 20 +-} Client_Certificate_Type; ++}; + + + // Chipher Suite availlable for decription +-- +2.26.3 + |