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