Esempio n. 1
0
static int init_window_update_frame_parser(
    grpc_chttp2_transport_parsing *transport_parsing) {
    int ok = GRPC_CHTTP2_PARSE_OK == grpc_chttp2_window_update_parser_begin_frame(
                 &transport_parsing->simple.window_update,
                 transport_parsing->incoming_frame_size,
                 transport_parsing->incoming_frame_flags);
    if (transport_parsing->incoming_stream_id) {
        transport_parsing->incoming_stream = grpc_chttp2_parsing_lookup_stream(
                transport_parsing, transport_parsing->incoming_stream_id);
    }
    transport_parsing->parser = grpc_chttp2_window_update_parser_parse;
    transport_parsing->parser_data = &transport_parsing->simple.window_update;
    return ok;
}
Esempio n. 2
0
static grpc_error *init_window_update_frame_parser(grpc_exec_ctx *exec_ctx,
                                                   grpc_chttp2_transport *t) {
  grpc_error *err = grpc_chttp2_window_update_parser_begin_frame(
      &t->simple.window_update, t->incoming_frame_size,
      t->incoming_frame_flags);
  if (err != GRPC_ERROR_NONE) return err;
  if (t->incoming_stream_id != 0) {
    grpc_chttp2_stream *s = t->incoming_stream =
        grpc_chttp2_parsing_lookup_stream(t, t->incoming_stream_id);
    if (s == NULL) {
      return init_skip_frame_parser(exec_ctx, t, 0);
    }
    s->stats.incoming.framing_bytes += 9;
  }
  t->parser = grpc_chttp2_window_update_parser_parse;
  t->parser_data = &t->simple.window_update;
  return GRPC_ERROR_NONE;
}