diff options
| author | zhengchao <[email protected]> | 2018-11-26 14:54:20 +0800 |
|---|---|---|
| committer | zhengchao <[email protected]> | 2018-11-26 14:55:39 +0800 |
| commit | ce9d7fa5ebc99a54e021eace0d76fd1a5f0da3fc (patch) | |
| tree | c561baef2428d4bc4c91bbeab5ac0a8d19a544f5 /platform/include | |
| parent | 35c2559f8a4fdf19cdc38aea6b71661b3041c1cf (diff) | |
#64 key keeper增加evdnsbase参数。
避免创建大量dnsbase,耗尽fd。ssl stream/tcp stream/proxy也做了相应修改。
Diffstat (limited to 'platform/include')
| -rw-r--r-- | platform/include/internal/key_keeper.h | 12 | ||||
| -rw-r--r-- | platform/include/internal/platform.h | 1 | ||||
| -rw-r--r-- | platform/include/internal/ssl_stream.h | 6 |
3 files changed, 14 insertions, 5 deletions
diff --git a/platform/include/internal/key_keeper.h b/platform/include/internal/key_keeper.h index 3a63e4f..6a4bc08 100644 --- a/platform/include/internal/key_keeper.h +++ b/platform/include/internal/key_keeper.h @@ -9,7 +9,12 @@ struct keyring X509 *cert; STACK_OF(X509) * chain; }; - +struct key_keeper_stat +{ + long long ask_times; + long long cache_hit; + long long cached_num; +}; struct key_keeper; struct key_keeper * key_keeper_init(const char * profile, const char* section, void* logger); @@ -20,6 +25,9 @@ struct keyring* key_keeper_release_keyring(future_result_t* result); void key_keeper_free_keyring(struct keyring* cert); + void key_keeper_async_ask(struct future * f, struct key_keeper * keeper, const char* sni, int keyring_id, - X509 * origin_cert, int is_cert_valid, struct event_base * evbase); + X509 * origin_cert, int is_cert_valid, struct event_base * evbase, struct evdns_base* dnsbase); + +void key_keeper_statistic(struct key_keeper *keeper, struct key_keeper_stat* result); diff --git a/platform/include/internal/platform.h b/platform/include/internal/platform.h index 4828573..a71c8c9 100644 --- a/platform/include/internal/platform.h +++ b/platform/include/internal/platform.h @@ -14,6 +14,7 @@ struct tfe_thread_ctx unsigned int load; struct event_base * evbase; + struct evdns_base* dnsbase; unsigned char running; unsigned int nr_modules; diff --git a/platform/include/internal/ssl_stream.h b/platform/include/internal/ssl_stream.h index e27eb97..f6bbfb1 100644 --- a/platform/include/internal/ssl_stream.h +++ b/platform/include/internal/ssl_stream.h @@ -15,12 +15,12 @@ void ssl_manager_destroy(struct ssl_mgr * mgr); struct ssl_stream * ssl_upstream_create_result_release_stream(future_result_t * result); struct bufferevent * ssl_upstream_create_result_release_bev(future_result_t * result); void ssl_async_upstream_create(struct future * f, struct ssl_mgr * mgr, evutil_socket_t fd_upstream, - evutil_socket_t fd_downstream, struct event_base * evbase); + evutil_socket_t fd_downstream, unsigned int thread_id); struct ssl_stream * ssl_downstream_create_result_release_stream(future_result_t * result); struct bufferevent * ssl_downstream_create_result_release_bev(future_result_t * result); -void ssl_async_downstream_create(struct future * f, struct ssl_mgr * mgr, struct ssl_stream * upstream, - evutil_socket_t fd_downstream, int keyring_id, struct event_base * evbase); +void ssl_async_downstream_create(struct future * f, struct ssl_mgr * mgr, struct ssl_stream * upstream, + evutil_socket_t fd_downstream, int keyring_id, unsigned int thread_id); void ssl_stream_free_and_close_fd(struct ssl_stream * stream, struct event_base * evbase, evutil_socket_t fd); void ssl_stream_log_error(struct bufferevent * bev, enum tfe_conn_dir dir, void* logger); |
