rage-iodine 3.0.4 → 3.0.6

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: 827c54292c5797ef0e8a744953c7285d7bde14baa42ccd8b12c79d6eb5a6bc33
4
- data.tar.gz: 97f0854e71a859bd6dc7f1c8c46ca3e82c2ddcf92b8b23e2aa77eadb9797c7d3
3
+ metadata.gz: 97aba2242f36a1ed75614e9722004d0ae730df41a4bd964d3cc08f3b1c9155a3
4
+ data.tar.gz: f28d5c5cba986ed39cdb197054879e2d1bcbb16f074b110093f571044da843d1
5
5
  SHA512:
6
- metadata.gz: 8f521569cd668eb25312a2bcb453492c85bf2d09467509574f2ac756f389063d08b8299e7f9306ce3ebcced115e728d4c9862576d8a868e0dd5588bc0def69f4
7
- data.tar.gz: a5f90318671553fb05ff6d48b6d1c831bc825892b6f4b2b3d4c80199dc30a8b621e7478c4c4aa3204c8c9f72c7d87273a0683887b91b09ec41cd8e0c2a79c32f
6
+ metadata.gz: 2c55356761cf8e8467233a2c73cb866f8956655d9069c827d1c56354b45451e8447d7bdcca66ac6727d035fe4b2b70fa5bb8e76831ba28773a4952b2e58cde42
7
+ data.tar.gz: d044938f40f8784c42f7b8e6d610b1b975caf41caf8e79f29c739d9d9bfe24fd0d6fda115b6cbb0c37e898f86e997deb117c03f79f89ab5a8ab939270a12de6f
data/CHANGELOG.md CHANGED
@@ -6,11 +6,20 @@ Please notice that this change log contains changes for upcoming releases as wel
6
6
 
7
7
  ## Changes:
8
8
 
9
- #### Change log v.3.0.4 (2023-01-09)
9
+ #### Change log v.3.0.6 (2024-03-14)
10
+
11
+ **Fix**: Fix `call_with_block` function's signature.
12
+ **Fix**: Fix "enumeration values ... not handled in switch" warning.
13
+
14
+ #### Change log v.3.0.5 (2024-03-13)
15
+
16
+ **Fix**: Fix the "incompatible pointer" compilation warnings.
17
+
18
+ #### Change log v.3.0.4 (2024-01-09)
10
19
 
11
20
  **Fix**: Delete temp files.
12
21
 
13
- #### Change log v.3.0.3 (2023-01-04)
22
+ #### Change log v.3.0.3 (2024-01-04)
14
23
 
15
24
  **Fix**: Stop closing Rack IO.
16
25
 
data/ext/iodine/fio.c CHANGED
@@ -285,6 +285,7 @@ static void deferred_on_shutdown(void *arg, void *arg2);
285
285
  static void deferred_on_ready(void *arg, void *arg2);
286
286
  static void deferred_on_data(void *uuid, void *arg2);
287
287
  static void deferred_ping(void *arg, void *arg2);
288
+ static void deferred_force_close_in_poll(void *uuid, void *arg2);
288
289
 
289
290
  /* *****************************************************************************
290
291
  Section Start Marker
@@ -531,6 +532,10 @@ static inline void fio_force_close_in_poll(intptr_t uuid) {
531
532
  fio_force_close(uuid);
532
533
  }
533
534
 
535
+ static void deferred_force_close_in_poll(void *uuid, void *arg2) {
536
+ fio_force_close_in_poll((intptr_t)uuid);
537
+ }
538
+
534
539
  /* *****************************************************************************
535
540
  Protocol Locking and UUID validation
536
541
  ***************************************************************************** */
@@ -2065,7 +2070,7 @@ static size_t fio_poll(void) {
2065
2070
  (void *)fd2uuid(events[i].data.fd), NULL);
2066
2071
  }
2067
2072
  if (events[i].events & (EPOLLHUP | EPOLLRDHUP)) {
2068
- fio_defer_push_task(fio_force_close_in_poll,
2073
+ fio_defer_push_task(deferred_force_close_in_poll,
2069
2074
  (void *)fd2uuid(events[i].data.fd), NULL);
2070
2075
  }
2071
2076
  }
@@ -2202,7 +2207,7 @@ static size_t fio_poll(void) {
2202
2207
  NULL);
2203
2208
  }
2204
2209
  if (events[i].flags & (EV_EOF | EV_ERROR)) {
2205
- fio_defer_push_task(fio_force_close_in_poll,
2210
+ fio_defer_push_task(deferred_force_close_in_poll,
2206
2211
  (void *)fd2uuid(events[i].udata), NULL);
2207
2212
  }
2208
2213
  }
data/ext/iodine/http.c CHANGED
@@ -1949,10 +1949,11 @@ static void add_to_params(VALUE params, char *key, size_t key_len, VALUE value)
1949
1949
  }
1950
1950
  }
1951
1951
 
1952
- static inline void cleanup_temp_file(void *r_path) {
1953
- char *path = StringValueCStr(r_path);
1954
- IodineStore.remove((VALUE)r_path);
1955
- unlink(path);
1952
+ static inline void cleanup_temp_file(void *path) {
1953
+ VALUE r_path = (VALUE)path;
1954
+ IodineStore.remove(r_path);
1955
+ char *c_path = StringValueCStr(r_path);
1956
+ unlink(c_path);
1956
1957
  }
1957
1958
 
1958
1959
  static VALUE create_temp_file(http_mime_parser_s *parser, char **path) {
@@ -31,7 +31,7 @@ typedef struct {
31
31
  ID method;
32
32
  int exception;
33
33
  VALUE (*protected_task)(VALUE tsk_);
34
- VALUE (*each_func)(VALUE block_arg, VALUE data, int argc, VALUE *argv);
34
+ VALUE (*each_func)(VALUE block_arg, VALUE data, int argc, const VALUE *argv, VALUE blockarg);
35
35
  VALUE each_udata;
36
36
  } iodine_rb_task_s;
37
37
 
@@ -160,7 +160,7 @@ static VALUE iodine_call2(VALUE obj, ID method, int argc, VALUE *argv) {
160
160
  static VALUE iodine_call_block(VALUE obj, ID method, int argc, VALUE *argv,
161
161
  VALUE udata,
162
162
  VALUE(each_func)(VALUE block_arg, VALUE udata,
163
- int argc, VALUE *argv)) {
163
+ int argc, const VALUE *argv, VALUE blockarg)) {
164
164
  iodine_rb_task_s task = {
165
165
  .obj = obj,
166
166
  .argc = argc,
@@ -17,7 +17,7 @@ extern struct IodineCaller_s {
17
17
  /** Calls a Ruby method on a given object, protecting against exceptions. */
18
18
  VALUE(*call_with_block)
19
19
  (VALUE obj, ID method, int argc, VALUE *argv, VALUE udata,
20
- VALUE (*block_func)(VALUE block_argv1, VALUE udata, int argc, VALUE *argv));
20
+ VALUE (*block_func)(VALUE block_argv1, VALUE udata, int argc, const VALUE *argv, VALUE blockarg));
21
21
  /** Returns the GVL state flag. */
22
22
  uint8_t (*in_GVL)(void);
23
23
  /** Forces the GVL state flag. */
@@ -544,7 +544,7 @@ array_style_multi_value:
544
544
 
545
545
  // writes the body to the response object
546
546
  static VALUE for_each_body_string(VALUE str, VALUE body_, int argc,
547
- VALUE *argv) {
547
+ const VALUE *argv, VALUE blockarg) {
548
548
  // fprintf(stderr, "For_each - body\n");
549
549
  // write body
550
550
  if (TYPE(str) != T_STRING) {
@@ -557,6 +557,7 @@ static VALUE for_each_body_string(VALUE str, VALUE body_, int argc,
557
557
  return Qtrue;
558
558
  (void)argc;
559
559
  (void)argv;
560
+ (void)blockarg;
560
561
  }
561
562
 
562
563
  static inline int ruby2c_response_send(iodine_http_request_handle_s *handle,
@@ -813,6 +814,11 @@ iodine_perform_handle_action(iodine_http_request_handle_s handle) {
813
814
  http_send_error(handle.h, handle.h->status);
814
815
  fiobj_free(handle.body);
815
816
  break;
817
+ case IODINE_HTTP_WAIT:
818
+ case IODINE_HTTP_DEFERRED:
819
+ /* these are handled before the `iodine_perform_handle_action` call */
820
+ FIO_LOG_WARNING("Unexpected handle type in perform_handle_action: %d", handle.type);
821
+ break;
816
822
  }
817
823
  }
818
824
 
@@ -1,3 +1,3 @@
1
1
  module Iodine
2
- VERSION = '3.0.4'.freeze
2
+ VERSION = '3.0.6'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rage-iodine
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.4
4
+ version: 3.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boaz Segev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-09 00:00:00.000000000 Z
11
+ date: 2024-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake