diff options
author | Donatas Abraitis <donatas@opensourcerouting.org> | 2022-10-31 21:23:51 +0100 |
---|---|---|
committer | Donatas Abraitis <donatas@opensourcerouting.org> | 2022-11-07 20:23:53 +0100 |
commit | 061f5d1cb43938c30847e0ebb49e2b43be3aa4c2 (patch) | |
tree | 5651724c843b645650c1a025c4223f6b29eeddfe /lib/vty.c | |
parent | docker: Reuse all possible cores when building FRR for Alpine (diff) | |
download | frr-061f5d1cb43938c30847e0ebb49e2b43be3aa4c2.tar.xz frr-061f5d1cb43938c30847e0ebb49e2b43be3aa4c2.zip |
lib: Add PCRE2 support
Some results:
```
====
PCRE
====
% ./a.out "^65001" "65001"
comparing: ^65001 / 65001
ret status: 0
[14:31] donatas-pc donatas /home/donatas
% ./a.out "^65001_" "65001"
comparing: ^65001_ / 65001
ret status: 0
=====
PCRE2
=====
% ./a.out "^65001" "65001"
comparing: ^65001 / 65001
ret status: 0
[14:30] donatas-pc donatas /home/donatas
% ./a.out "^65001_" "65001"
comparing: ^65001_ / 65001
ret status: 1
```
Seems that if using PCRE2, we need to escape outer `()` chars and `|`. Sounds
like a bug.
But this is only with some older PCRE2 versions. With >= 10.36, I wasn't able
to reproduce this, everything is fine and working as expected.
Adding _FRR_PCRE2_POSIX definition because pcre2posix.h does not have
include's guard.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
Diffstat (limited to 'lib/vty.c')
-rw-r--r-- | lib/vty.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -24,11 +24,16 @@ #include <lib/version.h> #include <sys/types.h> #include <sys/types.h> -#ifdef HAVE_LIBPCREPOSIX +#ifdef HAVE_LIBPCRE2_POSIX +#ifndef _FRR_PCRE2_POSIX +#define _FRR_PCRE2_POSIX +#include <pcre2posix.h> +#endif /* _FRR_PCRE2_POSIX */ +#elif defined(HAVE_LIBPCREPOSIX) #include <pcreposix.h> #else #include <regex.h> -#endif /* HAVE_LIBPCREPOSIX */ +#endif /* HAVE_LIBPCRE2_POSIX */ #include <stdio.h> #include "linklist.h" |