From: Joshua Lumb Date: Mon, 27 Jul 2020 15:36:52 +0000 (-0400) Subject: threads: More descriptive startup output X-Git-Tag: suricata-7.0.0-beta1~1925 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9d432bbab339aa60dfd2eab2b49d760435f6697e;p=thirdparty%2Fsuricata.git threads: More descriptive startup output --- diff --git a/src/tm-threads.c b/src/tm-threads.c index 51f74c2a77..84a0eb2784 100644 --- a/src/tm-threads.c +++ b/src/tm-threads.c @@ -1900,8 +1900,11 @@ void TmThreadCheckThreadState(void) */ TmEcode TmThreadWaitOnThreadInit(void) { - uint16_t mgt_num = 0; - uint16_t ppt_num = 0; + uint16_t RX_num = 0; + uint16_t W_num = 0; + uint16_t FM_num = 0; + uint16_t FR_num = 0; + uint16_t TX_num = 0; struct timeval start_ts; struct timeval cur_ts; @@ -1951,18 +1954,54 @@ again: return TM_ECODE_FAILED; } - if (i == TVT_MGMT) - mgt_num++; - else if (i == TVT_PPT) - ppt_num++; + if (strncmp(thread_name_autofp, tv->name, strlen(thread_name_autofp)) == 0) + RX_num++; + else if (strncmp(thread_name_workers, tv->name, strlen(thread_name_workers)) == 0) + W_num++; + else if (strncmp(thread_name_verdict, tv->name, strlen(thread_name_verdict)) == 0) + TX_num++; + else if (strncmp(thread_name_flow_mgr, tv->name, strlen(thread_name_flow_mgr)) == 0) + FM_num++; + else if (strncmp(thread_name_flow_rec, tv->name, strlen(thread_name_flow_rec)) == 0) + FR_num++; tv = tv->next; } } SCMutexUnlock(&tv_root_lock); - SCLogNotice("all %"PRIu16" packet processing threads, %"PRIu16" management " - "threads initialized, engine started.", ppt_num, mgt_num); + /* Construct a welcome string displaying + * initialized thread types and counts */ + uint16_t app_len = 32; + uint16_t buf_len = 256; + + char append_str[app_len]; + char thread_counts[buf_len]; + + strlcpy(thread_counts, "Threads created -> ", strlen("Threads created -> ") + 1); + if (RX_num > 0) { + snprintf(append_str, app_len, "RX: %u ", RX_num); + strlcat(thread_counts, append_str, buf_len); + } + if (W_num > 0) { + snprintf(append_str, app_len, "W: %u ", W_num); + strlcat(thread_counts, append_str, buf_len); + } + if (TX_num > 0) { + snprintf(append_str, app_len, "TX: %u ", TX_num); + strlcat(thread_counts, append_str, buf_len); + } + if (FM_num > 0) { + snprintf(append_str, app_len, "FM: %u ", FM_num); + strlcat(thread_counts, append_str, buf_len); + } + if (FR_num > 0) { + snprintf(append_str, app_len, "FR: %u ", FR_num); + strlcat(thread_counts, append_str, buf_len); + } + snprintf(append_str, app_len, " Engine started."); + strlcat(thread_counts, append_str, buf_len); + SCLogNotice("%s", thread_counts); return TM_ECODE_OK; }