iodine 0.7.43 → 0.7.44

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a444a825ab9cf0e6bd11fe14fb20c6a777e9282c1bea56cf5dc869087ce7a44
4
- data.tar.gz: 4c698a81975a588e8a5c185d57f9ca76ae1d37200d2a258f5d38631de386e9dd
3
+ metadata.gz: a212aecebe63d7033c5c1e985d4e2f90588dc604c8aa6a25965735aeef79ec72
4
+ data.tar.gz: 299ef31e1f2209cb11c0c49f2d4851d8c779a2744ebc08f42fb430ffaf3d76cc
5
5
  SHA512:
6
- metadata.gz: 9659c57e4d0c9f884b52dc07cf7b4c1a707f78d27bf03d058db1c2bfe2c873141a7d128c56b933098fa61a1f8fc48cce1319fea298c15bc8c606bb665b6d7d88
7
- data.tar.gz: f183fb08856e81963d90d03ba0319f2633a72634beb8b37b2a5cee6c66dfa61710de5532abb5c82dd059d0c8382b9968a824f2caefeee2a53213e2bab2bac0b3
6
+ metadata.gz: a6f12dfcff4eced37d98f627be0cb6a9662c8bac98365a5080ea0c47f9c3ae3919e315836ec33989be098c52c826707e0f22fa746f95a3847b354d6d0efa4f79
7
+ data.tar.gz: 1b5541f8c952f6b61feeb183cc6d7587ca200b4295afec9c9e540c69699f065c03724b46b464c929cc0aa800b594a0cdb83ec7b9a1b57c7501ba5633cb270124
data/CHANGELOG.md CHANGED
@@ -6,6 +6,14 @@ Please notice that this change log contains changes for upcoming releases as wel
6
6
 
7
7
  ## Changes:
8
8
 
9
+ #### Change log v.0.7.44 (2021-02-28)
10
+
11
+ **Fix**: Fixes issue #103 where an empty String response would result in the word "null" being returned (no String object was created, which routed the NULL object to facil.io's JSON interpreter). Credit to @waghanza (Marwan Rabbâa) for exposing the issue.
12
+
13
+ **Fix**: Fixes a possible edge case race condition where the GC might free a channel name's String object before it's passed on to the user's callback.
14
+
15
+ **Fix**: Fixes a typo in the CLI documentation.
16
+
9
17
  #### Change log v.0.7.43 (2020-11-03)
10
18
 
11
19
  **Fix**: Fixes an issue where the GVL state in user-spawned threads is inaccurate. This issue only occurs if spawning a new thread and calling certain Iodine methods from a user thread.
data/ext/iodine/iodine.c CHANGED
@@ -413,7 +413,7 @@ static VALUE iodine_cli_parse(VALUE self) {
413
413
  FIO_CLI_PRINT_HEADER("WebSocket Settings:"),
414
414
  FIO_CLI_INT("-max-msg -maxms incoming WebSocket message limit in Kb. "
415
415
  "Default: 250Kb"),
416
- FIO_CLI_INT("-ping websocket ping interval (0..255). Default: 40s"),
416
+ FIO_CLI_INT("-ping websocket ping interval (1..255). Default: 40s"),
417
417
  FIO_CLI_PRINT_HEADER("SSL/TLS:"),
418
418
  FIO_CLI_BOOL("-tls enable SSL/TLS using a self-signed certificate."),
419
419
  FIO_CLI_STRING(
@@ -403,8 +403,12 @@ static void *iodine_on_pubsub_call_block(void *msg_) {
403
403
  fio_msg_s *msg = msg_;
404
404
  VALUE args[2];
405
405
  args[0] = rb_str_new(msg->channel.data, msg->channel.len);
406
+ IodineStore.add(args[0]);
406
407
  args[1] = rb_str_new(msg->msg.data, msg->msg.len);
408
+ IodineStore.add(args[1]);
407
409
  IodineCaller.call2((VALUE)msg->udata2, call_id, 2, args);
410
+ IodineStore.remove(args[1]);
411
+ IodineStore.remove(args[0]);
408
412
  return NULL;
409
413
  }
410
414
 
@@ -555,9 +555,11 @@ static inline int ruby2c_response_send(iodine_http_request_handle_s *handle,
555
555
 
556
556
  if (TYPE(body) == T_STRING) {
557
557
  // fprintf(stderr, "Review body as String\n");
558
- if (RSTRING_LEN(body))
558
+ handle->type = IODINE_HTTP_NONE;
559
+ if (RSTRING_LEN(body)) {
559
560
  handle->body = fiobj_str_new(RSTRING_PTR(body), RSTRING_LEN(body));
560
- handle->type = IODINE_HTTP_SENDBODY;
561
+ handle->type = IODINE_HTTP_SENDBODY;
562
+ }
561
563
  return 0;
562
564
  } else if (rb_respond_to(body, each_method_id)) {
563
565
  // fprintf(stderr, "Review body as for-each ...\n");
@@ -1,3 +1,3 @@
1
1
  module Iodine
2
- VERSION = '0.7.43'.freeze
2
+ VERSION = '0.7.44'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iodine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.43
4
+ version: 0.7.44
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boaz Segev
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-03 00:00:00.000000000 Z
11
+ date: 2021-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -244,7 +244,7 @@ licenses:
244
244
  metadata:
245
245
  allowed_push_host: https://rubygems.org
246
246
  post_install_message: |-
247
- Thank you for installing Iodine 0.7.43.
247
+ Thank you for installing Iodine 0.7.44.
248
248
  Remember: if iodine supports your business, it's only fair to give value back (code contributions / donations).
249
249
  rdoc_options: []
250
250
  require_paths:
@@ -266,8 +266,8 @@ requirements:
266
266
  - Ruby >= 2.3.8 (Ruby EOL).
267
267
  - Ruby >= 2.5.0 recommended.
268
268
  - TLS requires OpenSSL >= 1.1.0
269
- rubygems_version: 3.1.2
270
- signing_key:
269
+ rubygems_version: 3.2.3
270
+ signing_key:
271
271
  specification_version: 4
272
272
  summary: iodine - a fast HTTP / Websocket Server with Pub/Sub support, optimized for
273
273
  Ruby MRI on Linux / BSD