Exemple #1
0
static grpc_error *init_rst_stream_parser(grpc_exec_ctx *exec_ctx,
                                          grpc_chttp2_transport *t) {
  grpc_error *err = grpc_chttp2_rst_stream_parser_begin_frame(
      &t->simple.rst_stream, t->incoming_frame_size, t->incoming_frame_flags);
  if (err != GRPC_ERROR_NONE) return err;
  grpc_chttp2_stream *s = t->incoming_stream =
      grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
  if (!t->incoming_stream) {
    return init_skip_frame_parser(exec_ctx, t, 0);
  }
  s->stats.incoming.framing_bytes += 9;
  t->parser = grpc_chttp2_rst_stream_parser_parse;
  t->parser_data = &t->simple.rst_stream;
  return GRPC_ERROR_NONE;
}
Exemple #2
0
static int init_rst_stream_parser(
    grpc_chttp2_transport_parsing *transport_parsing) {
    int ok = GRPC_CHTTP2_PARSE_OK == grpc_chttp2_rst_stream_parser_begin_frame(
                 &transport_parsing->simple.rst_stream,
                 transport_parsing->incoming_frame_size,
                 transport_parsing->incoming_frame_flags);
    transport_parsing->incoming_stream = grpc_chttp2_parsing_lookup_stream(
            transport_parsing, transport_parsing->incoming_stream_id);
    if (!transport_parsing->incoming_stream) {
        return init_skip_frame_parser(transport_parsing, 0);
    }
    transport_parsing->parser = grpc_chttp2_rst_stream_parser_parse;
    transport_parsing->parser_data = &transport_parsing->simple.rst_stream;
    return ok;
}