You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by am...@apache.org on 2022/11/18 19:56:51 UTC
[trafficserver] branch 10-Dev updated: Errata severity (#9199)
This is an automated email from the ASF dual-hosted git repository.
amc pushed a commit to branch 10-Dev
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/10-Dev by this push:
new 9c6eb61f6 Errata severity (#9199)
9c6eb61f6 is described below
commit 9c6eb61f6fd21fa2a3bc2ecd622283ba3ab85524
Author: Alan M. Carroll <am...@apache.org>
AuthorDate: Fri Nov 18 13:56:45 2022 -0600
Errata severity (#9199)
libswoc: Enable Errata to use ATS core severity levels.
---
include/tscore/DiagsTypes.h | 15 ++------------
include/tscpp/util/ts_diag_levels.h | 38 +++++++++++++++++++++++++++++++++++
include/tscpp/util/ts_errata.h | 40 +++++++++++++++++++++++++++++++++++++
lib/swoc/Makefile.am | 1 +
src/tscore/Makefile.am | 1 +
src/tscpp/api/Makefile.am | 2 +-
src/tscpp/util/Makefile.am | 3 ++-
src/tscpp/util/ts_diags.cc | 33 ++++++++++++++++++++++++++++++
8 files changed, 118 insertions(+), 15 deletions(-)
diff --git a/include/tscore/DiagsTypes.h b/include/tscore/DiagsTypes.h
index e199bdcc5..b9d1145a1 100644
--- a/include/tscore/DiagsTypes.h
+++ b/include/tscore/DiagsTypes.h
@@ -43,6 +43,8 @@
#include "SourceLocation.h"
#include "DbgCtl.h"
+#include "tscpp/util/ts_diag_levels.h"
+
#define DIAGS_MAGIC 0x12345678
#define BYTES_IN_MB 1000000
@@ -59,19 +61,6 @@ struct DiagsModeOutput {
bool to_diagslog;
};
-enum DiagsLevel { // do not renumber --- used as array index
- DL_Diag = 0, // process does not die
- DL_Debug, // process does not die
- DL_Status, // process does not die
- DL_Note, // process does not die
- DL_Warning, // process does not die
- DL_Error, // process does not die
- DL_Fatal, // causes process termination
- DL_Alert, // causes process termination
- DL_Emergency, // causes process termination, exits with UNRECOVERABLE_EXIT
- DL_Undefined // must be last, used for size!
-};
-
enum StdStream { STDOUT = 0, STDERR };
enum RollingEnabledValues { NO_ROLLING = 0, ROLL_ON_TIME, ROLL_ON_SIZE, ROLL_ON_TIME_OR_SIZE, INVALID_ROLLING_VALUE };
diff --git a/include/tscpp/util/ts_diag_levels.h b/include/tscpp/util/ts_diag_levels.h
new file mode 100644
index 000000000..46536eab9
--- /dev/null
+++ b/include/tscpp/util/ts_diag_levels.h
@@ -0,0 +1,38 @@
+/** @file Diagnostic definitions and functions.
+
+@section license License
+
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+#pragma once
+
+/// Severity level for diagnostics.
+/// @internal Used as array indices, do not renumber or rearrange.
+/// @see DiagTypes.h
+enum DiagsLevel {
+ DL_Diag = 0, // process does not die
+ DL_Debug, // process does not die
+ DL_Status, // process does not die
+ DL_Note, // process does not die
+ DL_Warning, // process does not die
+ DL_Error, // process does not die
+ DL_Fatal, // causes process termination
+ DL_Alert, // causes process termination
+ DL_Emergency, // causes process termination, exits with UNRECOVERABLE_EXIT
+ DL_Undefined // must be last, used for size!
+};
diff --git a/include/tscpp/util/ts_errata.h b/include/tscpp/util/ts_errata.h
new file mode 100644
index 000000000..729a56740
--- /dev/null
+++ b/include/tscpp/util/ts_errata.h
@@ -0,0 +1,40 @@
+/** @file Diagnostic definitions and functions.
+
+@section license License
+
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+#pragma once
+
+#include "tscpp/util/ts_diag_levels.h"
+#include "swoc/TextView.h"
+#include "swoc/Errata.h"
+
+static constexpr swoc::Errata::Severity ERRATA_DIAG{DL_Diag};
+static constexpr swoc::Errata::Severity ERRATA_DEBUG{DL_Debug};
+static constexpr swoc::Errata::Severity ERRATA_STATUS{DL_Status};
+static constexpr swoc::Errata::Severity ERRATA_NOTE{DL_Note};
+static constexpr swoc::Errata::Severity ERRATA_WARN{DL_Warning};
+static constexpr swoc::Errata::Severity ERRATA_ERROR{DL_Error};
+static constexpr swoc::Errata::Severity ERRATA_FATAL{DL_Fatal};
+static constexpr swoc::Errata::Severity ERRATA_ALERT{DL_Alert};
+static constexpr swoc::Errata::Severity ERRATA_EMERGENCY{DL_Emergency};
+
+// This is treated as an array so must numerically match with @c DiagsLevel
+static constexpr std::array<swoc::TextView, 9> Severity_Names{
+ {"Diag", "Debug", "Status", "Note", "Warn", "Error", "Fatal", "Alert", "Emergency"}};
diff --git a/lib/swoc/Makefile.am b/lib/swoc/Makefile.am
index b928917f5..4e86e5e10 100644
--- a/lib/swoc/Makefile.am
+++ b/lib/swoc/Makefile.am
@@ -55,6 +55,7 @@ library_include_HEADERS = \
include/swoc/string_view_util.h \
include/swoc/TextView.h \
include/swoc/Vectray.h \
+ include/swoc/string_view_util.h \
include/swoc/HashFNV.h
endif
diff --git a/src/tscore/Makefile.am b/src/tscore/Makefile.am
index 202a86b76..980d7666e 100644
--- a/src/tscore/Makefile.am
+++ b/src/tscore/Makefile.am
@@ -52,6 +52,7 @@ libtscore_la_LIBADD = \
@LIBCAP@ \
@HWLOC_LIBS@ \
@YAMLCPP_LIBS@ \
+ @SWOC_LIBS@ \
-lc
libtscore_la_SOURCES = \
diff --git a/src/tscpp/api/Makefile.am b/src/tscpp/api/Makefile.am
index 1232e92d2..bff43e127 100644
--- a/src/tscpp/api/Makefile.am
+++ b/src/tscpp/api/Makefile.am
@@ -19,7 +19,7 @@ include $(top_srcdir)/build/tidy.mk
lib_LTLIBRARIES = libtscppapi.la
-libtscppapi_la_CPPFLAGS = $(AM_CPPFLAGS) -I $(abs_top_srcdir)/include
+libtscppapi_la_CPPFLAGS = $(AM_CPPFLAGS) -I $(abs_top_srcdir)/include @SWOC_INCLUDES@
libtscppapi_la_LDFLAGS=-lz -lpthread -version-info @TS_LIBTOOL_VERSION@
diff --git a/src/tscpp/util/Makefile.am b/src/tscpp/util/Makefile.am
index 5e9aa2e34..d018e4956 100644
--- a/src/tscpp/util/Makefile.am
+++ b/src/tscpp/util/Makefile.am
@@ -27,9 +27,10 @@ lib_LTLIBRARIES = libtscpputil.la
AM_CPPFLAGS += -I$(abs_top_srcdir)/include @SWOC_INCLUDES@
libtscpputil_la_LDFLAGS = @AM_LDFLAGS@ -no-undefined -version-info @TS_LIBTOOL_VERSION@ @SWOC_LDFLAGS@
+libtscpputil_la_LIBADD = @SWOC_LIBS@
libtscpputil_la_SOURCES = \
- TextView.cc
+ ts_diags.cc TextView.cc
test_tscpputil_CPPFLAGS = $(AM_CPPFLAGS)\
-I$(abs_top_srcdir)/tests/include @SWOC_INCLUDES@
diff --git a/src/tscpp/util/ts_diags.cc b/src/tscpp/util/ts_diags.cc
new file mode 100644
index 000000000..78e6583cb
--- /dev/null
+++ b/src/tscpp/util/ts_diags.cc
@@ -0,0 +1,33 @@
+/** @file Support for common diagnostics between core, plugins, and libswoc.
+
+ This enables specifying the set of methods usable by a user agent based on the remove IP address
+ for a user agent connection.
+
+ @section license License
+
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+
+#include "tscpp/util/ts_diag_levels.h"
+#include "tscpp/util/ts_errata.h"
+
+static const bool INITIALIZED = []() -> bool {
+ swoc::Errata::DEFAULT_SEVERITY = ERRATA_ERROR;
+ swoc::Errata::FAILURE_SEVERITY = ERRATA_WARN;
+ swoc::Errata::SEVERITY_NAMES = swoc::MemSpan<swoc::TextView const>(Severity_Names.data(), Severity_Names.size());
+ return true;
+}();