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));