ds9 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/ext/ds9/ds9.c +21 -0
  3. data/lib/ds9.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ddb3bec07f20bfb55e016cdcd831e56f9a94b70f7db63862d7951019e989567
4
- data.tar.gz: 36d9dee001423093b24bea5fff33e46d06ac52247f971e23a4e97ede9fb36fcc
3
+ metadata.gz: e93c72e4d28af98ab22cfddbbf23d63464058b22f918bdcd1e8c8757de1446d4
4
+ data.tar.gz: 46ba03fb497b1402225e240fd480630dc8a0446b59fef942a6948dbb52878e76
5
5
  SHA512:
6
- metadata.gz: 5200c393ba44667a62181c95d4943373dff514ed50ac70ab9459b8ad5d156f8be24743ad0c182985ddd77c8cbc41339215881c3d29cc56857118c7346444e590
7
- data.tar.gz: d765ceb6ed1cadc9e090a42706d66858419af65c5f079b9a132ad32d6aba3fdd0bf9a95e7f2d249c5119bd336546b301f4778117dc7a033129d7dae21afcaba6
6
+ metadata.gz: e1e6f2f41597ffb538ece6d682bd958e852823b614bfa9cced6d34765df773038262a24eddee98df33378b857d756597cda325a3fb630622e724f1987c145dc4
7
+ data.tar.gz: ed37cb22eb7fdd60d8ccb36cacee5b7635a7e790a1258f7eefcb60778495ac35238b72419be134d9faae27a82a72109adbef7848080c6831ec72b1491e3b5972
@@ -588,6 +588,8 @@ ruby_read(nghttp2_session *session, int32_t stream_id, uint8_t *buf, size_t leng
588
588
  rb_funcall(self, rb_intern("remove_post_buffer"), 1, INT2NUM(stream_id));
589
589
  *data_flags |= NGHTTP2_DATA_FLAG_EOF;
590
590
  return 0;
591
+ } else if (ret == Qfalse) {
592
+ return NGHTTP2_ERR_DEFERRED;
591
593
  } else {
592
594
  memcpy(buf, RSTRING_PTR(ret), RSTRING_LEN(ret));
593
595
  return RSTRING_LEN(ret);
@@ -761,6 +763,24 @@ static VALUE session_stream_remote_closed_p(VALUE self, VALUE streamid)
761
763
  return Qfalse;
762
764
  }
763
765
 
766
+ static VALUE session_resume_data(VALUE self, VALUE streamid)
767
+ {
768
+ nghttp2_session *session;
769
+ int stream_id;
770
+ int rv;
771
+
772
+ TypedData_Get_Struct(self, nghttp2_session, &ds9_session_type, session);
773
+ CheckSelf(session);
774
+
775
+ stream_id = NUM2INT(streamid);
776
+ rv = nghttp2_session_resume_data(session, stream_id);
777
+
778
+ if (rv == 0)
779
+ return Qtrue;
780
+
781
+ return explode(rv);
782
+ }
783
+
764
784
  static VALUE session_terminate_session(VALUE self, VALUE err)
765
785
  {
766
786
  int rv;
@@ -975,6 +995,7 @@ void Init_ds9(void)
975
995
  rb_define_method(cDS9Session, "terminate_session", session_terminate_session, 1);
976
996
  rb_define_method(cDS9Session, "stream_local_closed?", session_stream_local_closed_p, 1);
977
997
  rb_define_method(cDS9Session, "stream_remote_closed?", session_stream_remote_closed_p, 1);
998
+ rb_define_method(cDS9Session, "resume_data", session_resume_data, 1);
978
999
 
979
1000
  rb_define_private_method(cDS9Session, "submit_request", session_submit_request, 2);
980
1001
  rb_define_private_method(cDS9Session, "make_callbacks", make_callbacks, 0);
data/lib/ds9.rb CHANGED
@@ -2,7 +2,7 @@ require 'ds9.so'
2
2
  require 'stringio'
3
3
 
4
4
  module DS9
5
- VERSION = '1.1.1'
5
+ VERSION = '1.2.0'
6
6
 
7
7
  module Frames
8
8
  class Frame
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ds9
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Patterson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-28 00:00:00.000000000 Z
11
+ date: 2018-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest