aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/ext/transport/chttp2/transport
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2016-08-18 15:17:46 -0700
committerGravatar Craig Tiller <ctiller@google.com>2016-08-18 15:17:46 -0700
commit73ba74b19cfe87d61ba2de66b44107b92c1e04e5 (patch)
treec9fec54d71e95448bc33510542eec3dcd0b50704 /src/core/ext/transport/chttp2/transport
parent83200a40a0d5f614be224ecc46160f72cdbd4a78 (diff)
Fix ping
Diffstat (limited to 'src/core/ext/transport/chttp2/transport')
-rw-r--r--src/core/ext/transport/chttp2/transport/chttp2_transport.c9
-rw-r--r--src/core/ext/transport/chttp2/transport/frame_ping.c2
2 files changed, 10 insertions, 1 deletions
diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.c b/src/core/ext/transport/chttp2/transport/chttp2_transport.c
index 71b3006379..0be00a78d4 100644
--- a/src/core/ext/transport/chttp2/transport/chttp2_transport.c
+++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.c
@@ -1211,6 +1211,7 @@ static void send_ping_locked(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t,
p->id[5] = (uint8_t)((t->global.ping_counter >> 16) & 0xff);
p->id[6] = (uint8_t)((t->global.ping_counter >> 8) & 0xff);
p->id[7] = (uint8_t)(t->global.ping_counter & 0xff);
+ t->global.ping_counter++;
p->on_recv = on_recv;
gpr_slice_buffer_add(&t->global.qbuf, grpc_chttp2_ping_create(0, p->id));
grpc_chttp2_initiate_write(exec_ctx, &t->global, true, "send_ping");
@@ -1227,9 +1228,15 @@ void grpc_chttp2_ack_ping(grpc_exec_ctx *exec_ctx,
ping->next->prev = ping->prev;
ping->prev->next = ping->next;
gpr_free(ping);
- break;
+ return;
}
}
+ char *msg = gpr_dump((const char *)opaque_8bytes, 8, GPR_DUMP_HEX);
+ char *from =
+ grpc_endpoint_get_peer(TRANSPORT_FROM_GLOBAL(transport_global)->ep);
+ gpr_log(GPR_DEBUG, "Unknown ping response from %s: %s", from, msg);
+ gpr_free(from);
+ gpr_free(msg);
}
static void perform_transport_op_locked(grpc_exec_ctx *exec_ctx,
diff --git a/src/core/ext/transport/chttp2/transport/frame_ping.c b/src/core/ext/transport/chttp2/transport/frame_ping.c
index 65b7cec986..9a56e66788 100644
--- a/src/core/ext/transport/chttp2/transport/frame_ping.c
+++ b/src/core/ext/transport/chttp2/transport/frame_ping.c
@@ -95,6 +95,8 @@ grpc_error *grpc_chttp2_ping_parser_parse(
} else {
gpr_slice_buffer_add(&transport_global->qbuf,
grpc_chttp2_ping_create(1, p->opaque_8bytes));
+ grpc_chttp2_initiate_write(exec_ctx, transport_global, false,
+ "ping response");
}
}