ext/ds9/ds9_frames.c in ds9-1.2.0 vs ext/ds9/ds9_frames.c in ds9-1.2.1
- old
+ new
@@ -106,10 +106,26 @@
TypedData_Get_Struct(self, nghttp2_frame, &ds9_frame_type, frame);
return INT2NUM(frame->headers.cat);
}
+static VALUE goaway_last_stream_id(VALUE self)
+{
+ nghttp2_frame *frame;
+ TypedData_Get_Struct(self, nghttp2_frame, &ds9_frame_type, frame);
+
+ return INT2NUM(frame->goaway.last_stream_id);
+}
+
+static VALUE goaway_error_code(VALUE self)
+{
+ nghttp2_frame *frame;
+ TypedData_Get_Struct(self, nghttp2_frame, &ds9_frame_type, frame);
+
+ return INT2NUM(frame->goaway.error_code);
+}
+
void Init_ds9_frames(VALUE mDS9)
{
mDS9Frames = rb_define_module_under(mDS9, "Frames");
cDS9FramesFrame = rb_define_class_under(mDS9Frames, "Frame", rb_cData);
@@ -138,9 +154,11 @@
rb_define_const(mDS9FramesFlags, "END_HEADERS", INT2NUM(NGHTTP2_FLAG_END_HEADERS));
rb_define_const(mDS9FramesFlags, "ACK", INT2NUM(NGHTTP2_FLAG_ACK));
rb_define_const(mDS9FramesFlags, "PADDED", INT2NUM(NGHTTP2_FLAG_PADDED));
rb_define_const(mDS9FramesFlags, "PRIORITY", INT2NUM(NGHTTP2_FLAG_PRIORITY));
+ rb_define_method(cDS9FramesGoaway, "last_stream_id", goaway_last_stream_id, 0);
+ rb_define_method(cDS9FramesGoaway, "error_code", goaway_error_code, 0);
rb_define_const(cDS9FramesGoaway, "NO_ERROR", INT2NUM(NGHTTP2_NO_ERROR));
rb_define_const(cDS9FramesGoaway, "PROTOCOL_ERROR", INT2NUM(NGHTTP2_PROTOCOL_ERROR));
rb_define_const(cDS9FramesGoaway, "INTERNAL_ERROR", INT2NUM(NGHTTP2_INTERNAL_ERROR));
rb_define_const(cDS9FramesGoaway, "FLOW_CONTROL_ERROR", INT2NUM(NGHTTP2_FLOW_CONTROL_ERROR));
rb_define_const(cDS9FramesGoaway, "SETTINGS_TIMEOUT", INT2NUM(NGHTTP2_SETTINGS_TIMEOUT));