diff options
Diffstat (limited to 'platform/src/ssl_fetch_cert.cpp')
| -rw-r--r-- | platform/src/ssl_fetch_cert.cpp | 65 |
1 files changed, 28 insertions, 37 deletions
diff --git a/platform/src/ssl_fetch_cert.cpp b/platform/src/ssl_fetch_cert.cpp index 98601ee..fe7d22c 100644 --- a/platform/src/ssl_fetch_cert.cpp +++ b/platform/src/ssl_fetch_cert.cpp @@ -7,6 +7,7 @@ #include <ssl_utils.h> #include <tfe_kafka_logger.h> +#include <tfe_resource.h> #include <MESA/MESA_prof_load.h> typedef struct x509_object_st @@ -35,55 +36,45 @@ static char cert_type_desc[MAX_TYPE][64] = { {"Root certificate"}, }; -static tfe_kafka_logger_t *g_kafka_logger = NULL; - -void ssl_mid_cert_kafka_logger_destory(void) +struct ssl_mid_cert_ctx { - tfe_kafka_logger_destroy(g_kafka_logger); -} + int enable; + tfe_kafka_logger_t *g_kafka_logger; +}; +struct ssl_mid_cert_ctx mid_cert_ctx; int ssl_mid_cert_kafka_logger_create(const char *profile, const char *section) { - int enable = 0, vsystem_id = 0; - char nic_name[TFE_SYMBOL_MAX] = {0}; - char broker_list[TFE_SYMBOL_MAX] = {0}; char topic_name[TFE_SYMBOL_MAX] = {0}; - char sasl_username[TFE_STRING_MAX] = {0}; - char sasl_passwd[TFE_STRING_MAX] = {0}; - - MESA_load_profile_int_def(profile, section, "mc_cache_enable", &enable, 0); - MESA_load_profile_int_def(profile, section, "mc_vsystem_id", &vsystem_id, 1); - MESA_load_profile_string_def(profile, section, "mc_cache_eth", nic_name, sizeof(nic_name), "eth0"); - MESA_load_profile_string_def(profile, section, "mc_cache_topic", topic_name, sizeof(topic_name), "PXY-EXCH-INTERMEDIA-CERT"); - MESA_load_profile_string_def(profile, section, "SASL_USERNAME", sasl_username, sizeof(sasl_username), ""); - MESA_load_profile_string_def(profile, section, "SASL_PASSWD", sasl_passwd, sizeof(sasl_passwd), ""); - - if (!enable) - goto skip; - if (MESA_load_profile_string_def(profile, section, "mc_cache_broker_list", broker_list, sizeof(broker_list), NULL) < 0) - { - TFE_LOG_ERROR(g_default_logger, "Fail to get mc_cache_broker_list in profile %s section %s.", profile, section); - return -1; - } -skip: - g_kafka_logger = tfe_kafka_logger_create(enable, nic_name, broker_list, topic_name, sasl_username, sasl_passwd, g_default_logger); - if (g_kafka_logger) + + MESA_load_profile_int_def(profile, section, "mc_cache_enable", &mid_cert_ctx.enable, 0); + MESA_load_profile_string_def(profile, "tfe", "mc_cache_topic", topic_name, sizeof(topic_name), "PXY-EXCH-INTERMEDIA-CERT"); + + if(mid_cert_ctx.enable == 0) { - g_kafka_logger->t_vsys_id=vsystem_id; return 0; } - else + + mid_cert_ctx.g_kafka_logger = (tfe_kafka_logger_t *)tfe_bussiness_resouce_get(KAFKA_LOGGER); + if(!mid_cert_ctx.g_kafka_logger) { return -1; } + int ret = tfe_kafka_logger_topic_new(mid_cert_ctx.g_kafka_logger, topic_name, TOPIC_MC_CACHE, g_default_logger); + if(ret < 0) + { + return -1; + } + return 0; } static void ssl_mid_cert_kafka_logger_send(const char *sni, const char *fingerprint, const char *cert) { - if (g_kafka_logger->enable == 0) + if (mid_cert_ctx.g_kafka_logger->enable == 0) { return; } + cJSON *obj = NULL; cJSON *dup = NULL; char *msg = NULL; @@ -91,13 +82,13 @@ static void ssl_mid_cert_kafka_logger_send(const char *sni, const char *fingerpr obj = cJSON_CreateObject(); cJSON_AddStringToObject(obj, "sni", sni); cJSON_AddStringToObject(obj, "fingerprint", fingerprint); - cJSON_AddNumberToObject(obj, "vsys_id", g_kafka_logger->t_vsys_id); + cJSON_AddNumberToObject(obj, "vsys_id", mid_cert_ctx.g_kafka_logger->t_vsys_id); cJSON_AddStringToObject(obj, "cert", cert); - cJSON_AddStringToObject(obj, "tfe_ip", g_kafka_logger->local_ip_str); + cJSON_AddStringToObject(obj, "tfe_ip", mid_cert_ctx.g_kafka_logger->local_ip_str); dup = cJSON_Duplicate(obj, 1); msg = cJSON_PrintUnformatted(dup); - TFE_LOG_DEBUG(g_default_logger, "log to [%s] msg:%s", g_kafka_logger->topic_name[TOPIC_LOGGER], msg); - tfe_kafka_logger_send(g_kafka_logger, TOPIC_LOGGER, msg, strlen(msg)); + TFE_LOG_DEBUG(g_default_logger, "log to [%s] msg:%s", mid_cert_ctx.g_kafka_logger->topic_name[TOPIC_MC_CACHE], msg); + tfe_kafka_logger_send(mid_cert_ctx.g_kafka_logger, TOPIC_MC_CACHE, msg, strlen(msg)); free(msg); cJSON_Delete(dup); @@ -145,7 +136,7 @@ void ssl_fetch_trusted_cert_from_chain(STACK_OF(X509) * cert_chain, X509_STORE * char *fingerprint = NULL; X509 *cert = NULL; X509_OBJECT *obj = NULL; - if (!g_kafka_logger || !g_kafka_logger->enable) + if (!mid_cert_ctx.g_kafka_logger || !mid_cert_ctx.enable) { return; } @@ -206,7 +197,7 @@ void ssl_fetch_trusted_cert_from_chain(STACK_OF(X509) * cert_chain, X509_STORE * end: TFE_LOG_DEBUG(g_default_logger, "[dep:%d/%d] is %s, in_trusted_store:%d, sin:%s; subject:(%s); issuer:(%s); fingerprint:%s; cert:%s", i, deep, cert_type_desc[type], in_store, (hostname ? hostname : "NULL"), (subj ? subj : "NULL"), (issuer ? issuer : "NULL"), (fingerprint ? fingerprint : "NULL"), - ((pem && g_kafka_logger->enable == 0x10) ? pem : " ...")); + ((pem && mid_cert_ctx.g_kafka_logger->enable == 0x10) ? pem : " ...")); if (pem) { free(pem); |
