aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core/end2end/fixtures/http_proxy.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/core/end2end/fixtures/http_proxy.c')
-rw-r--r--test/core/end2end/fixtures/http_proxy.c89
1 files changed, 45 insertions, 44 deletions
diff --git a/test/core/end2end/fixtures/http_proxy.c b/test/core/end2end/fixtures/http_proxy.c
index b8f046c7df..80865fc7a6 100644
--- a/test/core/end2end/fixtures/http_proxy.c
+++ b/test/core/end2end/fixtures/http_proxy.c
@@ -37,11 +37,11 @@
#include <string.h>
+#include <grpc/slice_buffer.h>
#include <grpc/support/alloc.h>
#include <grpc/support/atm.h>
#include <grpc/support/host_port.h>
#include <grpc/support/log.h>
-#include <grpc/support/slice_buffer.h>
#include <grpc/support/string_util.h>
#include <grpc/support/sync.h>
#include <grpc/support/thd.h>
@@ -91,12 +91,12 @@ typedef struct proxy_connection {
grpc_closure on_server_read_done;
grpc_closure on_server_write_done;
- gpr_slice_buffer client_read_buffer;
- gpr_slice_buffer client_deferred_write_buffer;
- gpr_slice_buffer client_write_buffer;
- gpr_slice_buffer server_read_buffer;
- gpr_slice_buffer server_deferred_write_buffer;
- gpr_slice_buffer server_write_buffer;
+ grpc_slice_buffer client_read_buffer;
+ grpc_slice_buffer client_deferred_write_buffer;
+ grpc_slice_buffer client_write_buffer;
+ grpc_slice_buffer server_read_buffer;
+ grpc_slice_buffer server_deferred_write_buffer;
+ grpc_slice_buffer server_write_buffer;
grpc_http_parser http_parser;
grpc_http_request http_request;
@@ -110,12 +110,12 @@ static void proxy_connection_unref(grpc_exec_ctx* exec_ctx,
if (conn->server_endpoint != NULL)
grpc_endpoint_destroy(exec_ctx, conn->server_endpoint);
grpc_pollset_set_destroy(conn->pollset_set);
- gpr_slice_buffer_destroy(&conn->client_read_buffer);
- gpr_slice_buffer_destroy(&conn->client_deferred_write_buffer);
- gpr_slice_buffer_destroy(&conn->client_write_buffer);
- gpr_slice_buffer_destroy(&conn->server_read_buffer);
- gpr_slice_buffer_destroy(&conn->server_deferred_write_buffer);
- gpr_slice_buffer_destroy(&conn->server_write_buffer);
+ grpc_slice_buffer_destroy(&conn->client_read_buffer);
+ grpc_slice_buffer_destroy(&conn->client_deferred_write_buffer);
+ grpc_slice_buffer_destroy(&conn->client_write_buffer);
+ grpc_slice_buffer_destroy(&conn->server_read_buffer);
+ grpc_slice_buffer_destroy(&conn->server_deferred_write_buffer);
+ grpc_slice_buffer_destroy(&conn->server_write_buffer);
grpc_http_parser_destroy(&conn->http_parser);
grpc_http_request_destroy(&conn->http_request);
gpr_free(conn);
@@ -146,12 +146,12 @@ static void on_client_write_done(grpc_exec_ctx* exec_ctx, void* arg,
return;
}
// Clear write buffer (the data we just wrote).
- gpr_slice_buffer_reset_and_unref(&conn->client_write_buffer);
+ grpc_slice_buffer_reset_and_unref(&conn->client_write_buffer);
// If more data was read from the server since we started this write,
// write that data now.
if (conn->client_deferred_write_buffer.length > 0) {
- gpr_slice_buffer_move_into(&conn->client_deferred_write_buffer,
- &conn->client_write_buffer);
+ grpc_slice_buffer_move_into(&conn->client_deferred_write_buffer,
+ &conn->client_write_buffer);
grpc_endpoint_write(exec_ctx, conn->client_endpoint,
&conn->client_write_buffer,
&conn->on_client_write_done);
@@ -171,12 +171,12 @@ static void on_server_write_done(grpc_exec_ctx* exec_ctx, void* arg,
return;
}
// Clear write buffer (the data we just wrote).
- gpr_slice_buffer_reset_and_unref(&conn->server_write_buffer);
+ grpc_slice_buffer_reset_and_unref(&conn->server_write_buffer);
// If more data was read from the client since we started this write,
// write that data now.
if (conn->server_deferred_write_buffer.length > 0) {
- gpr_slice_buffer_move_into(&conn->server_deferred_write_buffer,
- &conn->server_write_buffer);
+ grpc_slice_buffer_move_into(&conn->server_deferred_write_buffer,
+ &conn->server_write_buffer);
grpc_endpoint_write(exec_ctx, conn->server_endpoint,
&conn->server_write_buffer,
&conn->on_server_write_done);
@@ -203,11 +203,11 @@ static void on_client_read_done(grpc_exec_ctx* exec_ctx, void* arg,
//
// Otherwise, move the read data into the write buffer and write it.
if (conn->server_write_buffer.length > 0) {
- gpr_slice_buffer_move_into(&conn->client_read_buffer,
- &conn->server_deferred_write_buffer);
+ grpc_slice_buffer_move_into(&conn->client_read_buffer,
+ &conn->server_deferred_write_buffer);
} else {
- gpr_slice_buffer_move_into(&conn->client_read_buffer,
- &conn->server_write_buffer);
+ grpc_slice_buffer_move_into(&conn->client_read_buffer,
+ &conn->server_write_buffer);
gpr_ref(&conn->refcount);
grpc_endpoint_write(exec_ctx, conn->server_endpoint,
&conn->server_write_buffer,
@@ -235,11 +235,11 @@ static void on_server_read_done(grpc_exec_ctx* exec_ctx, void* arg,
//
// Otherwise, move the read data into the write buffer and write it.
if (conn->client_write_buffer.length > 0) {
- gpr_slice_buffer_move_into(&conn->server_read_buffer,
- &conn->client_deferred_write_buffer);
+ grpc_slice_buffer_move_into(&conn->server_read_buffer,
+ &conn->client_deferred_write_buffer);
} else {
- gpr_slice_buffer_move_into(&conn->server_read_buffer,
- &conn->client_write_buffer);
+ grpc_slice_buffer_move_into(&conn->server_read_buffer,
+ &conn->client_write_buffer);
gpr_ref(&conn->refcount);
grpc_endpoint_write(exec_ctx, conn->client_endpoint,
&conn->client_write_buffer,
@@ -260,7 +260,7 @@ static void on_write_response_done(grpc_exec_ctx* exec_ctx, void* arg,
return;
}
// Clear write buffer.
- gpr_slice_buffer_reset_and_unref(&conn->client_write_buffer);
+ grpc_slice_buffer_reset_and_unref(&conn->client_write_buffer);
// Start reading from both client and server. One of the read
// requests inherits our ref to conn, but we need to take a new ref
// for the other one.
@@ -289,9 +289,9 @@ static void on_server_connect_done(grpc_exec_ctx* exec_ctx, void* arg,
// We've established a connection, so send back a 200 response code to
// the client.
// The write callback inherits our reference to conn.
- gpr_slice slice =
- gpr_slice_from_copied_string("HTTP/1.0 200 connected\r\n\r\n");
- gpr_slice_buffer_add(&conn->client_write_buffer, slice);
+ grpc_slice slice =
+ grpc_slice_from_copied_string("HTTP/1.0 200 connected\r\n\r\n");
+ grpc_slice_buffer_add(&conn->client_write_buffer, slice);
grpc_endpoint_write(exec_ctx, conn->client_endpoint,
&conn->client_write_buffer,
&conn->on_write_response_done);
@@ -313,7 +313,7 @@ static void on_read_request_done(grpc_exec_ctx* exec_ctx, void* arg,
}
// Read request and feed it to the parser.
for (size_t i = 0; i < conn->client_read_buffer.count; ++i) {
- if (GPR_SLICE_LENGTH(conn->client_read_buffer.slices[i]) > 0) {
+ if (GRPC_SLICE_LENGTH(conn->client_read_buffer.slices[i]) > 0) {
error = grpc_http_parser_parse(&conn->http_parser,
conn->client_read_buffer.slices[i], NULL);
if (error != GRPC_ERROR_NONE) {
@@ -324,7 +324,7 @@ static void on_read_request_done(grpc_exec_ctx* exec_ctx, void* arg,
}
}
}
- gpr_slice_buffer_reset_and_unref(&conn->client_read_buffer);
+ grpc_slice_buffer_reset_and_unref(&conn->client_read_buffer);
// If we're not done reading the request, read more data.
if (conn->http_parser.state != GRPC_HTTP_BODY) {
grpc_endpoint_read(exec_ctx, conn->client_endpoint,
@@ -359,7 +359,7 @@ static void on_read_request_done(grpc_exec_ctx* exec_ctx, void* arg,
const gpr_timespec deadline = gpr_time_add(
gpr_now(GPR_CLOCK_MONOTONIC), gpr_time_from_seconds(10, GPR_TIMESPAN));
grpc_tcp_client_connect(exec_ctx, &conn->on_server_connect_done,
- &conn->server_endpoint, conn->pollset_set,
+ &conn->server_endpoint, conn->pollset_set, NULL,
&resolved_addresses->addrs[0], deadline);
grpc_resolved_addresses_destroy(resolved_addresses);
}
@@ -367,6 +367,7 @@ static void on_read_request_done(grpc_exec_ctx* exec_ctx, void* arg,
static void on_accept(grpc_exec_ctx* exec_ctx, void* arg,
grpc_endpoint* endpoint, grpc_pollset* accepting_pollset,
grpc_tcp_server_acceptor* acceptor) {
+ gpr_free(acceptor);
grpc_end2end_http_proxy* proxy = arg;
// Instantiate proxy_connection.
proxy_connection* conn = gpr_malloc(sizeof(*conn));
@@ -384,12 +385,12 @@ static void on_accept(grpc_exec_ctx* exec_ctx, void* arg,
grpc_closure_init(&conn->on_client_write_done, on_client_write_done, conn);
grpc_closure_init(&conn->on_server_read_done, on_server_read_done, conn);
grpc_closure_init(&conn->on_server_write_done, on_server_write_done, conn);
- gpr_slice_buffer_init(&conn->client_read_buffer);
- gpr_slice_buffer_init(&conn->client_deferred_write_buffer);
- gpr_slice_buffer_init(&conn->client_write_buffer);
- gpr_slice_buffer_init(&conn->server_read_buffer);
- gpr_slice_buffer_init(&conn->server_deferred_write_buffer);
- gpr_slice_buffer_init(&conn->server_write_buffer);
+ grpc_slice_buffer_init(&conn->client_read_buffer);
+ grpc_slice_buffer_init(&conn->client_deferred_write_buffer);
+ grpc_slice_buffer_init(&conn->client_write_buffer);
+ grpc_slice_buffer_init(&conn->server_read_buffer);
+ grpc_slice_buffer_init(&conn->server_deferred_write_buffer);
+ grpc_slice_buffer_init(&conn->server_write_buffer);
grpc_http_parser_init(&conn->http_parser, GRPC_HTTP_REQUEST,
&conn->http_request);
grpc_endpoint_read(exec_ctx, conn->client_endpoint, &conn->client_read_buffer,
@@ -418,7 +419,8 @@ static void thread_main(void* arg) {
grpc_exec_ctx_finish(&exec_ctx);
}
-grpc_end2end_http_proxy* grpc_end2end_http_proxy_create() {
+grpc_end2end_http_proxy* grpc_end2end_http_proxy_create(void) {
+ grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
grpc_end2end_http_proxy* proxy = gpr_malloc(sizeof(*proxy));
memset(proxy, 0, sizeof(*proxy));
// Construct proxy address.
@@ -427,8 +429,8 @@ grpc_end2end_http_proxy* grpc_end2end_http_proxy_create() {
gpr_log(GPR_INFO, "Proxy address: %s", proxy->proxy_name);
// Create TCP server.
proxy->channel_args = grpc_channel_args_copy(NULL);
- grpc_error* error =
- grpc_tcp_server_create(NULL, proxy->channel_args, &proxy->server);
+ grpc_error* error = grpc_tcp_server_create(
+ &exec_ctx, NULL, proxy->channel_args, &proxy->server);
GPR_ASSERT(error == GRPC_ERROR_NONE);
// Bind to port.
grpc_resolved_address resolved_addr;
@@ -443,7 +445,6 @@ grpc_end2end_http_proxy* grpc_end2end_http_proxy_create() {
// Start server.
proxy->pollset = gpr_malloc(grpc_pollset_size());
grpc_pollset_init(proxy->pollset, &proxy->mu);
- grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
grpc_tcp_server_start(&exec_ctx, proxy->server, &proxy->pollset, 1, on_accept,
proxy);
grpc_exec_ctx_finish(&exec_ctx);