iodine 0.7.36 → 0.7.37

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: caba5a01ba9efefbadf0fd3c974e34977dc1e671ce18d17ea924d746b7936759
4
- data.tar.gz: d16060974362ee9bfdedbd4d46eadbeea48c2b57379e2a27609bcaad5fde5ea9
3
+ metadata.gz: d09283cad97b84847493794f2245f7b477b6f0170a8332112c3836106d660373
4
+ data.tar.gz: 3727db00462421260d06689ac5c578cda9203d2dc2c3d4daed53b4f9dc6b84f5
5
5
  SHA512:
6
- metadata.gz: 6ef0992c4f4399535d17e818b6dc557f8d2811c02207d38d8e94c53cd3105528bd494a1ff1cb0ad77228a60268d7861c0a81b08ae2c3b9688b9e13a532384f89
7
- data.tar.gz: 2d03ae0c9435544580a0c943f4823c4d1103318929a3a0e44b209bd0e6c6f104d93928622c041af6358360198b6606acac80ec4f57ce46ce4650a2e62287f155
6
+ metadata.gz: db93d224de064141cf4a422e05bba2e67c74ef0344dfce19579be48489cc16b070e24527e30aa4c081f9c38ca4aeb2c737f90d1edd8d157cf0d334b5f083965e
7
+ data.tar.gz: 8b6e496da5af91bf59225798c41d00776caafb3aec55a57c5ee43a1ca943a0312e676e119a9a41387c4beba5350d0f71c1ec70868d29933be6b140ac1d814b64
@@ -6,6 +6,12 @@ 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.37
10
+
11
+ **Fix**: requests will fail when the path contains a dangling `?` (empty query). Credit to @adam12 for exposing this and opening issue #86.
12
+
13
+ **Fix**: documentation improvements and corrections, credit to Caleb Albritton ( @WA9ACE ) and Don Morrison ( @elskwid ) for PRs #82 and #83. Credit to Nir ( @Roko131 ) and Aurel Branzeanu ( @texpert ) for opening and commenting on issue #84.
14
+
9
15
  #### Change log v.0.7.36
10
16
 
11
17
  **Fix**: avoids clobbering the namespace when attempting to set Rack's default handler. Credit to Caleb Albritton ( @WA9ACE ) for issue #80 and PR #81.
data/README.md CHANGED
@@ -348,7 +348,7 @@ Since the master / root process doesn't handle any requests (it only handles pub
348
348
 
349
349
  ### Optimized HTTP logging
350
350
 
351
- By default, iodine is pretty quite. Some messages are logged to `stderr`, but not many.
351
+ By default, iodine is pretty quiet. Some messages are logged to `stderr`, but not many.
352
352
 
353
353
  However, HTTP requests can be logged using iodine's optimized logger to `stderr`. Iodine will optimize the log output by caching the output time string which updates every second rather than every request.
354
354
 
@@ -585,7 +585,7 @@ More possible compile time options can be found in the [facil.io documentation](
585
585
 
586
586
  ## Evented oriented design with extra safety
587
587
 
588
- Iodine is an evened server, similar in it's architecture to `nginx` and `puma`. It's different than the simple "thread-per-client" design that is often taught when we begin to learn about network programming.
588
+ Iodine is an evented server, similar in its architecture to `nginx` and `puma`. It's different than the simple "thread-per-client" design that is often taught when we begin to learn about network programming.
589
589
 
590
590
  By leveraging `epoll` (on Linux) and `kqueue` (on BSD), iodine can listen to multiple network events on multiple sockets using a single thread.
591
591
 
@@ -47,6 +47,8 @@ static int seek2ch(uint8_t **buffer, register uint8_t *const limit,
47
47
  {
48
48
  const uint8_t *alignment =
49
49
  (uint8_t *)(((uintptr_t)(*buffer) & (~(uintptr_t)7)) + 8);
50
+ if (*buffer < alignment)
51
+ *buffer += 1; /* already tested this char */
50
52
  if (limit >= alignment) {
51
53
  while (*buffer < alignment) {
52
54
  if (**buffer == c) {
@@ -93,7 +95,7 @@ finish:
93
95
  inline static uint8_t seek2ch(uint8_t **pos, uint8_t *const limit, uint8_t ch) {
94
96
  /* This is library based alternative that is sometimes slower */
95
97
  if (*pos >= limit || **pos == ch) {
96
- return 0;
98
+ return 1;
97
99
  }
98
100
  uint8_t *tmp = memchr(*pos, ch, limit - (*pos));
99
101
  if (tmp) {
@@ -117,6 +117,8 @@ Core API
117
117
  * i.e., -2 == half the number of detected CPU cores.
118
118
  *
119
119
  * Zero values promise nothing (iodine will decide what to do with them).
120
+ *
121
+ * @return [FixNum] Thread Count
120
122
  */
121
123
  static VALUE iodine_threads_get(VALUE self) {
122
124
  VALUE i = rb_ivar_get(self, rb_intern2("@threads", 8));
@@ -133,6 +135,8 @@ static VALUE iodine_threads_get(VALUE self) {
133
135
  * i.e., -2 == half the number of detected CPU cores.
134
136
  *
135
137
  * Zero values promise nothing (iodine will decide what to do with them).
138
+ *
139
+ * @param thread_count [FixNum] The number of worker threads to use
136
140
  */
137
141
  static VALUE iodine_threads_set(VALUE self, VALUE val) {
138
142
  Check_Type(val, T_FIXNUM);
@@ -157,6 +161,8 @@ static VALUE iodine_threads_set(VALUE self, VALUE val) {
157
161
  *
158
162
  * Logging is always performed to the process's STDERR and can be piped away.
159
163
  *
164
+ * @return [FixNum] Logging Level
165
+ *
160
166
  * NOTE: this does NOT effect HTTP logging.
161
167
  */
162
168
  static VALUE iodine_logging_get(VALUE self) {
@@ -178,6 +184,8 @@ static VALUE iodine_logging_get(VALUE self) {
178
184
  *
179
185
  * Logging is always performed to the process's STDERR and can be piped away.
180
186
  *
187
+ * @param log_level [FixNum] Sets the logging level
188
+ *
181
189
  * NOTE: this does NOT effect HTTP logging.
182
190
  */
183
191
  static VALUE iodine_logging_set(VALUE self, VALUE val) {
@@ -196,6 +204,8 @@ static VALUE iodine_logging_set(VALUE self, VALUE val) {
196
204
  * Zero values promise nothing (iodine will decide what to do with them).
197
205
  *
198
206
  * 1 == single process mode, the msater process acts as a worker process.
207
+ *
208
+ * @return [FixNum] Worker Count
199
209
  */
200
210
  static VALUE iodine_workers_get(VALUE self) {
201
211
  VALUE i = rb_ivar_get(self, rb_intern2("@workers", 8));
@@ -214,6 +224,8 @@ static VALUE iodine_workers_get(VALUE self) {
214
224
  * Zero values promise nothing (iodine will decide what to do with them).
215
225
  *
216
226
  * 1 == single process mode, the msater process acts as a worker process.
227
+ *
228
+ * @param worker_count [FixNum] Number of worker processes
217
229
  */
218
230
  static VALUE iodine_workers_set(VALUE self, VALUE val) {
219
231
  Check_Type(val, T_FIXNUM);
@@ -45,5 +45,5 @@ Gem::Specification.new do |spec|
45
45
  spec.add_development_dependency 'rake-compiler', '>= 1', '< 2.0'
46
46
 
47
47
  spec.post_install_message = "Thank you for installing Iodine #{Iodine::VERSION}.\n" +
48
- "Remember: if iodine supports your business, it's is only fair to give value back (code contributions / donations)."
48
+ "Remember: if iodine supports your business, it's only fair to give value back (code contributions / donations)."
49
49
  end
@@ -1,3 +1,3 @@
1
1
  module Iodine
2
- VERSION = '0.7.36'.freeze
2
+ VERSION = '0.7.37'.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.36
4
+ version: 0.7.37
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boaz Segev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-24 00:00:00.000000000 Z
11
+ date: 2019-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -243,8 +243,8 @@ licenses:
243
243
  metadata:
244
244
  allowed_push_host: https://rubygems.org
245
245
  post_install_message: |-
246
- Thank you for installing Iodine 0.7.36.
247
- Remember: if iodine supports your business, it's is only fair to give value back (code contributions / donations).
246
+ Thank you for installing Iodine 0.7.37.
247
+ Remember: if iodine supports your business, it's only fair to give value back (code contributions / donations).
248
248
  rdoc_options: []
249
249
  require_paths:
250
250
  - lib