From: Gokul Singaraju Date: Wed, 17 Jan 2018 04:51:44 +0000 (-0500) Subject: Add ringbuffer size to API X-Git-Tag: v1.2.0~146 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=demo.git;a=commitdiff_plain;h=39f35cca6560c97ecd719a13793ead184f6e7e3c Add ringbuffer size to API Issue-ID: CERT-12 Change-Id: Ie698da815605d456f34ed05e4ef1ee11c994db86 Signed-Off-by: Gokul Singaraju --- diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.c index c6ead7ad..4e4383e4 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.c @@ -89,6 +89,7 @@ EVEL_ERR_CODES evel_initialize(const char * const fqdn, int port, const char * const path, const char * const topic, + int ring_buf_size, int secure, const char * const cert_file_path, const char * const key_file_path, @@ -251,6 +252,7 @@ EVEL_ERR_CODES evel_initialize(const char * const fqdn, rc = event_handler_initialize(event_api_url, throt_api_url, source_ip, + ring_buf_size, secure, cert_file_path, key_file_path, diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.h b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.h index 119fa793..896dd9d1 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.h +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.h @@ -1400,6 +1400,7 @@ typedef struct copyright { * @param port The API's port. * @param path The optional path (may be NULL). * @param topic The optional topic part of the URL (may be NULL). + * @param ring_buf_size Ring buffer size (>=100) ~ Avg Messages in 1hr * @param secure Whether to use HTTPS (0=HTTP, 1=HTTPS). * @param cert_file_path Path to client certificate file * @param key_file_path Path to client key file @@ -1423,6 +1424,7 @@ EVEL_ERR_CODES evel_initialize(const char * const fqdn, int port, const char * const path, const char * const topic, + int ring_buf_size, int secure, const char * const cert_file_path, const char * const key_file_path, diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c index c9bb4345..5babb67c 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c @@ -621,6 +621,10 @@ int evel_json_encode_event(char * json, /* Sanity check. */ /***************************************************************************/ assert(jbuf->depth == 0); + if( jbuf->offset >= max_size ){ + EVEL_ERROR("Event exceeded size limit %d", max_size); + assert(0); + } EVEL_EXIT(); diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event_mgr.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event_mgr.c index 5c6ca4b3..d10543b0 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event_mgr.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event_mgr.c @@ -115,6 +115,7 @@ static char * evel_batch_api_url; * @param[in] throt_api_url * The URL where the Throttling API is expected to be. * @param[in] source_ip Source IP of VES Agent + * @param[in] ring_buf_size Initial size of ring buffer * @param[in] secure Whether Using http or https * @param[in] cert_file_path Path to Client Certificate file * @param[in] key_file_path Path to Client key file @@ -130,6 +131,7 @@ static char * evel_batch_api_url; EVEL_ERR_CODES event_handler_initialize(const char * const event_api_url, const char * const throt_api_url, const char * const source_ip, + int ring_buf_size, int secure, const char * const cert_file_path, const char * const key_file_path, @@ -473,6 +475,12 @@ EVEL_ERR_CODES event_handler_initialize(const char * const event_api_url, /* Initialize a message ring-buffer to be used between the foreground and */ /* the thread which sends the messages. This can't fail. */ /***************************************************************************/ + if( ring_buf_size < EVEL_EVENT_BUFFER_DEPTH ) + { + log_error_state("Warning: Failed to initialize Ring buffer size to %d. " + ring_buf_size); + goto exit_label; + } ring_buffer_initialize(&event_buffer, EVEL_EVENT_BUFFER_DEPTH); /***************************************************************************/ diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal.h b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal.h index dd4b4b7c..d1a952b6 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal.h +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal.h @@ -175,6 +175,7 @@ typedef struct evel_throttle_spec { * @param[in] throt_api_url * The URL where the Throttling API is expected to be. * @param[in] source_ip Source IP of VES Agent + * @param[in] ring_buf_size Initialization size of Ring Buffer * @param[in] secure Whether Using http or https * @param[in] cert_file_path Path to Client Certificate file * @param[in] key_file_path Path to Client key file @@ -190,6 +191,7 @@ typedef struct evel_throttle_spec { EVEL_ERR_CODES event_handler_initialize(const char * const event_api_url, const char * const throt_api_url, const char * const source_ip, + int ring_buf_size, int secure, const char * const cert_file_path, const char * const key_file_path,