Remove the 'C'/'R' character at the end of the “mgsid” field. The purpose of remove to avoid the hashing of log streams which have name of exactly 32 characters length. Note: stream name length greater than 32 characters will not be impacted. --- src/log/apitest/tet_cfg_destination.c | 2 +- src/log/logd/lgs_dest.cc | 17 +++++++---------- src/log/logd/lgs_dest.h | 2 +- src/log/logd/lgs_imm.cc | 10 ++++------ src/log/logd/lgs_mbcsv.cc | 8 ++++---- src/log/logd/lgs_unixsock_dest.cc | 2 +- 6 files changed, 18 insertions(+), 23 deletions(-)
diff --git a/src/log/apitest/tet_cfg_destination.c b/src/log/apitest/tet_cfg_destination.c index f1fe71661..a73c6547b 100644 --- a/src/log/apitest/tet_cfg_destination.c +++ b/src/log/apitest/tet_cfg_destination.c @@ -289,7 +289,7 @@ void invalidDestName(void) // const char sendMsg[] = "writing a record to destination"; const char sendCmd[] = "saflogger -y"; -const char logpath[] = "/var/log/opensaf/saLogSystemC"; +const char logpath[] = "/var/log/opensaf/saLogSystem"; bool is_executed_on_active_node() { diff --git a/src/log/logd/lgs_dest.cc b/src/log/logd/lgs_dest.cc index 42282c2c1..bf5064d21 100644 --- a/src/log/logd/lgs_dest.cc +++ b/src/log/logd/lgs_dest.cc @@ -46,8 +46,7 @@ DestinationHandler::DestType DestinationHandler::GetDestType( } } -std::string DestinationHandler::GenerateMsgId(const std::string& dn, - bool isRtStream) { +std::string DestinationHandler::GenerateMsgId(const std::string& dn) { const std::string parent = ",safApp=safLogService"; std::string msgid{""}; size_t posa = 0, posb = 0; @@ -61,17 +60,15 @@ std::string DestinationHandler::GenerateMsgId(const std::string& dn, //> // Rules to generate msgid string: - // 1) Use stream name (e.g: saLogSystem) + 'C'/'R' if it is not over 31 chars + // 1) Use stream name (e.g: saLogSystem) if it is not over 32 chars // and the stream DN contains the @parent ",safApp=safLogService"; - // Note: 'C' means configuration stream, 'R' means runtime stream. - // Why 31? It is due to MSGID field length limitation - // (max is 32 chars length). + // Note: Why 32? It is due to MSGID field length limitation + // (max is 32 chars length). // 2) Otherwise, generate a hash number from stream DN - // if stream name is over 31 chars. + // if stream name is over 32 chars. //< - if (sname.length() < 32 && dn.find(parent) != std::string::npos) { - msgid = ((isRtStream == true) ? std::string{sname + 'R'} - : std::string{sname + 'C'}); + if (sname.length() <= 32 && dn.find(parent) != std::string::npos) { + msgid = sname; } else { // Do `InitializeHashFunction()` once static bool init_invoked = false; diff --git a/src/log/logd/lgs_dest.h b/src/log/logd/lgs_dest.h index fff4c03ab..826a3b806 100644 --- a/src/log/logd/lgs_dest.h +++ b/src/log/logd/lgs_dest.h @@ -254,7 +254,7 @@ class DestinationHandler { // Unique object instance of @DestinationHandler class static DestinationHandler& Instance() { return me_; } // Extract the stream name from stream DN - static std::string GenerateMsgId(const std::string&, bool); + static std::string GenerateMsgId(const std::string&); // Do destination configuration basing on input @vdest and @type. ErrCode ProcessCfgChange(const VectorString& vdest, ModifyType type); diff --git a/src/log/logd/lgs_imm.cc b/src/log/logd/lgs_imm.cc index fd6cb9f65..928a5b7dd 100644 --- a/src/log/logd/lgs_imm.cc +++ b/src/log/logd/lgs_imm.cc @@ -2336,8 +2336,7 @@ static SaAisErrorT stream_create_and_configure1( // Generate & cache `MSGID` to `rfc5424MsgId` which later // used in RFC5424 protocol (*stream)->rfc5424MsgId = - DestinationHandler::Instance().GenerateMsgId( - (*stream)->name, (*stream)->isRtStream); + DestinationHandler::Instance().GenerateMsgId((*stream)->name); TRACE("%s: stream %s - msgid = %s", __func__, (*stream)->name.c_str(), (*stream)->rfc5424MsgId.c_str()); } @@ -2517,8 +2516,7 @@ static void stream_ccb_apply_modify(const CcbUtilOperationData_t *opdata) { // Generate & cache `MSGID` to `rfc5424MsgId` which later // used in RFC5424 protocol stream->rfc5424MsgId = - DestinationHandler::Instance().GenerateMsgId( - stream->name, stream->isRtStream); + DestinationHandler::Instance().GenerateMsgId(stream->name); TRACE("%s: stream %s - msgid = %s", __func__, stream->name.c_str(), stream->rfc5424MsgId.c_str()); } @@ -2841,8 +2839,8 @@ static SaAisErrorT stream_create_and_configure( if (vstring.empty() == false) { // Generate & cache `MSGID` to `rfc5424MsgId` which later // used in RFC5424 protocol - stream->rfc5424MsgId = DestinationHandler::Instance().GenerateMsgId( - dn, stream->isRtStream); + stream->rfc5424MsgId = + DestinationHandler::Instance().GenerateMsgId(dn); TRACE("%s: stream %s - msgid = %s", __func__, stream->name.c_str(), stream->rfc5424MsgId.c_str()); } diff --git a/src/log/logd/lgs_mbcsv.cc b/src/log/logd/lgs_mbcsv.cc index ee14da2f0..30d29c191 100644 --- a/src/log/logd/lgs_mbcsv.cc +++ b/src/log/logd/lgs_mbcsv.cc @@ -2455,8 +2455,8 @@ uint32_t ckpt_proc_open_stream(lgs_cb_t *cb, void *data) { stream->dest_names = logutil::Parser(stream->stb_dest_names, ";"); // Generate & cache `MSGID` to `rfc5424MsgId` which later // used in RFC5424 protocol - stream->rfc5424MsgId = DestinationHandler::Instance().GenerateMsgId( - stream->name, stream->isRtStream); + stream->rfc5424MsgId = + DestinationHandler::Instance().GenerateMsgId(stream->name); TRACE("%s: stream %s - msgid = %s", __func__, stream->name.c_str(), stream->rfc5424MsgId.c_str()); } else { @@ -2757,8 +2757,8 @@ static uint32_t ckpt_proc_cfg_stream(lgs_cb_t *cb, void *data) { // 1) Have destination set // 2) Not yet generated if (stream->rfc5424MsgId.empty() == true) { - stream->rfc5424MsgId = DestinationHandler::Instance().GenerateMsgId( - stream->name, stream->isRtStream); + stream->rfc5424MsgId = + DestinationHandler::Instance().GenerateMsgId(stream->name); TRACE("%s: stream %s - msgid = %s", __func__, stream->name.c_str(), stream->rfc5424MsgId.c_str()); } diff --git a/src/log/logd/lgs_unixsock_dest.cc b/src/log/logd/lgs_unixsock_dest.cc index e5cbfae0a..67c876d09 100644 --- a/src/log/logd/lgs_unixsock_dest.cc +++ b/src/log/logd/lgs_unixsock_dest.cc @@ -32,7 +32,7 @@ // HOSTNAME = FQDN = <hostname>[.<networkname>] // APP-NAME = App name who generated log record // PROCID = NILVALUE -// MSGID = log stream name + 'C'/'R' (e.g:saLogSystemC) +// MSGID = log stream name (e.g:saLogSystem) // or a hash number generated from log stream DN. // STRUCTURED-DATA = NILVALUE // -- 2.25.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel