diff options
author | 2014-12-17 17:03:15 -0800 | |
---|---|---|
committer | 2014-12-19 13:08:41 -0800 | |
commit | 40260c4d5b607a5808b7e48511baa732b70468fc (patch) | |
tree | 6db4ec3e51356cddaa92f646738461f65064d8a5 /src/core/httpcli/httpcli.c | |
parent | 246ec3bd3a386a7ccf8516425214b7ac368436a9 (diff) |
Allow overriding httpcli behavior by tests.
Change on 2014/12/17 by ctiller <ctiller@google.com>
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82379331
Diffstat (limited to 'src/core/httpcli/httpcli.c')
-rw-r--r-- | src/core/httpcli/httpcli.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/core/httpcli/httpcli.c b/src/core/httpcli/httpcli.c index bbca57b7dd..06d73e40f5 100644 --- a/src/core/httpcli/httpcli.c +++ b/src/core/httpcli/httpcli.c @@ -62,6 +62,9 @@ typedef struct { void *user_data; } internal_request; +static grpc_httpcli_get_override g_get_override = NULL; +static grpc_httpcli_post_override g_post_override = NULL; + static void next_address(internal_request *req); static void finish(internal_request *req, int success) { @@ -217,7 +220,12 @@ static void on_resolved(void *arg, grpc_resolved_addresses *addresses) { void grpc_httpcli_get(const grpc_httpcli_request *request, gpr_timespec deadline, grpc_httpcli_response_cb on_response, void *user_data) { - internal_request *req = gpr_malloc(sizeof(internal_request)); + internal_request *req; + if (g_get_override && + g_get_override(request, deadline, on_response, user_data)) { + return; + } + req = gpr_malloc(sizeof(internal_request)); memset(req, 0, sizeof(*req)); req->request_text = grpc_httpcli_format_get_request(request); grpc_httpcli_parser_init(&req->parser); @@ -237,7 +245,12 @@ void grpc_httpcli_post(const grpc_httpcli_request *request, const char *body_bytes, size_t body_size, gpr_timespec deadline, grpc_httpcli_response_cb on_response, void *user_data) { - internal_request *req = gpr_malloc(sizeof(internal_request)); + internal_request *req; + if (g_post_override && g_post_override(request, body_bytes, body_size, + deadline, on_response, user_data)) { + return; + } + req = gpr_malloc(sizeof(internal_request)); memset(req, 0, sizeof(*req)); req->request_text = grpc_httpcli_format_post_request(request, body_bytes, body_size); @@ -253,3 +266,9 @@ void grpc_httpcli_post(const grpc_httpcli_request *request, grpc_resolve_address(request->host, req->use_ssl ? "https" : "http", on_resolved, req); } + +void grpc_httpcli_set_override(grpc_httpcli_get_override get, + grpc_httpcli_post_override post) { + g_get_override = get; + g_post_override = post; +} |