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 +4 -4
- data/CHANGELOG.md +8 -0
- data/ext/iodine/iodine.c +1 -1
- data/ext/iodine/iodine_connection.c +4 -0
- data/ext/iodine/iodine_http.c +4 -2
- data/lib/iodine/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a212aecebe63d7033c5c1e985d4e2f90588dc604c8aa6a25965735aeef79ec72
|
4
|
+
data.tar.gz: 299ef31e1f2209cb11c0c49f2d4851d8c779a2744ebc08f42fb430ffaf3d76cc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 (
|
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
|
|
data/ext/iodine/iodine_http.c
CHANGED
@@ -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
|
-
|
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
|
-
|
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");
|
data/lib/iodine/version.rb
CHANGED
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.
|
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:
|
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.
|
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.
|
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
|