1
1
mirror of https://github.com/tstack/lnav.git synced 2024-09-11 13:05:51 +03:00

[pretty] More restrictive IPv4 regex.

The regular expression seems to match arbitrary version strings in
pretty-print view. Adding a more restrictive regular expression,
that should be able to distinguish between valid IPv4 addresses and
arbitrary version strings.
This commit is contained in:
Suresh Sundriyal 2015-04-19 00:00:43 -07:00
parent 9ac53b114e
commit 5cd1da8e1a
3 changed files with 18 additions and 3 deletions

View File

@ -103,8 +103,11 @@ static struct {
{ "rangle", pcrepp("\\A(\\>)"),
},
{ "ipv4", pcrepp("\\A(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})"),
{ "ipv4", pcrepp("\\A("
"(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\\.){3}"
"(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])(?![\\d]))"),
},
{ "uuid", pcrepp(
"\\A([0-9a-fA-F]{8}(?:-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12})"), },

View File

@ -185,7 +185,8 @@ dist_noinst_SCRIPTS = \
test_sql_str_func.sh \
test_sql_fs_func.sh \
test_view_colors.sh \
test_vt52_curses.sh
test_vt52_curses.sh \
test_pretty_print.sh
dist_noinst_DATA = \
ansi-colors.0.in \
@ -281,7 +282,8 @@ TESTS = \
test_vt52_curses.sh \
test_top_status \
test_data_parser.sh \
test_yajlpp
test_yajlpp \
test_pretty_print.sh
DISTCLEANFILES = \
*.dat \

10
test/test_pretty_print.sh Normal file
View File

@ -0,0 +1,10 @@
#! /bin/bash
echo '2015-04-18T13:16:30.003 198.51.100.45 <foo>98.51.100.154</foo>9 198.158.100.4<1054 198.51.100.1546 544.9.8.7 98.542.241.99 19143.2.5.6' | \
run_test ${lnav_test} -n -c ":switch-to-view pretty"
check_output "pretty print not able to properly grok ipv4?" <<EOF
2015-04-18T13:16:30.003 198.51.100.45 (unknown)
<foo>98.51.100.154 (unknown)</foo>
9 198.158.100.4 (unknown)<1054 198.51.100.1546 544.9.8.7 98.542.241.99 19143.2.5.6
EOF