You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/net-voip/captagent/files/captagent-6.3.1-gcc10.patch

208 lines
5.4 KiB

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