修改key_keeper请求为post
修改key_keeper请求连接为长连接 修改HTTP2流id设置时机
This commit is contained in:
@@ -455,6 +455,13 @@ void key_keeper_destroy(struct key_keeper *keeper)
|
||||
return;
|
||||
}
|
||||
|
||||
struct evhttp_connection* key_keeper_evhttp_init(struct event_base * evbase, struct evdns_base* dnsbase, struct key_keeper * key_keeper_handler)
|
||||
{
|
||||
char *cert_store_host = key_keeper_handler->cert_store_host;
|
||||
unsigned int cert_store_port =key_keeper_handler->cert_store_port;
|
||||
return evhttp_connection_base_new(evbase, dnsbase, cert_store_host, cert_store_port);
|
||||
}
|
||||
|
||||
struct key_keeper* key_keeper_init(const char * profile, const char* section, void* logger)
|
||||
{
|
||||
struct key_keeper* keeper = ALLOC(struct key_keeper, 1);
|
||||
@@ -565,7 +572,7 @@ char* url_escape(char* url)
|
||||
return _url;
|
||||
}
|
||||
|
||||
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, struct evdns_base* dnsbase)
|
||||
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, struct evdns_base* dnsbase, struct evhttp_connection *evhttp)
|
||||
{
|
||||
struct promise* p = future_to_promise(f);
|
||||
unsigned int len = 0;
|
||||
@@ -602,13 +609,6 @@ void key_keeper_async_ask(struct future * f, struct key_keeper * keeper, const c
|
||||
promise_failed(p, FUTURE_ERROR_EXCEPTION, "transform origin_cert to pem failed");
|
||||
return;
|
||||
}
|
||||
char* escaped_origin_cert_pem = url_escape(origin_cert_pem);
|
||||
free(origin_cert_pem);
|
||||
if(escaped_origin_cert_pem == NULL)
|
||||
{
|
||||
promise_failed(p, FUTURE_ERROR_EXCEPTION, "url escape failed");
|
||||
break;
|
||||
}
|
||||
struct future* f_certstore_rpc = future_create("crt_store", certstore_rpc_on_succ, certstore_rpc_on_fail, p);
|
||||
ctx->f_certstore_rpc = f_certstore_rpc;
|
||||
char *url = NULL;
|
||||
@@ -616,17 +616,16 @@ void key_keeper_async_ask(struct future * f, struct key_keeper * keeper, const c
|
||||
//keyring_id = 1;
|
||||
if(sni == NULL || sni[0] == '\0')
|
||||
{
|
||||
asprintf(&url, "http://%s:%d/ca?keyring_id=%d&is_valid=%d&origin_cert=%s",
|
||||
keeper->cert_store_host, keeper->cert_store_port, keyring_id, is_cert_valid, escaped_origin_cert_pem);
|
||||
asprintf(&url, "http://%s:%d/ca?keyring_id=%d&is_valid=%d",
|
||||
keeper->cert_store_host, keeper->cert_store_port, keyring_id, is_cert_valid);
|
||||
}
|
||||
else
|
||||
{
|
||||
asprintf(&url, "http://%s:%d/ca?keyring_id=%d&sni=%s&is_valid=%d&origin_cert=%s",
|
||||
keeper->cert_store_host, keeper->cert_store_port, keyring_id, sni, is_cert_valid, escaped_origin_cert_pem);
|
||||
asprintf(&url, "http://%s:%d/ca?keyring_id=%d&sni=%s&is_valid=%d",
|
||||
keeper->cert_store_host, keeper->cert_store_port, keyring_id, sni, is_cert_valid);
|
||||
}
|
||||
TFE_LOG_DEBUG(keeper->logger, "CertStore query: %.100s", url);
|
||||
curl_free(escaped_origin_cert_pem);
|
||||
tfe_rpc_async_ask(f_certstore_rpc, url, GET, DONE_CB, NULL, 0, evbase, dnsbase);
|
||||
tfe_rpc_async_ask(f_certstore_rpc, url, POST, DONE_CB, origin_cert_pem, strlen(origin_cert_pem), evbase, dnsbase, evhttp);
|
||||
free(url);
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user