From bac9b5fed2bb29e13326c90d7c12a6936fe9f04b Mon Sep 17 00:00:00 2001 From: Andras Gemes 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 +* +* 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 +#elif defined HAVE_PCRE +#include +#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