ds9 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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