处理goto导致的编译不通过。

This commit is contained in:
zhengchao
2018-11-29 16:39:25 +08:00
parent f76a8c5ca2
commit 0e47b8d715
4 changed files with 34 additions and 38 deletions

View File

@@ -159,7 +159,7 @@ void connection_close_cb(struct evhttp_connection* connection, void* arg)
//printf("call connection_close_cb\n");
}
char* get_request_url(struct evhttp_uri* uri, int url_len)
char* get_request_url(struct evhttp_uri* uri, size_t url_len)
{
const char* path = evhttp_uri_get_path(uri);
const char* query = evhttp_uri_get_query(uri);
@@ -184,6 +184,11 @@ char* get_request_url(struct evhttp_uri* uri, int url_len)
//data is for POST. if method is GET, data should be NULL
void tfe_rpc_async_ask(struct future* f, const char* url, enum TFE_RPC_METHOD method, enum TFE_RPC_FLAG flag, const char* data, int data_len, struct event_base * evbase, struct evdns_base* dnsbase)
{
const char* host=NULL;
int port=0;
size_t url_len=0;
char* request_url=NULL;
struct evhttp_request* request=NULL;
struct promise* p = future_to_promise(f);
struct tfe_rpc_ctx* ctx = ALLOC(struct tfe_rpc_ctx, 1);
ctx->evbase = evbase;
@@ -196,13 +201,13 @@ void tfe_rpc_async_ask(struct future* f, const char* url, enum TFE_RPC_METHOD me
_wrapped_promise_failed(p, FUTURE_ERROR_EXCEPTION, "parse url failed!");
goto error_out;
}
const char* host = evhttp_uri_get_host(uri);
host = evhttp_uri_get_host(uri);
if(!host)
{
_wrapped_promise_failed(p, FUTURE_ERROR_EXCEPTION, "parse host failed!");
goto error_out;
}
int port = evhttp_uri_get_port(uri);
port = evhttp_uri_get_port(uri);
if(port < 0)
{
port = 80;
@@ -215,7 +220,7 @@ void tfe_rpc_async_ask(struct future* f, const char* url, enum TFE_RPC_METHOD me
goto error_out;
}
evhttp_connection_set_closecb(ctx->connection, connection_close_cb, evbase);
struct evhttp_request* request = evhttp_request_new(get_response_cb, (void*)p);
request = evhttp_request_new(get_response_cb, (void*)p);
//evhttp_request_set_header_cb(request, read_header_done_cb);
if(flag == CHUNK_CB)
{
@@ -223,8 +228,8 @@ void tfe_rpc_async_ask(struct future* f, const char* url, enum TFE_RPC_METHOD me
}
evhttp_request_set_error_cb(request, request_error_cb);
evhttp_add_header(evhttp_request_get_output_headers(request), "Host", host);
int url_len = strlen(url);
char* request_url = get_request_url(uri, url_len);
url_len = strlen(url);
request_url = get_request_url(uri, url_len);
//printf("request url is %s\n", request_url);
if(request_url == NULL)
{