iodine 0.7.43 → 0.7.44

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.
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