openwrt-packages/net/aircrack-ng/patches/100-07-compat-pcre-add-comp...

115 lines
5.3 KiB
Diff

From bac9b5fed2bb29e13326c90d7c12a6936fe9f04b Mon Sep 17 00:00:00 2001
From: Andras Gemes <andrasgemes@outlook.com>
Date: Sat, 21 Jan 2023 19:29:58 +0100
Subject: [PATCH 7/9] compat-pcre: add compat-type PCRE header
---
include/Makefile.inc | 1 +
include/aircrack-ng/pcre/compat-pcre.h | 90 ++++++++++++++++++++++++++
2 files changed, 91 insertions(+)
create mode 100644 include/aircrack-ng/pcre/compat-pcre.h
--- a/include/Makefile.inc
+++ b/include/Makefile.inc
@@ -71,6 +71,7 @@ nobase_aircrack_HEADERS = %D%/aircrack-
%D%/aircrack-ng/osdep/network.h \
%D%/aircrack-ng/osdep/osdep.h \
%D%/aircrack-ng/osdep/packed.h \
+ %D%/aircrack-ng/pcre/compat-pcre.h \
%D%/aircrack-ng/ptw/aircrack-ptw-lib.h \
%D%/aircrack-ng/support/common.h \
%D%/aircrack-ng/support/communications.h \
--- /dev/null
+++ b/include/aircrack-ng/pcre/compat-pcre.h
@@ -0,0 +1,90 @@
+/*
+* Copyright (C) 2023 Andras Gemes <andrasgemes@outlook.com>
+*
+* 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 St, Fifth Floor, Boston, MA 02110-1301, USA
+*
+*
+* In addition, as a special exception, the copyright holders give
+* permission to link the code of portions of this program with the
+* OpenSSL library under certain conditions as described in each
+* individual source file, and distribute linked combinations
+* including the two.
+* You must obey the GNU General Public License in all respects
+* for all of the code used other than OpenSSL. * If you modify
+* file(s) with this exception, you may extend this exception to your
+* version of the file(s), but you are not obligated to do so. * If you
+* do not wish to do so, delete this exception statement from your
+* version. * If you delete this exception statement from all source
+* files in the program, then also delete it here.
+*/
+
+#ifndef AIRCRACK_NG_COMPAT_PCRE_H
+#define AIRCRACK_NG_COMPAT_PCRE_H
+
+#ifdef HAVE_PCRE2
+#define PCRE2_CODE_UNIT_WIDTH 8
+#include <pcre2.h>
+#elif defined HAVE_PCRE
+#include <pcre.h>
+#endif
+
+#ifdef HAVE_PCRE2
+#define COMPAT_PCRE_COMPILE(pattern, pcreerror, pcreerroffset) \
+ pcre2_compile((PCRE2_SPTR) (pattern), \
+ PCRE2_ZERO_TERMINATED, \
+ 0, \
+ (pcreerror), \
+ (pcreerroffset), \
+ NULL)
+#elif defined HAVE_PCRE
+#define COMPAT_PCRE_COMPILE(pattern, pcreerror, pcreerroffset) \
+ pcre_compile((pattern), 0, (pcreerror), (pcreerroffset), NULL)
+#endif
+
+#ifdef HAVE_PCRE2
+#define COMPAT_PCRE_MATCH(regex, essid, length, match_data) \
+ pcre2_match((regex), \
+ (PCRE2_SPTR) (essid), \
+ (int) strnlen((char *) (essid), (length)), \
+ 0, \
+ 0, \
+ (match_data), \
+ 0)
+#elif defined HAVE_PCRE
+#define COMPAT_PCRE_MATCH(regex, essid, length, match_data) \
+ pcre_exec((regex), \
+ NULL, \
+ (char *) (essid), \
+ strnlen((char *) (essid), (length)), \
+ 0, \
+ 0, \
+ NULL, \
+ 0)
+#endif
+
+#ifdef HAVE_PCRE2
+#define COMPAT_PCRE_PRINT_ERROR(pcreerroffset, pcreerr) \
+ printf("Error: regular expression compilation failed at " \
+ "offset %zu: %s; aborting\n", \
+ (pcreerroffset), \
+ (pcreerr))
+#elif defined HAVE_PCRE
+#define COMPAT_PCRE_PRINT_ERROR(pcreerroffset, pcreerrorbuf) \
+ printf("Error: regular expression compilation failed at " \
+ "offset %d: %s; aborting\n", \
+ (pcreerroffset), \
+ (pcreerrorbuf))
+#endif
+#endif //AIRCRACK_NG_COMPAT_PCRE_H