summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas de Castro Borges <lucas@gnuabordo.com.br>2024-11-12 12:18:49 -0300
committerLucas de Castro Borges <lucas@gnuabordo.com.br>2024-11-12 12:19:53 -0300
commit307c1de1ee4d461c0274ea73cd3f3ad9af5b515c (patch)
tree2e7e8186ebd007ff3c7246c8ae75016bfa2106da
parent524ccd92ec9016497c0cd84a946d5856907925d9 (diff)
debian patches/series updated
-rw-r--r--debian/patches/0001-Fix-some-spelling-errors.patch8
-rw-r--r--debian/patches/0001-Open5GS-Patch-for-freeDiameter-1.5.0.patch971
-rw-r--r--debian/patches/0002-Redundant-So-I-removed-it.patch27
-rw-r--r--debian/patches/0002-install-extensions-in-usr-lib-freeDiameter.-Do-not-i.patch2
-rw-r--r--debian/patches/0003-Rollback-for-open5gs-from-v1.1.0-to-v1.2.4.patch129
-rw-r--r--debian/patches/0003-Set-default-debian-location-for-freeDiameter-configu.patch2
-rw-r--r--debian/patches/0004-Use-freeDiameter-1.5.0-in-Open5GS-v2.2.3-or-higher.patch129
-rw-r--r--debian/patches/0005-Build-using-old-API-since-the-new-FTBFS-on-sid.patch25
-rw-r--r--debian/patches/0005-Update-version-file-to-1.5.0-in-meson.build.patch25
-rw-r--r--debian/patches/0006-Result-Code-is-optional-in-Rx.patch26
-rw-r--r--debian/patches/0007-Result-Code-changes-to-Optional.patch4
-rw-r--r--debian/patches/0008-adding-support-for-building-the-acl_wl-freeDiameter-.patch54
-rw-r--r--debian/patches/0009-adding-DISABLE_PEER_EXPIRY-flag.patch24
-rw-r--r--debian/patches/0010-move-DISABLE_PEER_EXPIRY-to-libfdcore-1.patch37
-rw-r--r--debian/patches/0011-refine-meson-file-for-extensions-2.patch118
-rw-r--r--debian/patches/0012-Remove-DISABLE_PEER_EXPIRY-1.patch24
-rw-r--r--debian/patches/0013-Add-DISABLE_PEER_EXPIRY-to-the-c_arg.patch24
-rw-r--r--debian/patches/0014-fix-the-build-error-in-meson-v0.6.0.patch36
-rw-r--r--debian/patches/0015-compile-rt_default-rt_redirect-extension-3.patch25
-rw-r--r--debian/patches/0016-fix-extensions-rt_default-meson.build.patch55
-rw-r--r--debian/patches/CVE-2020-6098.patch32
-rw-r--r--debian/patches/series14
22 files changed, 16 insertions, 1775 deletions
diff --git a/debian/patches/0001-Fix-some-spelling-errors.patch b/debian/patches/0001-Fix-some-spelling-errors.patch
index a738e70..f4f4bd0 100644
--- a/debian/patches/0001-Fix-some-spelling-errors.patch
+++ b/debian/patches/0001-Fix-some-spelling-errors.patch
@@ -8,7 +8,7 @@ Subject: Fix some spelling errors
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/extensions/acl_wl/aw_tree.c b/extensions/acl_wl/aw_tree.c
-index 9b9cbd8..49e632d 100644
+index 82e79f4..ccb5715 100644
--- a/extensions/acl_wl/aw_tree.c
+++ b/extensions/acl_wl/aw_tree.c
@@ -230,7 +230,7 @@ int aw_tree_add(char * name, int flags)
@@ -30,10 +30,10 @@ index 9b9cbd8..49e632d 100644
}
diff --git a/libfdproto/messages.c b/libfdproto/messages.c
-index ed23f0e..c7a18f1 100644
+index ed8186f..9e73969 100644
--- a/libfdproto/messages.c
+++ b/libfdproto/messages.c
-@@ -2489,7 +2489,7 @@ static int parserules_check_one_rule(void * data, struct dict_rule_data *rule)
+@@ -2504,7 +2504,7 @@ static int parserules_check_one_rule(void * data, struct dict_rule_data *rule)
min = 1;
}
if (count < min) {
@@ -42,7 +42,7 @@ index ed23f0e..c7a18f1 100644
if (pr_data->pei) {
pr_data->pei->pei_errcode = "DIAMETER_MISSING_AVP";
pr_data->pei->pei_avp = empty_avp(rule->rule_avp);
-@@ -2500,7 +2500,7 @@ static int parserules_check_one_rule(void * data, struct dict_rule_data *rule)
+@@ -2515,7 +2515,7 @@ static int parserules_check_one_rule(void * data, struct dict_rule_data *rule)
/* Check the "max" value */
if ((rule->rule_max != -1) && (count > rule->rule_max)) {
diff --git a/debian/patches/0001-Open5GS-Patch-for-freeDiameter-1.5.0.patch b/debian/patches/0001-Open5GS-Patch-for-freeDiameter-1.5.0.patch
deleted file mode 100644
index 24f5e32..0000000
--- a/debian/patches/0001-Open5GS-Patch-for-freeDiameter-1.5.0.patch
+++ /dev/null
@@ -1,971 +0,0 @@
-From 365fe96e9a9f127a7fedeab47f43a891ebff4f74 Mon Sep 17 00:00:00 2001
-From: Sukchan Lee <acetcom@gmail.com>
-Date: Sun, 21 Mar 2021 17:44:22 +0900
-Subject: [PATCH 01/16] Open5GS Patch for freeDiameter-1.5.0
-
----
- extensions/dict_dcca/dict_dcca.c | 17 +-
- extensions/dict_dcca_3gpp/dict_dcca_3gpp.c | 4 -
- extensions/dict_nasreq/dict_nasreq.c | 2 +-
- extensions/meson.build | 47 +++++
- include/freeDiameter/libfdproto.h | 2 +-
- include/freeDiameter/meson.build | 185 ++++++++++++++++++++
- libfdcore/endpoints.c | 6 +-
- libfdcore/fdd.y | 4 +-
- libfdcore/meson.build | 78 +++++++++
- libfdcore/p_psm.c | 4 +-
- libfdcore/peers.c | 4 +
- libfdcore/sctp-internal.h | 18 ++
- libfdcore/sctp.c | 31 +++-
- libfdcore/sctp_compat.c | 193 +++++++++++++++++++++
- libfdproto/meson.build | 48 +++++
- meson.build | 71 ++++++++
- 16 files changed, 693 insertions(+), 21 deletions(-)
- create mode 100644 extensions/meson.build
- create mode 100644 include/freeDiameter/meson.build
- create mode 100644 libfdcore/meson.build
- create mode 100644 libfdcore/sctp-internal.h
- create mode 100644 libfdcore/sctp_compat.c
- create mode 100644 libfdproto/meson.build
- create mode 100644 meson.build
-
-diff --git a/extensions/dict_dcca/dict_dcca.c b/extensions/dict_dcca/dict_dcca.c
-index 5d94603..8ab5a97 100644
---- a/extensions/dict_dcca/dict_dcca.c
-+++ b/extensions/dict_dcca/dict_dcca.c
-@@ -69,11 +69,16 @@ static int dict_dcca_entry(char * conffile)
-
- /* Applications section */
- {
-- /* DCCA */
-- {
-- struct dict_application_data data = { 4, "Diameter Credit Control Application" };
-- CHECK_dict_new( DICT_APPLICATION, &data, NULL, &dcca);
-- }
-+ {
-+ struct dict_vendor_data vendor_data = { 10415, "3GPP" };
-+ CHECK_FCT(fd_dict_new(fd_g_config->cnf_dict, DICT_VENDOR, &vendor_data, NULL, NULL));
-+ }
-+ {
-+ struct dict_object * vendor;
-+ CHECK_FCT(fd_dict_search(fd_g_config->cnf_dict, DICT_VENDOR, VENDOR_BY_NAME, "3GPP", &vendor, ENOENT));
-+ struct dict_application_data app_data = { 16777238, "Gx" };
-+ CHECK_FCT(fd_dict_new(fd_g_config->cnf_dict, DICT_APPLICATION, &app_data, vendor, &dcca));
-+ }
- }
-
- /* Result codes */
-@@ -1362,7 +1367,7 @@ static int dict_dcca_entry(char * conffile)
- { "Origin-Realm", RULE_REQUIRED, -1, 1 },
- { "Destination-Realm", RULE_REQUIRED, -1, 1 },
- { "Auth-Application-Id", RULE_REQUIRED, -1, 1 },
-- { "Service-Context-Id", RULE_REQUIRED, -1, 1 },
-+ { "Service-Context-Id", RULE_OPTIONAL, -1, 1 },
- { "CC-Request-Type", RULE_REQUIRED, -1, 1 },
- { "CC-Request-Number", RULE_REQUIRED, -1, 1 },
- { "Destination-Host", RULE_OPTIONAL, -1, 1 },
-diff --git a/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c
-index 3d58cf6..038e707 100644
---- a/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c
-+++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c
-@@ -153,10 +153,6 @@ static int dict_dcca_3gpp_entry(char * conffile)
-
- {
- /* Create the vendors */
-- {
-- struct dict_vendor_data vendor_data = { 10415, "3GPP" };
-- CHECK_FCT(fd_dict_new(fd_g_config->cnf_dict, DICT_VENDOR, &vendor_data, NULL, NULL));
-- }
- {
- struct dict_vendor_data vendor_data = { 5535, "3GPP2" };
- CHECK_FCT(fd_dict_new(fd_g_config->cnf_dict, DICT_VENDOR, &vendor_data, NULL, NULL));
-diff --git a/extensions/dict_nasreq/dict_nasreq.c b/extensions/dict_nasreq/dict_nasreq.c
-index 0878ae1..1d96f23 100644
---- a/extensions/dict_nasreq/dict_nasreq.c
-+++ b/extensions/dict_nasreq/dict_nasreq.c
-@@ -3013,7 +3013,7 @@ static int dnr_entry(char * conffile)
- ,{ "Origin-Host", RULE_REQUIRED, -1, 1 }
- ,{ "Origin-Realm", RULE_REQUIRED, -1, 1 }
- ,{ "Destination-Realm", RULE_REQUIRED, -1, 1 }
-- ,{ "Auth-Request-Type", RULE_REQUIRED, -1, 1 }
-+ ,{ "Auth-Request-Type", RULE_OPTIONAL, -1, 1 }
- ,{ "Destination-Host", RULE_OPTIONAL, -1, 1 }
- ,{ "NAS-Identifier", RULE_OPTIONAL, -1, 1 }
- ,{ "NAS-IP-Address", RULE_OPTIONAL, -1, 1 }
-diff --git a/extensions/meson.build b/extensions/meson.build
-new file mode 100644
-index 0000000..9c00f6d
---- /dev/null
-+++ b/extensions/meson.build
-@@ -0,0 +1,47 @@
-+# Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
-+
-+# This file is part of Open5GS.
-+
-+# This program is free software: you can redistribute it and/or modify
-+# it under the terms of the GNU Affero General Public License as published by
-+# the Free Software Foundation, either version 3 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, see <https://www.gnu.org/licenses/>.
-+
-+fd_ext_sources = ('''
-+ dbg_msg_dumps
-+ dict_rfc5777
-+ dict_mip6i
-+ dict_nasreq
-+ dict_nas_mipv6
-+ dict_dcca
-+'''.split())
-+
-+foreach s : fd_ext_sources
-+ shared_module(s,
-+ sources : [files(join_paths(s, s+'.c'))],
-+ include_directories : freeDiameter_includes,
-+ dependencies : libfdcore_dep,
-+ name_prefix : '',
-+ name_suffix : 'fdx',
-+ install : true,
-+ install_dir : freeDiameter_extensionsdir)
-+endforeach
-+
-+shared_module('dict_dcca_3gpp',
-+ sources : [files(
-+ 'dict_dcca_3gpp/dict_dcca_3gpp.c',
-+ 'dict_dcca_3gpp/add_avps.c')],
-+ include_directories : freeDiameter_includes,
-+ dependencies : libfdcore_dep,
-+ name_prefix : '',
-+ name_suffix : 'fdx',
-+ install : true,
-+ install_dir : freeDiameter_extensionsdir)
-diff --git a/include/freeDiameter/libfdproto.h b/include/freeDiameter/libfdproto.h
-index 66f4b3b..26f8617 100644
---- a/include/freeDiameter/libfdproto.h
-+++ b/include/freeDiameter/libfdproto.h
-@@ -298,7 +298,7 @@ static char * file_bname_init(char * full) { file_bname = basename(full); return
-
-
- /* In DEBUG mode, we add meta-information along each trace. This makes multi-threading problems easier to debug. */
--#if (defined(DEBUG) && defined(DEBUG_WITH_META))
-+#if 1 /* Open5GS : enable log file and line number */
- # define STD_TRACE_FMT_STRING "pid:%s in %s@%s:%d: "
- # define STD_TRACE_FMT_ARGS , ((char *)pthread_getspecific(fd_log_thname) ?: "unnamed"), __PRETTY_FUNCTION__, __STRIPPED_FILE__, __LINE__
- #else /* DEBUG && DEBUG_WITH_META */
-diff --git a/include/freeDiameter/meson.build b/include/freeDiameter/meson.build
-new file mode 100644
-index 0000000..5497d7d
---- /dev/null
-+++ b/include/freeDiameter/meson.build
-@@ -0,0 +1,185 @@
-+# Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
-+
-+# This file is part of Open5GS.
-+
-+# This program is free software: you can redistribute it and/or modify
-+# it under the terms of the GNU Affero General Public License as published by
-+# the Free Software Foundation, either version 3 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, see <https://www.gnu.org/licenses/>.
-+#
-+
-+freeDiameter_host_conf = configuration_data()
-+freeDiameter_version_conf = configuration_data()
-+
-+freeDiameter_sysconfdir = join_paths(sysconfdir, 'freeDiameter')
-+freeDiameter_extensionsdir = join_paths(libdir, 'freeDiameter')
-+
-+# Informations to display in daemon's help
-+freeDiameter_host_conf.set_quoted('FD_PROJECT_BINARY', meson.project_name() + 'd')
-+freeDiameter_host_conf.set_quoted('FD_PROJECT_NAME', meson.project_name())
-+freeDiameter_host_conf.set_quoted('FD_PROJECT_VERSION', freeDiameter_version)
-+freeDiameter_host_conf.set_quoted('FD_PROJECT_COPYRIGHT', 'Copyright (c) 2008-2015, WIDE Project (www.wide.ad.jp) and NICT (www.nict.go.jp)')
-+
-+# Version of the source code
-+version_arr = freeDiameter_version.split('.')
-+freeDiameter_host_conf.set('FD_PROJECT_VERSION_MAJOR', version_arr[0].to_int())
-+freeDiameter_host_conf.set('FD_PROJECT_VERSION_MINOR', version_arr[1].to_int())
-+freeDiameter_host_conf.set('FD_PROJECT_VERSION_REV', version_arr[2].to_int())
-+
-+# Version of the API with the library
-+freeDiameter_host_conf.set('FD_PROJECT_VERSION_API', 6)
-+freeDiameter_host_conf.set_quoted('DEFAULT_CONF_PATH',
-+ freeDiameter_sysconfdir)
-+freeDiameter_host_conf.set_quoted('DEFAULT_EXTENSIONS_PATH',
-+ freeDiameter_extensionsdir)
-+freeDiameter_host_conf.set_quoted('FD_DEFAULT_CONF_FILENAME',
-+ 'freeDiameter.conf')
-+
-+if host_machine.endian() == 'big'
-+ freeDiameter_host_conf.set('HOST_BIG_ENDIAN', 1)
-+endif
-+
-+freeDiameter_host_conf.set('FD_IS_CONFIG', true)
-+freeDiameter_host_conf.set('_GNU_SOURCE', true)
-+freeDiameter_host_conf.set('FD_HOOK_HANDLE_LIMIT', 5)
-+
-+freeDiameter_headers = ('''
-+ malloc.h
-+ signalent.h
-+'''.split())
-+
-+foreach h : freeDiameter_headers
-+ if cc.has_header(h)
-+ define = 'HAVE_' + h.underscorify().to_upper()
-+ freeDiameter_host_conf.set(define, 1)
-+ endif
-+endforeach
-+
-+freeDiameter_functions = ('''
-+ strndup
-+ getopt_long
-+ getifaddrs
-+'''.split())
-+
-+foreach f : freeDiameter_functions
-+ if cc.has_function(f)
-+ define = 'HAVE_' + f.underscorify().to_upper()
-+ freeDiameter_host_conf.set(define, 1)
-+ set_variable('have_func_' + f, true)
-+ else
-+ set_variable('have_func_' + f, false)
-+ endif
-+endforeach
-+
-+# Check for ntohll
-+if cc.has_header_symbol('netinet/in.h', 'ntohll')
-+ freeDiameter_host_conf.set('HAVE_NTOHLL', 1)
-+endif
-+
-+# Check for AI_ADDRCONFIG
-+if cc.has_header_symbol('netdb.h', 'AI_ADDRCONFIG')
-+ freeDiameter_host_conf.set('HAVE_AI_ADDRCONFIG', 1)
-+endif
-+
-+# Determination of thread implementation
-+threads = []
-+if host_system == 'windows' and not get_option('force_posix_threads')
-+else
-+ threads = dependency('threads')
-+ if cc.has_header_symbol('pthread.h', 'pthread_barrier_wait')
-+ freeDiameter_host_conf.set('HAVE_PTHREAD_BAR', 1)
-+ endif
-+endif
-+
-+# Check for clock_gettime()
-+clock_gettime_test_code = '''
-+ #include <time.h>
-+ struct timespec t;
-+ int main (int argc, char ** argv) {
-+ return clock_gettime(CLOCK_REALTIME, &t);
-+ }'''
-+librt = []
-+if cc.links(clock_gettime_test_code, name : 'clock_gettime()')
-+ freeDiameter_host_conf.set('HAVE_CLOCK_GETTIME', 1)
-+elif cc.links(clock_gettime_test_code, args : '-lrt', name : 'clock_gettime() in librt')
-+ freeDiameter_host_conf.set('HAVE_CLOCK_GETTIME', 1)
-+ librt = cc.find_library('rt')
-+elif cc.links(clock_gettime_test_code, args : '-lposix4', name : 'clock_gettime() in libposix4')
-+ freeDiameter_host_conf.set('HAVE_CLOCK_GETTIME', 1)
-+ librt = cc.find_library('posix4')
-+else
-+ error('Could not find clock_gettime()')
-+endif
-+
-+# Check for dlopen()
-+dlopen_dlsym_test_code = '''
-+ #include <dlfcn.h>
-+ int underscore_test (void) { return 42; }
-+ int main (int argc, char ** argv) {
-+ void *f1 = (void*)0, *f2 = (void*)0, *handle;
-+ handle = dlopen ((void*)0, 0);
-+ if (handle) {
-+ f1 = dlsym (handle, "underscore_test");
-+ f2 = dlsym (handle, "_underscore_test");
-+ }
-+ return (!f2 || f1);
-+ }'''
-+libdl = []
-+if cc.links(dlopen_dlsym_test_code, name : 'dlopen() and dlsym() in system libraries')
-+ freeDiameter_host_conf.set('HAVE_DLOPEN', 1)
-+elif cc.links(dlopen_dlsym_test_code, args : '-ldl', name : 'dlopen() and dlsym() in libdl')
-+ freeDiameter_host_conf.set('HAVE_DLOPEN', 1)
-+ libdl = cc.find_library('dl')
-+else
-+ error('Could not find dlopen()')
-+endif
-+
-+# Check for gcrypt/idn library
-+libgcrypt = cc.find_library('gcrypt')
-+libidn = cc.find_library('idn')
-+
-+# Check for gnutls library
-+libgnutls = cc.find_library('gnutls')
-+if cc.has_function('gnutls_hash', args : '-lgnutls')
-+ freeDiameter_host_conf.set('GNUTLS_VERSION_210', 1)
-+endif
-+if cc.has_function('gnutls_transport_set_vec_push_function', args : '-lgnutls')
-+ freeDiameter_host_conf.set('GNUTLS_VERSION_212', 1)
-+endif
-+if cc.has_function('gnutls_x509_trust_list_verify_crt', args : '-lgnutls')
-+ freeDiameter_host_conf.set('GNUTLS_VERSION_300', 1)
-+endif
-+if cc.has_function('gnutls_handshake_set_timeout', args : '-lgnutls')
-+ freeDiameter_host_conf.set('GNUTLS_VERSION_310', 1)
-+endif
-+
-+# Check for SCTP
-+libsctp = cc.find_library('sctp', required : false)
-+if libsctp.found()
-+ if cc.compiles('''#include <unistd.h>
-+ #include <netinet/sctp.h>
-+ int main (int argc, char ** argv) {
-+ sctp_connectx(0, NULL, 0, NULL);
-+ }''', name : 'sctp_connectx() accepts 4 arguments')
-+ freeDiameter_host_conf.set('SCTP_CONNECTX_4_ARGS', 1)
-+ endif
-+ if host_system == 'freebsd'
-+ freeDiameter_host_conf.set('SCTP_USE_MAPPED_ADDRESSES', 1)
-+ endif
-+else
-+ freeDiameter_host_conf.set('DISABLE_SCTP', 1)
-+endif
-+
-+configure_file(output : 'freeDiameter-host.h',
-+ configuration : freeDiameter_host_conf)
-+
-+configure_file(output : 'version.h',
-+ configuration : freeDiameter_version_conf)
-diff --git a/libfdcore/endpoints.c b/libfdcore/endpoints.c
-index e80c2a3..4c1f537 100644
---- a/libfdcore/endpoints.c
-+++ b/libfdcore/endpoints.c
-@@ -64,7 +64,6 @@ int fd_ep_add_merge( struct fd_list * list, sSA * sa, socklen_t sl, uint32_t fla
- case AF_INET:
- if (! (flags & EP_ACCEPTALL)) {
- if (IN_IS_ADDR_UNSPECIFIED(&ptr.sin->sin_addr)
-- || IN_IS_ADDR_LOOPBACK(&ptr.sin->sin_addr)
- /* the next one filters both EXPERIMENTAL, BADCLASS and MULTICAST. */
- || ((ntohl(ptr.sin->sin_addr.s_addr) & 0xe0000000) == 0xe0000000)
- || (ptr.sin->sin_addr.s_addr == INADDR_BROADCAST)) {
-@@ -78,10 +77,7 @@ int fd_ep_add_merge( struct fd_list * list, sSA * sa, socklen_t sl, uint32_t fla
- case AF_INET6:
- if (! (flags & EP_ACCEPTALL)) {
- if (IN6_IS_ADDR_UNSPECIFIED(&ptr.sin6->sin6_addr)
-- || IN6_IS_ADDR_LOOPBACK(&ptr.sin6->sin6_addr)
-- || IN6_IS_ADDR_MULTICAST(&ptr.sin6->sin6_addr)
-- || IN6_IS_ADDR_LINKLOCAL(&ptr.sin6->sin6_addr)
-- || IN6_IS_ADDR_SITELOCAL(&ptr.sin6->sin6_addr)) {
-+ || IN6_IS_ADDR_MULTICAST(&ptr.sin6->sin6_addr)) {
- LOG_A(" DEBUG:fd_ep_add_merge Address was ignored, not added.");
- return 0;
- }
-diff --git a/libfdcore/fdd.y b/libfdcore/fdd.y
-index 9b36887..1a9729e 100644
---- a/libfdcore/fdd.y
-+++ b/libfdcore/fdd.y
-@@ -43,13 +43,13 @@
-
- /* For development only : */
- %debug
--%error-verbose
-+%define parse.error verbose
-
- %parse-param {struct fd_config * conf}
-
- /* Keep track of location */
- %locations
--%pure-parser
-+%define api.pure
-
- %{
- #include "fdcore-internal.h"
-diff --git a/libfdcore/meson.build b/libfdcore/meson.build
-new file mode 100644
-index 0000000..f3b7210
---- /dev/null
-+++ b/libfdcore/meson.build
-@@ -0,0 +1,78 @@
-+# Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
-+
-+# This file is part of Open5GS.
-+
-+# This program is free software: you can redistribute it and/or modify
-+# it under the terms of the GNU Affero General Public License as published by
-+# the Free Software Foundation, either version 3 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, see <https://www.gnu.org/licenses/>.
-+
-+fdcore_sources = files('''
-+ fdcore-internal.h
-+ apps.c
-+ cnxctx.h
-+ config.c
-+ core.c
-+ cnxctx.c
-+ endpoints.c
-+ events.c
-+ extensions.c
-+ fifo_stats.c
-+ hooks.c
-+ dict_base_proto.c
-+ messages.c
-+ queues.c
-+ peers.c
-+ p_ce.c
-+ p_cnx.c
-+ p_dw.c
-+ p_dp.c
-+ p_expiry.c
-+ p_out.c
-+ p_psm.c
-+ p_sr.c
-+ routing_dispatch.c
-+ server.c
-+ tcp.c
-+ version.c
-+'''.split())
-+
-+if libsctp.found()
-+fdcore_sources += files('sctp.c', 'sctp3436.c', 'sctp_compat.c')
-+endif
-+
-+lgen = generator(flex,
-+ output : '@PLAINNAME@.yy.c',
-+ arguments : ['-p', '-Cem', '-Pfdd', '-o', '@OUTPUT@', '@INPUT@'])
-+
-+lfiles = lgen.process('fdd.l')
-+
-+pgen = generator(bison,
-+ output : ['@BASENAME@.tab.c', '@BASENAME@.tab.h'],
-+ arguments : ['-p', 'fdd', '-d',
-+ '@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@'])
-+
-+pfiles = pgen.process('fdd.y')
-+
-+libfdcore = library('fdcore',
-+ sources : [lfiles, pfiles, fdcore_sources],
-+ version : freeDiameter_version,
-+ soversion : freeDiameter_soversion,
-+ include_directories : freeDiameter_includes,
-+ dependencies : [libfdproto_dep,
-+ libdl, libsctp, libgcrypt, libgnutls],
-+ install : true)
-+
-+libfdcore_dep = declare_dependency(
-+ link_with : libfdcore,
-+ include_directories : freeDiameter_includes,
-+ dependencies : [libfdproto_dep,
-+ libdl, libsctp, libgcrypt, libgnutls])
-diff --git a/libfdcore/p_psm.c b/libfdcore/p_psm.c
-index 755e133..801d579 100644
---- a/libfdcore/p_psm.c
-+++ b/libfdcore/p_psm.c
-@@ -891,7 +891,7 @@ psm_end:
- if ((cur_state == STATE_CLOSING) || (cur_state == STATE_CLOSING_GRACE)) {
- LOG_N("%s: Going to ZOMBIE state (no more activity) after normal shutdown", peer->p_hdr.info.pi_diamid);
- } else {
-- LOG_E("%s: Going to ZOMBIE state (no more activity) after abnormal shutdown", peer->p_hdr.info.pi_diamid);
-+ LOG_N("%s: Going to ZOMBIE state (no more activity) after abnormal shutdown", peer->p_hdr.info.pi_diamid);
- }
- fd_psm_cleanup(peer, 1);
- TRACE_DEBUG(INFO, "'%s'\t-> 'STATE_ZOMBIE' (terminated)\t'%s'",
-@@ -950,8 +950,10 @@ void fd_psm_abord(struct fd_peer * peer )
- /* Cleanup the data */
- fd_psm_cleanup(peer, 1);
-
-+#if 0 /* Open5GS : not stable to finish freeDiameter */
- /* Destroy the event list */
- CHECK_FCT_DO( fd_fifo_del(&peer->p_events), /* continue */ );
-+#endif
-
- /* Remaining cleanups are performed in fd_peer_free */
- return;
-diff --git a/libfdcore/peers.c b/libfdcore/peers.c
-index 5ac9ccf..456638f 100644
---- a/libfdcore/peers.c
-+++ b/libfdcore/peers.c
-@@ -397,7 +397,11 @@ int fd_peer_fini()
- wait_until.tv_nsec = now.tv_nsec;
- }
-
-+#if 0 /* Open5GS : not stable to finish freeDiameter */
- while ((!list_empty) && (TS_IS_INFERIOR(&now, &wait_until))) {
-+#else
-+ if (!list_empty) {
-+#endif
-
- /* Allow the PSM(s) to execute */
- usleep(100000);
-diff --git a/libfdcore/sctp-internal.h b/libfdcore/sctp-internal.h
-new file mode 100644
-index 0000000..128d8df
---- /dev/null
-+++ b/libfdcore/sctp-internal.h
-@@ -0,0 +1,18 @@
-+#ifndef _SCTP_INTERNAL_H
-+#define _SCTP_INTERNAL_H
-+
-+extern int sctp_sockopt_event_subscribe_size;
-+extern int sctp_sockopt_paddrparams_size;
-+
-+struct sctp_event_subscribe;
-+struct sctp_paddrparams;
-+
-+int determine_sctp_sockopt_event_subscribe_size(void);
-+int determine_sctp_sockopt_paddrparams_size(void);
-+
-+int sctp_setsockopt_event_subscribe_workaround(
-+ int fd, const struct sctp_event_subscribe *event_subscribe);
-+int sctp_setsockopt_paddrparams_workaround(
-+ int fd, const struct sctp_paddrparams *paddrparams);
-+
-+#endif /* _SCTP_INTERNAL_H */
-diff --git a/libfdcore/sctp.c b/libfdcore/sctp.c
-index 9305b31..4d376c9 100644
---- a/libfdcore/sctp.c
-+++ b/libfdcore/sctp.c
-@@ -39,6 +39,10 @@
- #include <netinet/sctp.h>
- #include <sys/uio.h>
-
-+#if 1 /* Open5GS : for SCTP patch */
-+#include "sctp-internal.h"
-+#endif
-+
- /* Size of buffer to receive ancilliary data. May need to be enlarged if more sockopt are set... */
- #ifndef CMSG_BUF_LEN
- #define CMSG_BUF_LEN 1024
-@@ -48,7 +52,7 @@
- /* #define OLD_SCTP_SOCKET_API */
-
- /* Automatically fallback to old API if some of the new symbols are not defined */
--#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_RECVRCVINFO)) || (!defined(SCTP_SNDINFO)) || (!defined(SCTP_SEND_FAILED_EVENT)))
-+#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_RECVRCVINFO)) || (!defined(SCTP_SNDINFO)) || (!defined(SCTP_SEND_FAILED_EVENT)) || (!defined(SCTP_NOTIFICATIONS_STOPPED_EVENT)))
- # define OLD_SCTP_SOCKET_API
- #endif
-
-@@ -341,13 +345,24 @@ static int fd_setsockopt_prebind(int sk)
-
- /* Some kernel versions need this to be set */
- parms.spp_address.ss_family = AF_INET;
-+
-+#if 1 /* Open5GS : workaround for SCTP */
-+ if (determine_sctp_sockopt_paddrparams_size() < 0) {
-+ LOG_E("Cannot determine SCTP_EVENTS socket option size");
-+ return -1;
-+ }
-+#endif
-
- if (TRACE_BOOL(ANNOYING)) {
- sz = sizeof(parms);
-
- /* Read socket defaults */
- CHECK_SYS( sctp_opt_info(sk, 0, SCTP_PEER_ADDR_PARAMS, &parms, &sz) );
-+#if 0 /* Open5GS : workaround for SCTP */
- if (sz != sizeof(parms))
-+#else
-+ if (sz != sizeof(parms) && sz != sctp_sockopt_paddrparams_size)
-+#endif
- {
- TRACE_DEBUG(INFO, "Invalid size of socket option: %d / %d", sz, (socklen_t)sizeof(parms));
- return ENOTSUP;
-@@ -371,7 +386,11 @@ static int fd_setsockopt_prebind(int sk)
- #endif /* ADJUST_RTX_PARAMS */
-
- /* Set the option to the socket */
-+#if 0 /* Open5GS : workaround for SCTP */
- CHECK_SYS( setsockopt(sk, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS, &parms, sizeof(parms)) );
-+#else
-+ CHECK_SYS( sctp_setsockopt_paddrparams_workaround(sk, &parms) );
-+#endif
-
- if (TRACE_BOOL(ANNOYING)) {
- /* Check new values */
-@@ -410,12 +429,20 @@ static int fd_setsockopt_prebind(int sk)
- // event.sctp_authentication_event = 0; /* when new key is made active */
-
- /* Set the option to the socket */
-+#if 0 /* Open5GS : workaround for SCTP */
- CHECK_SYS( setsockopt(sk, IPPROTO_SCTP, SCTP_EVENTS, &event, sizeof(event)) );
-+#else
-+ CHECK_SYS( sctp_setsockopt_event_subscribe_workaround(sk, &event) );
-+#endif
-
- if (TRACE_BOOL(ANNOYING)) {
- sz = sizeof(event);
- CHECK_SYS( getsockopt(sk, IPPROTO_SCTP, SCTP_EVENTS, &event, &sz) );
-+#if 0 /* Open5GS : workaround for SCTP */
- if (sz != sizeof(event))
-+#else
-+ if (sz != sizeof(event) && sz != sctp_sockopt_event_subscribe_size)
-+#endif
- {
- TRACE_DEBUG(INFO, "Invalid size of socket option: %d / %d", sz, (socklen_t)sizeof(event));
- return ENOTSUP;
-@@ -1138,10 +1165,12 @@ ssize_t fd_sctp_sendstrv(struct cnxctx * conn, uint16_t strid, const struct iove
- hdr->cmsg_type = SCTP_SNDRCV;
- sndrcv = (struct sctp_sndrcvinfo *)CMSG_DATA(hdr);
- sndrcv->sinfo_stream = strid;
-+ sndrcv->sinfo_ppid = htonl(46);
- #else /* OLD_SCTP_SOCKET_API */
- hdr->cmsg_type = SCTP_SNDINFO;
- sndinf = (struct sctp_sndinfo *)CMSG_DATA(hdr);
- sndinf->snd_sid = strid;
-+ sndinf->snd_ppid = htonl(46);
- #endif /* OLD_SCTP_SOCKET_API */
- /* note : we could store other data also, for example in .sinfo_ppid for remote peer or in .sinfo_context for errors. */
-
-diff --git a/libfdcore/sctp_compat.c b/libfdcore/sctp_compat.c
-new file mode 100644
-index 0000000..9c7c922
---- /dev/null
-+++ b/libfdcore/sctp_compat.c
-@@ -0,0 +1,193 @@
-+#include "fdcore-internal.h"
-+#include "sctp-internal.h"
-+
-+#include <netinet/sctp.h>
-+
-+int sctp_sockopt_event_subscribe_size = 0;
-+int sctp_sockopt_paddrparams_size = 0;
-+
-+/* is any of the bytes from offset .. u8_size in 'u8' non-zero? return offset
-+ * or -1 if all zero */
-+static int byte_nonzero(
-+ const uint8_t *u8, unsigned int offset, unsigned int u8_size)
-+{
-+ int j;
-+
-+ for (j = offset; j < u8_size; j++) {
-+ if (u8[j] != 0)
-+ return j;
-+ }
-+
-+ return -1;
-+}
-+
-+int determine_sctp_sockopt_event_subscribe_size(void)
-+{
-+ uint8_t buf[256];
-+ socklen_t buf_len = sizeof(buf);
-+ int sd, rc;
-+
-+ /* only do this once */
-+ if (sctp_sockopt_event_subscribe_size != 0)
-+ return 0;
-+
-+ sd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP);
-+ if (sd < 0)
-+ return sd;
-+
-+ memset(buf, 0, sizeof(buf));
-+ rc = getsockopt(sd, IPPROTO_SCTP, SCTP_EVENTS, buf, &buf_len);
-+ close(sd);
-+ if (rc < 0) {
-+ LOG_E("getsockopt(SCTP_PEER_ADDR_PARAMS) failed [%d:%s]",
-+ rc, strerror(errno));
-+ return rc;
-+ }
-+
-+ sctp_sockopt_event_subscribe_size = buf_len;
-+
-+ LOG_D("sizes of 'struct sctp_event_subscribe': "
-+ "compile-time %zu, kernel: %u",
-+ sizeof(struct sctp_event_subscribe),
-+ sctp_sockopt_event_subscribe_size);
-+ return 0;
-+}
-+
-+/*
-+ * The workaround is stolen from libosmo-netif.
-+ * - http://osmocom.org/projects/libosmo-netif/repository/revisions/master/entry/src/stream.c
-+ *
-+ * Attempt to work around Linux kernel ABI breakage
-+ *
-+ * The Linux kernel ABI for the SCTP_EVENTS socket option has been broken
-+ * repeatedly.
-+ * - until commit 35ea82d611da59f8bea44a37996b3b11bb1d3fd7 ( kernel < 4.11),
-+ * the size is 10 bytes
-+ * - in 4.11 it is 11 bytes
-+ * - in 4.12 .. 5.4 it is 13 bytes
-+ * - in kernels >= 5.5 it is 14 bytes
-+ *
-+ * This wouldn't be a problem if the kernel didn't have a "stupid" assumption
-+ * that the structure size passed by userspace will match 1:1 the length
-+ * of the structure at kernel compile time. In an ideal world, it would just
-+ * use the known first bytes and assume the remainder is all zero.
-+ * But as it doesn't do that, let's try to work around this */
-+int sctp_setsockopt_event_subscribe_workaround(
-+ int fd, const struct sctp_event_subscribe *event_subscribe)
-+{
-+ const unsigned int compiletime_size = sizeof(*event_subscribe);
-+ int rc;
-+
-+ if (determine_sctp_sockopt_event_subscribe_size() < 0) {
-+ LOG_E("Cannot determine SCTP_EVENTS socket option size");
-+ return -1;
-+ }
-+
-+ if (compiletime_size == sctp_sockopt_event_subscribe_size) {
-+ /* no kernel workaround needed */
-+ return setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS,
-+ event_subscribe, compiletime_size);
-+ } else if (compiletime_size < sctp_sockopt_event_subscribe_size) {
-+ /* we are using an older userspace with a more modern kernel
-+ * and hence need to pad the data */
-+ uint8_t buf[256];
-+ ASSERT(sctp_sockopt_event_subscribe_size <= sizeof(buf));
-+
-+ memcpy(buf, event_subscribe, compiletime_size);
-+ memset(buf + sizeof(*event_subscribe),
-+ 0, sctp_sockopt_event_subscribe_size - compiletime_size);
-+ return setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS,
-+ buf, sctp_sockopt_event_subscribe_size);
-+ } else /* if (compiletime_size > sctp_sockopt_event_subscribe_size) */ {
-+ /* we are using a newer userspace with an older kernel and hence
-+ * need to truncate the data - but only if the caller didn't try
-+ * to enable any of the events of the truncated portion */
-+ rc = byte_nonzero((const uint8_t *)event_subscribe,
-+ sctp_sockopt_event_subscribe_size, compiletime_size);
-+ if (rc >= 0) {
-+ LOG_E("Kernel only supports sctp_event_subscribe of %u bytes, "
-+ "but caller tried to enable more modern event at offset %u",
-+ sctp_sockopt_event_subscribe_size, rc);
-+ return -1;
-+ }
-+
-+ return setsockopt(fd, IPPROTO_SCTP, SCTP_EVENTS, event_subscribe,
-+ sctp_sockopt_event_subscribe_size);
-+ }
-+}
-+
-+int determine_sctp_sockopt_paddrparams_size(void)
-+{
-+ uint8_t buf[256];
-+ socklen_t buf_len = sizeof(buf);
-+ int sd, rc;
-+
-+ /* only do this once */
-+ if (sctp_sockopt_paddrparams_size != 0)
-+ return 0;
-+
-+ sd = socket(AF_INET, SOCK_STREAM, IPPROTO_SCTP);
-+ if (sd < 0)
-+ return sd;
-+
-+ memset(buf, 0, sizeof(buf));
-+ rc = getsockopt(sd, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS, buf, &buf_len);
-+ close(sd);
-+ if (rc < 0) {
-+ LOG_E("getsockopt(SCTP_PEER_ADDR_PARAMS) failed [%d:%s]",
-+ rc, strerror(errno));
-+ return rc;
-+ }
-+
-+ sctp_sockopt_paddrparams_size = buf_len;
-+
-+ LOG_D("sizes of 'struct sctp_event_subscribe': "
-+ "compile-time %zu, kernel: %u",
-+ sizeof(struct sctp_event_subscribe),
-+ sctp_sockopt_event_subscribe_size);
-+ return 0;
-+}
-+
-+int sctp_setsockopt_paddrparams_workaround(
-+ int fd, const struct sctp_paddrparams *paddrparams)
-+{
-+ const unsigned int compiletime_size = sizeof(*paddrparams);
-+ int rc;
-+
-+ if (determine_sctp_sockopt_paddrparams_size() < 0) {
-+ LOG_E("Cannot determine SCTP_EVENTS socket option size");
-+ return -1;
-+ }
-+
-+ if (compiletime_size == sctp_sockopt_paddrparams_size) {
-+ /* no kernel workaround needed */
-+ return setsockopt(fd, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS,
-+ paddrparams, compiletime_size);
-+ } else if (compiletime_size < sctp_sockopt_paddrparams_size) {
-+ /* we are using an older userspace with a more modern kernel
-+ * and hence need to pad the data */
-+ uint8_t buf[256];
-+ ASSERT(sctp_sockopt_paddrparams_size <= sizeof(buf));
-+
-+ memcpy(buf, paddrparams, compiletime_size);
-+ memset(buf + sizeof(*paddrparams),
-+ 0, sctp_sockopt_paddrparams_size - compiletime_size);
-+ return setsockopt(fd, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS,
-+ buf, sctp_sockopt_paddrparams_size);
-+ } else /* if (compiletime_size > sctp_sockopt_paddrparams_size) */ {
-+ /* we are using a newer userspace with an older kernel and hence
-+ * need to truncate the data - but only if the caller didn't try
-+ * to enable any of the events of the truncated portion */
-+ rc = byte_nonzero((const uint8_t *)paddrparams,
-+ sctp_sockopt_paddrparams_size, compiletime_size);
-+ if (rc >= 0) {
-+ LOG_E("Kernel only supports sctp_event_subscribe of %u bytes, "
-+ "but caller tried to enable more modern event at offset %u",
-+ sctp_sockopt_paddrparams_size, rc);
-+ return -1;
-+ }
-+
-+ return setsockopt(fd, IPPROTO_SCTP, SCTP_PEER_ADDR_PARAMS, paddrparams,
-+ sctp_sockopt_paddrparams_size);
-+ }
-+}
-diff --git a/libfdproto/meson.build b/libfdproto/meson.build
-new file mode 100644
-index 0000000..1bf0963
---- /dev/null
-+++ b/libfdproto/meson.build
-@@ -0,0 +1,48 @@
-+# Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
-+
-+# This file is part of Open5GS.
-+
-+# This program is free software: you can redistribute it and/or modify
-+# it under the terms of the GNU Affero General Public License as published by
-+# the Free Software Foundation, either version 3 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, see <https://www.gnu.org/licenses/>.
-+
-+fdproto_sources = files('''
-+ fdproto-internal.h
-+ dictionary.c
-+ dictionary_functions.c
-+ dispatch.c
-+ fifo.c
-+ init.c
-+ lists.c
-+ log.c
-+ messages.c
-+ ostr.c
-+ portability.c
-+ rt_data.c
-+ sessions.c
-+ utils.c
-+ version.c
-+'''.split())
-+
-+libfdproto = library('fdproto',
-+ sources : [fdproto_sources],
-+ version : freeDiameter_version,
-+ soversion : freeDiameter_soversion,
-+ include_directories : freeDiameter_includes,
-+ dependencies : [threads, librt, libidn ],
-+ install : true)
-+
-+libfdproto_dep = declare_dependency(
-+ link_with : libfdproto,
-+ include_directories : freeDiameter_includes,
-+ dependencies : [threads, librt, libidn ],
-+)
-diff --git a/meson.build b/meson.build
-new file mode 100644
-index 0000000..4b29e30
---- /dev/null
-+++ b/meson.build
-@@ -0,0 +1,71 @@
-+# Copyright (C) 2019 by Sukchan Lee <acetcom@gmail.com>
-+
-+# This file is part of Open5GS.
-+
-+# This program is free software: you can redistribute it and/or modify
-+# it under the terms of the GNU Affero General Public License as published by
-+# the Free Software Foundation, either version 3 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, see <https://www.gnu.org/licenses/>.
-+
-+project('freediameter', 'c',
-+ version : '1.3.2',
-+ license : 'BSD-3-clause',
-+ meson_version : '>= 0.43.0',
-+ default_options : [
-+ 'warning_level=1',
-+ 'c_std=gnu89',
-+ 'prefix=/usr',
-+ ],
-+)
-+
-+freeDiameter_version = meson.project_version()
-+freeDiameter_soversion = '7'
-+
-+prefix = get_option('prefix')
-+bindir = join_paths(prefix, get_option('bindir'))
-+libdir = join_paths(prefix, get_option('libdir'))
-+sysconfdir = join_paths(prefix, get_option('sysconfdir'))
-+localstatedir = join_paths(prefix, get_option('localstatedir'))
-+
-+cc = meson.get_compiler('c')
-+host_system = host_machine.system()
-+
-+flex = find_program('flex')
-+bison = find_program('bison')
-+
-+# Compiler flags
-+if cc.get_id() == 'gcc' or cc.get_id() == 'clang'
-+ possible_cc_flags = [
-+ '-Werror',
-+
-+ '-Wno-unused-variable',
-+ '-Wno-unused-but-set-variable',
-+ '-Wno-maybe-uninitialized',
-+ '-Wno-format-truncation',
-+ '-Wno-stringop-truncation',
-+ ]
-+else
-+ possible_cc_flags = []
-+endif
-+
-+add_project_arguments(
-+ cc.get_supported_arguments(possible_cc_flags),
-+ language : 'c')
-+
-+freeDiameter_includes = include_directories('''
-+ include
-+ .
-+'''.split())
-+
-+subdir('include/freeDiameter')
-+subdir('libfdproto')
-+subdir('libfdcore')
-+subdir('extensions')
---
-2.39.5
-
diff --git a/debian/patches/0002-Redundant-So-I-removed-it.patch b/debian/patches/0002-Redundant-So-I-removed-it.patch
deleted file mode 100644
index 2871585..0000000
--- a/debian/patches/0002-Redundant-So-I-removed-it.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 13d7b451ffdf6f58afcd95e4f9814fc18f845293 Mon Sep 17 00:00:00 2001
-From: Sukchan Lee <acetcom@gmail.com>
-Date: Mon, 29 Mar 2021 22:29:41 +0900
-Subject: [PATCH 02/16] Redundant! So, I removed it
-
----
- libfdcore/p_psm.c | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/libfdcore/p_psm.c b/libfdcore/p_psm.c
-index 801d579..6368bb0 100644
---- a/libfdcore/p_psm.c
-+++ b/libfdcore/p_psm.c
-@@ -950,10 +950,8 @@ void fd_psm_abord(struct fd_peer * peer )
- /* Cleanup the data */
- fd_psm_cleanup(peer, 1);
-
--#if 0 /* Open5GS : not stable to finish freeDiameter */
- /* Destroy the event list */
- CHECK_FCT_DO( fd_fifo_del(&peer->p_events), /* continue */ );
--#endif
-
- /* Remaining cleanups are performed in fd_peer_free */
- return;
---
-2.39.5
-
diff --git a/debian/patches/0002-install-extensions-in-usr-lib-freeDiameter.-Do-not-i.patch b/debian/patches/0002-install-extensions-in-usr-lib-freeDiameter.-Do-not-i.patch
index b4c8d89..1b04b4b 100644
--- a/debian/patches/0002-install-extensions-in-usr-lib-freeDiameter.-Do-not-i.patch
+++ b/debian/patches/0002-install-extensions-in-usr-lib-freeDiameter.-Do-not-i.patch
@@ -9,7 +9,7 @@ Subject: install extensions in /usr/lib/freeDiameter. Do not install two
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index d41c645..343bd67 100644
+index b275cc2..40e3b29 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -35,7 +35,7 @@ ENDIF (NOT DEFINED LIB_INSTALL_DIR)
diff --git a/debian/patches/0003-Rollback-for-open5gs-from-v1.1.0-to-v1.2.4.patch b/debian/patches/0003-Rollback-for-open5gs-from-v1.1.0-to-v1.2.4.patch
deleted file mode 100644
index 514f936..0000000
--- a/debian/patches/0003-Rollback-for-open5gs-from-v1.1.0-to-v1.2.4.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 089e7cfa4c7947563ded23c2a6e6661aa5ac6fc7 Mon Sep 17 00:00:00 2001
-From: Sukchan Lee <acetcom@gmail.com>
-Date: Thu, 1 Apr 2021 09:23:07 +0900
-Subject: [PATCH 03/16] Rollback for open5gs from v1.1.0 to v1.2.4
-
----
- extensions/dict_dcca_3gpp/add_avps.c | 8 ++++++++
- include/freeDiameter/libfdproto.h | 4 ++++
- libfdproto/log.c | 24 ++++++++++++++++++++++++
- 3 files changed, 36 insertions(+)
-
-diff --git a/extensions/dict_dcca_3gpp/add_avps.c b/extensions/dict_dcca_3gpp/add_avps.c
-index 60d3c64..f8caeb6 100644
---- a/extensions/dict_dcca_3gpp/add_avps.c
-+++ b/extensions/dict_dcca_3gpp/add_avps.c
-@@ -264,7 +264,11 @@ int add_avps()
- struct dict_avp_data data = {
- 15, /* Code */
- 10415, /* Vendor */
-+#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- "3GPP-SGSN-Ipv6-Address", /* Name */
-+#else
-+ "3GPP-SGSN-IPv6-Address", /* Name */
-+#endif
- AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */
- AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */
- AVP_TYPE_OCTETSTRING /* base type of data */
-@@ -9056,7 +9060,11 @@ int add_avps()
- struct dict_avp_data data = {
- 1488, /* Code */
- 10415, /* Vendor */
-+#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- "Call-Barring-Info", /* Name */
-+#else
-+ "Call-Barring-Infor-List", /* Name */
-+#endif
- AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */
- AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */
- AVP_TYPE_GROUPED /* base type of data */
-diff --git a/include/freeDiameter/libfdproto.h b/include/freeDiameter/libfdproto.h
-index 26f8617..0118dc6 100644
---- a/include/freeDiameter/libfdproto.h
-+++ b/include/freeDiameter/libfdproto.h
-@@ -208,7 +208,11 @@ char * fd_log_time ( struct timespec * ts, char * buf, size_t len, int incl_date
- * RETURN VALUE:
- * int : Success or failure
- */
-+#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- int fd_log_handler_register ( void (*logger)(int loglevel, const char * format, va_list args) );
-+#else
-+int fd_log_handler_register ( void (*logger)(int loglevel, const char *fname, int line, const char * format, va_list args) );
-+#endif
-
- /*
- * FUNCTION: fd_log_handler_unregister
-diff --git a/libfdproto/log.c b/libfdproto/log.c
-index c0b6ec5..5c81666 100644
---- a/libfdproto/log.c
-+++ b/libfdproto/log.c
-@@ -41,7 +41,11 @@ pthread_mutex_t fd_log_lock = PTHREAD_MUTEX_INITIALIZER;
- pthread_key_t fd_log_thname;
- int fd_g_debug_lvl = FD_LOG_NOTICE;
-
-+#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- static void fd_internal_logger( int, const char *, va_list );
-+#else
-+static void fd_internal_logger( int, const char *, int, const char *, va_list );
-+#endif
- static int use_colors = 0; /* 0: not init, 1: yes, 2: no */
-
- /* These may be used to pass specific debug requests via the command-line parameters */
-@@ -53,10 +57,18 @@ int fd_breaks = 0;
- int fd_breakhere(void) { return ++fd_breaks; }
-
- /* Allow passing of the log and debug information from base stack to extensions */
-+#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- void (*fd_logger)( int loglevel, const char * format, va_list args ) = fd_internal_logger;
-+#else
-+void (*fd_logger)( int loglevel, const char *fname, int line, const char * format, va_list args ) = fd_internal_logger;
-+#endif
-
- /* Register an external call back for tracing and debug */
-+#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- int fd_log_handler_register( void (*logger)(int loglevel, const char * format, va_list args) )
-+#else
-+int fd_log_handler_register ( void (*logger)(int loglevel, const char *fname, int line, const char * format, va_list args) )
-+#endif
- {
- CHECK_PARAMS( logger );
-
-@@ -85,7 +97,11 @@ static void fd_cleanup_mutex_silent( void * mutex )
- }
-
-
-+#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- static void fd_internal_logger( int printlevel, const char *format, va_list ap )
-+#else
-+static void fd_internal_logger( int printlevel, const char *fname, int line, const char *format, va_list ap )
-+#endif
- {
- char buf[25];
-
-@@ -136,7 +152,11 @@ void fd_log ( int loglevel, const char * format, ... )
- pthread_cleanup_push(fd_cleanup_mutex_silent, &fd_log_lock);
-
- va_start(ap, format);
-+#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- fd_logger(loglevel, format, ap);
-+#else
-+ fd_logger(loglevel, NULL, 0, format, ap);
-+#endif
- va_end(ap);
-
- pthread_cleanup_pop(0);
-@@ -150,7 +170,11 @@ void fd_log_va ( int loglevel, const char * format, va_list args )
- (void)pthread_mutex_lock(&fd_log_lock);
-
- pthread_cleanup_push(fd_cleanup_mutex_silent, &fd_log_lock);
-+#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- fd_logger(loglevel, format, args);
-+#else
-+ fd_logger(loglevel, NULL, 0, format, args);
-+#endif
- pthread_cleanup_pop(0);
-
- (void)pthread_mutex_unlock(&fd_log_lock);
---
-2.39.5
-
diff --git a/debian/patches/0003-Set-default-debian-location-for-freeDiameter-configu.patch b/debian/patches/0003-Set-default-debian-location-for-freeDiameter-configu.patch
index 5ff02d8..f08dc90 100644
--- a/debian/patches/0003-Set-default-debian-location-for-freeDiameter-configu.patch
+++ b/debian/patches/0003-Set-default-debian-location-for-freeDiameter-configu.patch
@@ -7,7 +7,7 @@ Subject: Set default debian location for freeDiameter configuration files
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 343bd67..4933d9a 100644
+index 40e3b29..b0396c8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,7 +26,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
diff --git a/debian/patches/0004-Use-freeDiameter-1.5.0-in-Open5GS-v2.2.3-or-higher.patch b/debian/patches/0004-Use-freeDiameter-1.5.0-in-Open5GS-v2.2.3-or-higher.patch
deleted file mode 100644
index bae16f6..0000000
--- a/debian/patches/0004-Use-freeDiameter-1.5.0-in-Open5GS-v2.2.3-or-higher.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From cbb9232111b8b1bb4997e0cbb083b727d0dc8a77 Mon Sep 17 00:00:00 2001
-From: Sukchan Lee <acetcom@gmail.com>
-Date: Thu, 1 Apr 2021 09:26:44 +0900
-Subject: [PATCH 04/16] Use freeDiameter-1.5.0 in Open5GS v2.2.3 or higher
-
----
- extensions/dict_dcca_3gpp/add_avps.c | 8 --------
- include/freeDiameter/libfdproto.h | 4 ----
- libfdproto/log.c | 24 ------------------------
- 3 files changed, 36 deletions(-)
-
-diff --git a/extensions/dict_dcca_3gpp/add_avps.c b/extensions/dict_dcca_3gpp/add_avps.c
-index f8caeb6..60d3c64 100644
---- a/extensions/dict_dcca_3gpp/add_avps.c
-+++ b/extensions/dict_dcca_3gpp/add_avps.c
-@@ -264,11 +264,7 @@ int add_avps()
- struct dict_avp_data data = {
- 15, /* Code */
- 10415, /* Vendor */
--#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- "3GPP-SGSN-Ipv6-Address", /* Name */
--#else
-- "3GPP-SGSN-IPv6-Address", /* Name */
--#endif
- AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */
- AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */
- AVP_TYPE_OCTETSTRING /* base type of data */
-@@ -9060,11 +9056,7 @@ int add_avps()
- struct dict_avp_data data = {
- 1488, /* Code */
- 10415, /* Vendor */
--#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- "Call-Barring-Info", /* Name */
--#else
-- "Call-Barring-Infor-List", /* Name */
--#endif
- AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flags */
- AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY, /* Fixed flag values */
- AVP_TYPE_GROUPED /* base type of data */
-diff --git a/include/freeDiameter/libfdproto.h b/include/freeDiameter/libfdproto.h
-index 0118dc6..26f8617 100644
---- a/include/freeDiameter/libfdproto.h
-+++ b/include/freeDiameter/libfdproto.h
-@@ -208,11 +208,7 @@ char * fd_log_time ( struct timespec * ts, char * buf, size_t len, int incl_date
- * RETURN VALUE:
- * int : Success or failure
- */
--#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- int fd_log_handler_register ( void (*logger)(int loglevel, const char * format, va_list args) );
--#else
--int fd_log_handler_register ( void (*logger)(int loglevel, const char *fname, int line, const char * format, va_list args) );
--#endif
-
- /*
- * FUNCTION: fd_log_handler_unregister
-diff --git a/libfdproto/log.c b/libfdproto/log.c
-index 5c81666..c0b6ec5 100644
---- a/libfdproto/log.c
-+++ b/libfdproto/log.c
-@@ -41,11 +41,7 @@ pthread_mutex_t fd_log_lock = PTHREAD_MUTEX_INITIALIZER;
- pthread_key_t fd_log_thname;
- int fd_g_debug_lvl = FD_LOG_NOTICE;
-
--#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- static void fd_internal_logger( int, const char *, va_list );
--#else
--static void fd_internal_logger( int, const char *, int, const char *, va_list );
--#endif
- static int use_colors = 0; /* 0: not init, 1: yes, 2: no */
-
- /* These may be used to pass specific debug requests via the command-line parameters */
-@@ -57,18 +53,10 @@ int fd_breaks = 0;
- int fd_breakhere(void) { return ++fd_breaks; }
-
- /* Allow passing of the log and debug information from base stack to extensions */
--#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- void (*fd_logger)( int loglevel, const char * format, va_list args ) = fd_internal_logger;
--#else
--void (*fd_logger)( int loglevel, const char *fname, int line, const char * format, va_list args ) = fd_internal_logger;
--#endif
-
- /* Register an external call back for tracing and debug */
--#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- int fd_log_handler_register( void (*logger)(int loglevel, const char * format, va_list args) )
--#else
--int fd_log_handler_register ( void (*logger)(int loglevel, const char *fname, int line, const char * format, va_list args) )
--#endif
- {
- CHECK_PARAMS( logger );
-
-@@ -97,11 +85,7 @@ static void fd_cleanup_mutex_silent( void * mutex )
- }
-
-
--#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- static void fd_internal_logger( int printlevel, const char *format, va_list ap )
--#else
--static void fd_internal_logger( int printlevel, const char *fname, int line, const char *format, va_list ap )
--#endif
- {
- char buf[25];
-
-@@ -152,11 +136,7 @@ void fd_log ( int loglevel, const char * format, ... )
- pthread_cleanup_push(fd_cleanup_mutex_silent, &fd_log_lock);
-
- va_start(ap, format);
--#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- fd_logger(loglevel, format, ap);
--#else
-- fd_logger(loglevel, NULL, 0, format, ap);
--#endif
- va_end(ap);
-
- pthread_cleanup_pop(0);
-@@ -170,11 +150,7 @@ void fd_log_va ( int loglevel, const char * format, va_list args )
- (void)pthread_mutex_lock(&fd_log_lock);
-
- pthread_cleanup_push(fd_cleanup_mutex_silent, &fd_log_lock);
--#if 0 /* For Open5GS from v1.1.0 to v2.2.2 */
- fd_logger(loglevel, format, args);
--#else
-- fd_logger(loglevel, NULL, 0, format, args);
--#endif
- pthread_cleanup_pop(0);
-
- (void)pthread_mutex_unlock(&fd_log_lock);
---
-2.39.5
-
diff --git a/debian/patches/0005-Build-using-old-API-since-the-new-FTBFS-on-sid.patch b/debian/patches/0005-Build-using-old-API-since-the-new-FTBFS-on-sid.patch
deleted file mode 100644
index 2d1c581..0000000
--- a/debian/patches/0005-Build-using-old-API-since-the-new-FTBFS-on-sid.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Ruben Undheim <ruben.undheim@gmail.com>
-Date: Sun, 14 Oct 2018 10:18:03 +0200
-Subject: Build using old API, since the new FTBFS on sid
-
----
- libfdcore/sctp.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/libfdcore/sctp.c b/libfdcore/sctp.c
-index c80a497..7aeef58 100644
---- a/libfdcore/sctp.c
-+++ b/libfdcore/sctp.c
-@@ -48,10 +48,9 @@
- /* #define OLD_SCTP_SOCKET_API */
-
- /* Automatically fallback to old API if some of the new symbols are not defined */
--#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_RECVRCVINFO)) || (!defined(SCTP_SNDINFO)))
-+//#if (!defined(SCTP_CONNECTX_4_ARGS) || (!defined(SCTP_RECVRCVINFO)) || (!defined(SCTP_SNDINFO)))
- # define OLD_SCTP_SOCKET_API
--#endif
--
-+//#endif
-
- /* Temper with the retransmission timers to try and improve disconnection detection response? Undef this to keep the defaults of SCTP stack */
- #ifndef USE_DEFAULT_SCTP_RTX_PARAMS /* make this a configuration option if useful */
diff --git a/debian/patches/0005-Update-version-file-to-1.5.0-in-meson.build.patch b/debian/patches/0005-Update-version-file-to-1.5.0-in-meson.build.patch
deleted file mode 100644
index 91d2336..0000000
--- a/debian/patches/0005-Update-version-file-to-1.5.0-in-meson.build.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 0dec8211fe61fccf188a191041d5191b083eb490 Mon Sep 17 00:00:00 2001
-From: Sukchan Lee <acetcom@gmail.com>
-Date: Wed, 16 Jun 2021 22:02:04 +0900
-Subject: [PATCH 05/16] Update version file to 1.5.0 in meson.build
-
----
- meson.build | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index 4b29e30..42a45b5 100644
---- a/meson.build
-+++ b/meson.build
-@@ -16,7 +16,7 @@
- # along with this program. If not, see <https://www.gnu.org/licenses/>.
-
- project('freediameter', 'c',
-- version : '1.3.2',
-+ version : '1.5.0',
- license : 'BSD-3-clause',
- meson_version : '>= 0.43.0',
- default_options : [
---
-2.39.5
-
diff --git a/debian/patches/0006-Result-Code-is-optional-in-Rx.patch b/debian/patches/0006-Result-Code-is-optional-in-Rx.patch
deleted file mode 100644
index a530dba..0000000
--- a/debian/patches/0006-Result-Code-is-optional-in-Rx.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 6ffb9fb9d18ee4160e5a4d45b7e0cbfbad4cb772 Mon Sep 17 00:00:00 2001
-From: Sukchan Lee <acetcom@gmail.com>
-Date: Thu, 29 Jul 2021 17:28:47 +0900
-Subject: [PATCH 06/16] Result-Code is optional in Rx
-
----
- extensions/dict_nasreq/dict_nasreq.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/extensions/dict_nasreq/dict_nasreq.c b/extensions/dict_nasreq/dict_nasreq.c
-index 1d96f23..5bf13c5 100644
---- a/extensions/dict_nasreq/dict_nasreq.c
-+++ b/extensions/dict_nasreq/dict_nasreq.c
-@@ -3169,7 +3169,9 @@ static int dnr_entry(char * conffile)
- { { "Session-Id", RULE_FIXED_HEAD, -1, 1 }
- ,{ "Auth-Application-Id", RULE_REQUIRED, -1, 1 }
- ,{ "Auth-Request-Type", RULE_REQUIRED, -1, 1 }
-+#if 0 /* modified by acetcom */
- ,{ "Result-Code", RULE_REQUIRED, -1, 1 }
-+#endif
- ,{ "Origin-Host", RULE_REQUIRED, -1, 1 }
- ,{ "Origin-Realm", RULE_REQUIRED, -1, 1 }
- ,{ "User-Name", RULE_OPTIONAL, -1, 1 }
---
-2.39.5
-
diff --git a/debian/patches/0007-Result-Code-changes-to-Optional.patch b/debian/patches/0007-Result-Code-changes-to-Optional.patch
index 97a3127..a14af66 100644
--- a/debian/patches/0007-Result-Code-changes-to-Optional.patch
+++ b/debian/patches/0007-Result-Code-changes-to-Optional.patch
@@ -1,4 +1,3 @@
-From b80a8cf50ed1d1dc8263745a1a9f3186c4569488 Mon Sep 17 00:00:00 2001
From: Sukchan Lee <acetcom@gmail.com>
Date: Thu, 29 Jul 2021 18:05:33 +0900
Subject: [PATCH 07/16] Result-Code changes to Optional
@@ -41,6 +40,3 @@ index 5eb7c58..a40c329 100644
,{ "Origin-Host", RULE_REQUIRED, -1, 1 }
,{ "Origin-Realm", RULE_REQUIRED, -1, 1 }
,{ "User-Name", RULE_OPTIONAL, -1, 1 }
---
-2.39.5
-
diff --git a/debian/patches/0008-adding-support-for-building-the-acl_wl-freeDiameter-.patch b/debian/patches/0008-adding-support-for-building-the-acl_wl-freeDiameter-.patch
deleted file mode 100644
index 36ce4d3..0000000
--- a/debian/patches/0008-adding-support-for-building-the-acl_wl-freeDiameter-.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 265bb92e93be81c77e30946e548cb7971121c340 Mon Sep 17 00:00:00 2001
-From: Spencer Sevilla <spencer.builds.networks@gmail.com>
-Date: Tue, 7 Sep 2021 10:51:04 -0700
-Subject: [PATCH 08/16] adding support for building the acl_wl freeDiameter
- extension.
-
----
- extensions/acl_wl/meson.build | 21 +++++++++++++++++++++
- extensions/meson.build | 2 ++
- 2 files changed, 23 insertions(+)
- create mode 100644 extensions/acl_wl/meson.build
-
-diff --git a/extensions/acl_wl/meson.build b/extensions/acl_wl/meson.build
-new file mode 100644
-index 0000000..00c4249
---- /dev/null
-+++ b/extensions/acl_wl/meson.build
-@@ -0,0 +1,21 @@
-+lgen = generator(flex,
-+ output : 'lex.@BASENAME@.c',
-+ arguments : ['-p', '-Cem', '-Paw_conf', '-o', '@OUTPUT@', '@INPUT@'])
-+lfiles = lgen.process('aw_conf.l')
-+
-+pgen = generator(bison,
-+ output : ['@BASENAME@.tab.c', '@BASENAME@.tab.h'],
-+ arguments : ['-p', 'aw_conf', '-d',
-+ '@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@'])
-+pfiles = pgen.process('aw_conf.y')
-+
-+shared_module('acl_wl',
-+ sources : [lfiles, pfiles, files(
-+ 'acl_wl.c',
-+ 'aw_tree.c')],
-+ include_directories : freeDiameter_includes,
-+ dependencies : libfdcore_dep,
-+ name_prefix : '',
-+ name_suffix : 'fdx',
-+ install : true,
-+ install_dir : freeDiameter_extensionsdir)
-\ No newline at end of file
-diff --git a/extensions/meson.build b/extensions/meson.build
-index 9c00f6d..8a36773 100644
---- a/extensions/meson.build
-+++ b/extensions/meson.build
-@@ -45,3 +45,5 @@ shared_module('dict_dcca_3gpp',
- name_suffix : 'fdx',
- install : true,
- install_dir : freeDiameter_extensionsdir)
-+
-+subdir('acl_wl')
-\ No newline at end of file
---
-2.39.5
-
diff --git a/debian/patches/0009-adding-DISABLE_PEER_EXPIRY-flag.patch b/debian/patches/0009-adding-DISABLE_PEER_EXPIRY-flag.patch
deleted file mode 100644
index a2fdce9..0000000
--- a/debian/patches/0009-adding-DISABLE_PEER_EXPIRY-flag.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 369b884a07d1f7aed35049a7cf1e8abce8a5338a Mon Sep 17 00:00:00 2001
-From: Spencer Sevilla <spencer.builds.networks@gmail.com>
-Date: Tue, 7 Sep 2021 10:59:06 -0700
-Subject: [PATCH 09/16] adding DISABLE_PEER_EXPIRY flag
-
----
- meson.build | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/meson.build b/meson.build
-index 42a45b5..0e49526 100644
---- a/meson.build
-+++ b/meson.build
-@@ -51,6 +51,7 @@ if cc.get_id() == 'gcc' or cc.get_id() == 'clang'
- '-Wno-maybe-uninitialized',
- '-Wno-format-truncation',
- '-Wno-stringop-truncation',
-+ '-DDISABLE_PEER_EXPIRY',
- ]
- else
- possible_cc_flags = []
---
-2.39.5
-
diff --git a/debian/patches/0010-move-DISABLE_PEER_EXPIRY-to-libfdcore-1.patch b/debian/patches/0010-move-DISABLE_PEER_EXPIRY-to-libfdcore-1.patch
deleted file mode 100644
index 1cc90ad..0000000
--- a/debian/patches/0010-move-DISABLE_PEER_EXPIRY-to-libfdcore-1.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From d77a2254f5185f1305ddceea2543004e100bcf3b Mon Sep 17 00:00:00 2001
-From: Sukchan Lee <acetcom@gmail.com>
-Date: Sat, 11 Sep 2021 19:41:01 +0900
-Subject: [PATCH 10/16] move DISABLE_PEER_EXPIRY to libfdcore (#1)
-
----
- libfdcore/meson.build | 1 +
- meson.build | 1 -
- 2 files changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libfdcore/meson.build b/libfdcore/meson.build
-index f3b7210..5a26558 100644
---- a/libfdcore/meson.build
-+++ b/libfdcore/meson.build
-@@ -66,6 +66,7 @@ libfdcore = library('fdcore',
- sources : [lfiles, pfiles, fdcore_sources],
- version : freeDiameter_version,
- soversion : freeDiameter_soversion,
-+ c_args : '-DDISABLE_PEER_EXPIRY',
- include_directories : freeDiameter_includes,
- dependencies : [libfdproto_dep,
- libdl, libsctp, libgcrypt, libgnutls],
-diff --git a/meson.build b/meson.build
-index 0e49526..42a45b5 100644
---- a/meson.build
-+++ b/meson.build
-@@ -51,7 +51,6 @@ if cc.get_id() == 'gcc' or cc.get_id() == 'clang'
- '-Wno-maybe-uninitialized',
- '-Wno-format-truncation',
- '-Wno-stringop-truncation',
-- '-DDISABLE_PEER_EXPIRY',
- ]
- else
- possible_cc_flags = []
---
-2.39.5
-
diff --git a/debian/patches/0011-refine-meson-file-for-extensions-2.patch b/debian/patches/0011-refine-meson-file-for-extensions-2.patch
deleted file mode 100644
index c51025b..0000000
--- a/debian/patches/0011-refine-meson-file-for-extensions-2.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 814906ada09c6d2964592d696dab6226d11e8f06 Mon Sep 17 00:00:00 2001
-From: Sukchan Lee <acetcom@gmail.com>
-Date: Sat, 11 Sep 2021 20:17:25 +0900
-Subject: [PATCH 11/16] refine meson file for extensions (#2)
-
----
- extensions/acl_wl/aw_conf.y | 4 ++--
- extensions/acl_wl/meson.build | 30 +++++++++++++--------------
- extensions/dict_dcca_3gpp/meson.build | 10 +++++++++
- extensions/meson.build | 14 ++-----------
- 4 files changed, 29 insertions(+), 29 deletions(-)
- create mode 100644 extensions/dict_dcca_3gpp/meson.build
-
-diff --git a/extensions/acl_wl/aw_conf.y b/extensions/acl_wl/aw_conf.y
-index 3825aa2..43255cb 100644
---- a/extensions/acl_wl/aw_conf.y
-+++ b/extensions/acl_wl/aw_conf.y
-@@ -39,14 +39,14 @@
-
- /* For development only : */
- %debug
--%error-verbose
-+%define parse.error verbose
-
- /* The parser receives the configuration file filename as parameter */
- %parse-param {char * conffile}
-
- /* Keep track of location */
- %locations
--%pure-parser
-+%define api.pure
-
- %{
- #include "acl_wl.h"
-diff --git a/extensions/acl_wl/meson.build b/extensions/acl_wl/meson.build
-index 00c4249..c0fcf1b 100644
---- a/extensions/acl_wl/meson.build
-+++ b/extensions/acl_wl/meson.build
-@@ -1,21 +1,21 @@
- lgen = generator(flex,
-- output : 'lex.@BASENAME@.c',
-- arguments : ['-p', '-Cem', '-Paw_conf', '-o', '@OUTPUT@', '@INPUT@'])
-+ output : 'lex.@BASENAME@.c',
-+ arguments : ['-p', '-Cem', '-Paw_conf', '-o', '@OUTPUT@', '@INPUT@'])
- lfiles = lgen.process('aw_conf.l')
-
- pgen = generator(bison,
-- output : ['@BASENAME@.tab.c', '@BASENAME@.tab.h'],
-- arguments : ['-p', 'aw_conf', '-d',
-- '@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@'])
-+ output : ['@BASENAME@.tab.c', '@BASENAME@.tab.h'],
-+ arguments : ['-p', 'aw_conf', '-d',
-+ '@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@'])
- pfiles = pgen.process('aw_conf.y')
-
--shared_module('acl_wl',
-- sources : [lfiles, pfiles, files(
-- 'acl_wl.c',
-- 'aw_tree.c')],
-- include_directories : freeDiameter_includes,
-- dependencies : libfdcore_dep,
-- name_prefix : '',
-- name_suffix : 'fdx',
-- install : true,
-- install_dir : freeDiameter_extensionsdir)
-\ No newline at end of file
-+shared_module('../acl_wl',
-+ sources : [lfiles, pfiles, files(
-+ 'acl_wl.c',
-+ 'aw_tree.c')],
-+ include_directories : freeDiameter_includes,
-+ dependencies : libfdcore_dep,
-+ name_prefix : '',
-+ name_suffix : 'fdx',
-+ install : true,
-+ install_dir : freeDiameter_extensionsdir)
-diff --git a/extensions/dict_dcca_3gpp/meson.build b/extensions/dict_dcca_3gpp/meson.build
-new file mode 100644
-index 0000000..061490a
---- /dev/null
-+++ b/extensions/dict_dcca_3gpp/meson.build
-@@ -0,0 +1,10 @@
-+shared_module('../dict_dcca_3gpp',
-+ sources : [files(
-+ 'dict_dcca_3gpp.c',
-+ 'add_avps.c')],
-+ include_directories : freeDiameter_includes,
-+ dependencies : libfdcore_dep,
-+ name_prefix : '',
-+ name_suffix : 'fdx',
-+ install : true,
-+ install_dir : freeDiameter_extensionsdir)
-diff --git a/extensions/meson.build b/extensions/meson.build
-index 8a36773..ff833c1 100644
---- a/extensions/meson.build
-+++ b/extensions/meson.build
-@@ -35,15 +35,5 @@ foreach s : fd_ext_sources
- install_dir : freeDiameter_extensionsdir)
- endforeach
-
--shared_module('dict_dcca_3gpp',
-- sources : [files(
-- 'dict_dcca_3gpp/dict_dcca_3gpp.c',
-- 'dict_dcca_3gpp/add_avps.c')],
-- include_directories : freeDiameter_includes,
-- dependencies : libfdcore_dep,
-- name_prefix : '',
-- name_suffix : 'fdx',
-- install : true,
-- install_dir : freeDiameter_extensionsdir)
--
--subdir('acl_wl')
-\ No newline at end of file
-+subdir('dict_dcca_3gpp')
-+subdir('acl_wl')
---
-2.39.5
-
diff --git a/debian/patches/0012-Remove-DISABLE_PEER_EXPIRY-1.patch b/debian/patches/0012-Remove-DISABLE_PEER_EXPIRY-1.patch
deleted file mode 100644
index ecfb0c3..0000000
--- a/debian/patches/0012-Remove-DISABLE_PEER_EXPIRY-1.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From b9a1bdd79c9dbba9d7e17dc83ba9b08cd018b231 Mon Sep 17 00:00:00 2001
-From: Sukchan Lee <acetcom@gmail.com>
-Date: Sat, 11 Sep 2021 21:45:52 +0900
-Subject: [PATCH 12/16] Remove DISABLE_PEER_EXPIRY (#1)
-
----
- libfdcore/meson.build | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/libfdcore/meson.build b/libfdcore/meson.build
-index 5a26558..f3b7210 100644
---- a/libfdcore/meson.build
-+++ b/libfdcore/meson.build
-@@ -66,7 +66,6 @@ libfdcore = library('fdcore',
- sources : [lfiles, pfiles, fdcore_sources],
- version : freeDiameter_version,
- soversion : freeDiameter_soversion,
-- c_args : '-DDISABLE_PEER_EXPIRY',
- include_directories : freeDiameter_includes,
- dependencies : [libfdproto_dep,
- libdl, libsctp, libgcrypt, libgnutls],
---
-2.39.5
-
diff --git a/debian/patches/0013-Add-DISABLE_PEER_EXPIRY-to-the-c_arg.patch b/debian/patches/0013-Add-DISABLE_PEER_EXPIRY-to-the-c_arg.patch
deleted file mode 100644
index 2ebba54..0000000
--- a/debian/patches/0013-Add-DISABLE_PEER_EXPIRY-to-the-c_arg.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From b884d6e77cf22bc8bc713546f2592e9be95c1253 Mon Sep 17 00:00:00 2001
-From: Sukchan Lee <acetcom@gmail.com>
-Date: Fri, 17 Sep 2021 17:20:21 +0900
-Subject: [PATCH 13/16] Add DISABLE_PEER_EXPIRY to the c_arg
-
----
- libfdcore/meson.build | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libfdcore/meson.build b/libfdcore/meson.build
-index f3b7210..5a26558 100644
---- a/libfdcore/meson.build
-+++ b/libfdcore/meson.build
-@@ -66,6 +66,7 @@ libfdcore = library('fdcore',
- sources : [lfiles, pfiles, fdcore_sources],
- version : freeDiameter_version,
- soversion : freeDiameter_soversion,
-+ c_args : '-DDISABLE_PEER_EXPIRY',
- include_directories : freeDiameter_includes,
- dependencies : [libfdproto_dep,
- libdl, libsctp, libgcrypt, libgnutls],
---
-2.39.5
-
diff --git a/debian/patches/0014-fix-the-build-error-in-meson-v0.6.0.patch b/debian/patches/0014-fix-the-build-error-in-meson-v0.6.0.patch
deleted file mode 100644
index 1645cca..0000000
--- a/debian/patches/0014-fix-the-build-error-in-meson-v0.6.0.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 33dbbd20c9107a765dbafb9b1fef16f5f47c65cd Mon Sep 17 00:00:00 2001
-From: Sukchan Lee <acetcom@gmail.com>
-Date: Wed, 27 Oct 2021 18:57:00 +0900
-Subject: [PATCH 14/16] fix the build error in meson v0.6.0
-
----
- extensions/acl_wl/meson.build | 2 +-
- extensions/dict_dcca_3gpp/meson.build | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/extensions/acl_wl/meson.build b/extensions/acl_wl/meson.build
-index c0fcf1b..6619ec6 100644
---- a/extensions/acl_wl/meson.build
-+++ b/extensions/acl_wl/meson.build
-@@ -9,7 +9,7 @@ pgen = generator(bison,
- '@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@'])
- pfiles = pgen.process('aw_conf.y')
-
--shared_module('../acl_wl',
-+shared_module('acl_wl',
- sources : [lfiles, pfiles, files(
- 'acl_wl.c',
- 'aw_tree.c')],
-diff --git a/extensions/dict_dcca_3gpp/meson.build b/extensions/dict_dcca_3gpp/meson.build
-index 061490a..95e3569 100644
---- a/extensions/dict_dcca_3gpp/meson.build
-+++ b/extensions/dict_dcca_3gpp/meson.build
-@@ -1,4 +1,4 @@
--shared_module('../dict_dcca_3gpp',
-+shared_module('dict_dcca_3gpp',
- sources : [files(
- 'dict_dcca_3gpp.c',
- 'add_avps.c')],
---
-2.39.5
-
diff --git a/debian/patches/0015-compile-rt_default-rt_redirect-extension-3.patch b/debian/patches/0015-compile-rt_default-rt_redirect-extension-3.patch
index bb16ab7..3913f11 100644
--- a/debian/patches/0015-compile-rt_default-rt_redirect-extension-3.patch
+++ b/debian/patches/0015-compile-rt_default-rt_redirect-extension-3.patch
@@ -1,4 +1,3 @@
-From 738b648ea7c79d401fac2ba367e8727d7304348d Mon Sep 17 00:00:00 2001
From: Rekord <1324596506@qq.com>
Date: Sun, 21 Jan 2024 14:24:27 +0800
Subject: [PATCH 15/16] compile rt_default & rt_redirect extension (#3)
@@ -7,19 +6,14 @@ Subject: [PATCH 15/16] compile rt_default & rt_redirect extension (#3)
* chore: update rtd_conf.y & restore rt_default-host.h.in
---
- extensions/meson.build | 2 ++
- extensions/rt_default/meson.build | 35 ++++++++++++++++++++++++++++++
- extensions/rt_default/rtd_conf.y | 4 ++--
- extensions/rt_redirect/meson.build | 16 ++++++++++++++
- 4 files changed, 55 insertions(+), 2 deletions(-)
- create mode 100644 extensions/rt_default/meson.build
- create mode 100644 extensions/rt_redirect/meson.build
+ extensions/rt_default/rtd_conf.y | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/extensions/rt_default/rtd_conf.y b/extensions/rt_default/rtd_conf.y
-index e02303c..1ef24ab 100644
+index e02303c..6cdc79c 100644
--- a/extensions/rt_default/rtd_conf.y
+++ b/extensions/rt_default/rtd_conf.y
-@@ -39,14 +39,14 @@
+@@ -39,18 +39,17 @@
/* For development only : */
%debug
@@ -35,8 +29,9 @@ index e02303c..1ef24ab 100644
+%define api.pure
%{
- #include "rt_default.h"
-\ No newline at end of file
---
-2.39.5
-
+-#include "rt_default.h"
+-#include "rtd_conf.tab.h" /* bison is not smart enough to define the YYLTYPE before including this code, so... */
++#include "rt_default.h"#include "rtd_conf.tab.h" /* bison is not smart enough to define the YYLTYPE before including this code, so... */
+
+ /* Forward declaration */
+ int yyparse(char * conffile);
diff --git a/debian/patches/0016-fix-extensions-rt_default-meson.build.patch b/debian/patches/0016-fix-extensions-rt_default-meson.build.patch
deleted file mode 100644
index 591a697..0000000
--- a/debian/patches/0016-fix-extensions-rt_default-meson.build.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 20196a265aecb7b1573ceb526bb619e092c1fd3f Mon Sep 17 00:00:00 2001
-From: Sukchan Lee <acetcom@gmail.com>
-Date: Sun, 24 Mar 2024 18:33:19 +0900
-Subject: [PATCH 16/16] fix extensions/rt_default/meson.build
-
-from extensions/rt_default/meson.build,
-HAVE_REG_STARTEND is defined according to this block:
-
-```
-if cc.has_function('regexec', prefix : '#include <regex.h>')
- conf_data = configuration_data()
- conf_data.set('HAVE_REG_STARTEND', 1)
-endif
-```
-
-However, this block is insufficient to determine
-whether REG_STARTEND is defined, as not all regex.h contain the macro.
-
-Something like the following in extensions/rt_ereg/CMakeLists.txt
-should be used instead:
-
-```
-CHECK_C_SOURCE_COMPILES("${CHECK_REG_STARTEND_SOURCE_CODE}" HAVE_REG_STARTEND)
-IF (HAVE_REG_STARTEND)
- ADD_DEFINITIONS(-DHAVE_REG_STARTEND)
-ENDIF (HAVE_REG_STARTEND)
-```
-
-So, I've fixed it as below.
-
-```
-conf_data = configuration_data()
-if cc.has_header_symbol('regex.h', 'REG_STARTEND')
- conf_data.set('HAVE_REG_STARTEND', 1)
-endif
-```
----
- extensions/rt_default/meson.build | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/extensions/rt_default/meson.build b/extensions/rt_default/meson.build
-index 9d79aa4..0d75877 100644
---- a/extensions/rt_default/meson.build
-+++ b/extensions/rt_default/meson.build
-@@ -1,5 +1,5 @@
--if cc.has_function('regexec', prefix : '#include <regex.h>')
-- conf_data = configuration_data()
-+conf_data = configuration_data()
-+if cc.has_header_symbol('regex.h', 'REG_STARTEND')
- conf_data.set('HAVE_REG_STARTEND', 1)
- endif
- configure_file(output : 'rt_default-host.h',
---
-2.39.5
-
diff --git a/debian/patches/CVE-2020-6098.patch b/debian/patches/CVE-2020-6098.patch
deleted file mode 100644
index a681cbe..0000000
--- a/debian/patches/CVE-2020-6098.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Description: Anybody can send a specially cafted Diameter request, which triggers
- a memory corruption and thus results in a denial-of-service.
-Index: freediameter-1.2.1/libfdproto/messages.c
-===================================================================
---- freediameter-1.2.1.orig/libfdproto/messages.c 2021-03-22 16:47:24.581610685 +0100
-+++ freediameter-1.2.1/libfdproto/messages.c 2021-03-22 16:47:24.573610508 +0100
-@@ -1945,6 +1945,14 @@
- offset += 4;
- }
-
-+ /* Check the length is valid */
-+ if ( avp->avp_public.avp_len < GETAVPHDRSZ(avp->avp_public.avp_flags) ) {
-+ TRACE_DEBUG(INFO, "Invalid AVP size %d",
-+ avp->avp_public.avp_len);
-+ free(avp);
-+ return EBADMSG;
-+ }
-+
- /* Check there is enough remaining data in the buffer */
- if ( (avp->avp_public.avp_len > GETAVPHDRSZ(avp->avp_public.avp_flags))
- && (buflen - offset < avp->avp_public.avp_len - GETAVPHDRSZ(avp->avp_public.avp_flags))) {
-@@ -1991,6 +1999,10 @@
- TRACE_DEBUG(INFO, "Truncated message (%zd / %d)", buflen, msglen );
- return EBADMSG;
- }
-+ if ( msglen < GETMSGHDRSZ() ) {
-+ TRACE_DEBUG(INFO, "Invalid message length (%d)", msglen );
-+ return EBADMSG;
-+ }
-
- /* Create a new object */
- CHECK_MALLOC( new = malloc (sizeof(struct msg)) );
diff --git a/debian/patches/series b/debian/patches/series
index 6024aac..abf5952 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,20 +1,6 @@
-#0002-install-extensions-in-usr-lib-freeDiameter.-Do-not-i.patch
-#0003-Set-default-debian-location-for-freeDiameter-configu.patch
-#0004-Disable-running-tests-that-require-the-kernel-module.patch
-#0005-Build-using-old-API-since-the-new-FTBFS-on-sid.patc
0001-Fix-some-spelling-errors.patch
0002-install-extensions-in-usr-lib-freeDiameter.-Do-not-i.patch
0003-Set-default-debian-location-for-freeDiameter-configu.patch
0004-Disable-running-tests-that-require-the-kernel-module.patch
-#0005-Build-using-old-API-since-the-new-FTBFS-on-sid.patch
-#CVE-2020-6098.patch
0007-Result-Code-changes-to-Optional.patch
-#0008-adding-support-for-building-the-acl_wl-freeDiameter-.patch
-#0009-adding-DISABLE_PEER_EXPIRY-flag.patch
-#0010-move-DISABLE_PEER_EXPIRY-to-libfdcore-1.patch
-#0011-refine-meson-file-for-extensions-2.patch
-#0012-Remove-DISABLE_PEER_EXPIRY-1.patch
-#0013-Add-DISABLE_PEER_EXPIRY-to-the-c_arg.patch
-#0014-fix-the-build-error-in-meson-v0.6.0.patch
0015-compile-rt_default-rt_redirect-extension-3.patch
-0016-fix-extensions-rt_default-meson.build.patch