Close #72 修正在HTTP-REQ/RESP-BEGIN事件执行detach动作时段错误。
This commit is contained in:
@@ -490,7 +490,9 @@ struct http_frame_plugin_status
|
||||
unsigned int preempt_by;
|
||||
};
|
||||
|
||||
struct http_frame_session_ctx * http_frame_raise_session_begin(const tfe_stream * stream,
|
||||
struct http_frame_session_ctx * http_frame_alloc();
|
||||
|
||||
int http_frame_raise_session_begin(struct http_frame_session_ctx * ht_frame, const tfe_stream * stream,
|
||||
struct tfe_http_session * ht_session, unsigned int thread_id);
|
||||
|
||||
void http_frame_raise_session_end(struct http_frame_session_ctx * ht_frame, const tfe_stream * stream,
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#define likely(expr) __builtin_expect((expr), 1)
|
||||
#define unlikely(expr) __builtin_expect((expr), 0)
|
||||
|
||||
extern void * g_default_logger;
|
||||
#define TFE_LOG_ERROR(handler, fmt, ...) \
|
||||
do { fprintf(stderr, fmt "\n" , ##__VA_ARGS__); \
|
||||
MESA_handle_runtime_log(handler, RLOG_LV_FATAL, "tfe", fmt, ##__VA_ARGS__); } while(0)
|
||||
|
||||
@@ -134,13 +134,17 @@ struct http_frame_plugin_status * http_frame_current_plugin_status(struct http_f
|
||||
return ht_frame->calling_plugin_status;
|
||||
}
|
||||
|
||||
struct http_frame_session_ctx * http_frame_raise_session_begin(const struct tfe_stream * stream,
|
||||
struct tfe_http_session * ht_session, unsigned int thread_id)
|
||||
struct http_frame_session_ctx * http_frame_alloc()
|
||||
{
|
||||
struct http_frame_session_ctx * ht_frame = ALLOC(struct http_frame_session_ctx, 1);
|
||||
ht_frame->nr_plugin_status = tfe_plugin_total_counts();
|
||||
ht_frame->plugin_status = ALLOC(struct http_frame_plugin_status, ht_frame->nr_plugin_status);
|
||||
return ht_frame;
|
||||
}
|
||||
|
||||
int http_frame_raise_session_begin(struct http_frame_session_ctx * ht_frame,
|
||||
const struct tfe_stream * stream, struct tfe_http_session * ht_session, unsigned int thread_id)
|
||||
{
|
||||
unsigned int __for_each_iterator = 0;
|
||||
unsigned int __plugin_id = 0;
|
||||
|
||||
@@ -161,7 +165,7 @@ struct http_frame_session_ctx * http_frame_raise_session_begin(const struct tfe_
|
||||
/* Clear calling ctx */
|
||||
ht_frame->calling_plugin = NULL;
|
||||
ht_frame->calling_plugin_status = NULL;
|
||||
return ht_frame;
|
||||
return 0;
|
||||
};
|
||||
|
||||
void http_frame_raise_session_end(struct http_frame_session_ctx * ht_frame, const tfe_stream * stream,
|
||||
|
||||
@@ -95,8 +95,7 @@ struct ssl_trusted_cert_storage
|
||||
static X509_STORE* _X509_store_create(const char* pem_bundle, const char* pem_dir)
|
||||
{
|
||||
int ret=0, n=0, i=0;
|
||||
|
||||
struct dirent **namelist;
|
||||
|
||||
X509_STORE* store=X509_STORE_new();
|
||||
char path[TFE_STRING_MAX]={0};
|
||||
if (store == NULL)
|
||||
@@ -120,7 +119,12 @@ static X509_STORE* _X509_store_create(const char* pem_bundle, const char* pem_di
|
||||
X509_STORE_set1_param(store, param);
|
||||
X509_VERIFY_PARAM_free(param);
|
||||
|
||||
struct dirent **namelist = NULL;
|
||||
n=tfe_scandir(pem_dir, &namelist, NULL, (int (*)(const void*, const void*))alphasort);
|
||||
if(n < 0)
|
||||
{
|
||||
return store;
|
||||
}
|
||||
|
||||
for(i=0;i<n;i++)
|
||||
{
|
||||
@@ -133,12 +137,15 @@ static X509_STORE* _X509_store_create(const char* pem_bundle, const char* pem_di
|
||||
{
|
||||
_X509_add_cert_or_crl_add(store, SSL_X509_OBJ_CRL, path);
|
||||
}
|
||||
|
||||
TFE_LOG_INFO(g_default_logger, "Found X509 additive trust CA: %s", path);
|
||||
free(namelist[i]);
|
||||
}
|
||||
free(namelist);
|
||||
|
||||
free(namelist);
|
||||
return store;
|
||||
}
|
||||
|
||||
static MESA_htable_handle _create_mesa_htable(void)
|
||||
{
|
||||
int ret=0;
|
||||
|
||||
@@ -298,13 +298,10 @@ static int __on_request_prepare_context(const struct tfe_stream * stream, unsign
|
||||
hf_private_set_callback(hf_private_req_in, __user_event_dispatch, __closure, free);
|
||||
|
||||
/* Call business plugin */
|
||||
hs_private->ht_frame = http_frame_raise_session_begin(stream, &hs_private->hs_public, thread_id);
|
||||
if (hs_private->ht_frame == NULL)
|
||||
{
|
||||
TFE_STREAM_LOG_ERROR(stream, "Failed at raising session begin event. ");
|
||||
return -1;
|
||||
}
|
||||
hs_private->ht_frame = http_frame_alloc();
|
||||
assert(hs_private->ht_frame != NULL);
|
||||
|
||||
http_frame_raise_session_begin(hs_private->ht_frame, stream, &hs_private->hs_public, thread_id);
|
||||
TAILQ_INSERT_TAIL(&hc_private->hs_private_list, hs_private, next);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user