agoo 2.15.13 → 2.15.14
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 +6 -0
- data/ext/agoo/con.c +11 -6
- data/lib/agoo/version.rb +1 -1
- data/test/base_handler_test.rb +23 -2
- metadata +5 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12e12e3428c92bdb7c5426a20a481935f89a7759a59ae9e7b66da2d49ecc4129
|
4
|
+
data.tar.gz: 342b51f1de8b8d6a589ff36717d84ed4e0e8a9898d1ff0b2439749a9b26e327e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0d8a64a93f955a5dd89d5b69e82b3c4aef9454aedda197227e79f6d3892c1650a7a766b8025a648e865f6350331642a754dc29ce4c5643c6d8a1ad42f2a0e23
|
7
|
+
data.tar.gz: dfad2c83a41d4a44e1af4181caa6556f4e0fa67c46f23066365f7a97460fb8561191770750f35f41226e4f3b66fb41596b8c4eb50980a485935d8e7fbd5dc98c
|
data/CHANGELOG.md
CHANGED
data/ext/agoo/con.c
CHANGED
@@ -297,6 +297,10 @@ con_header_read(agooCon c, size_t *mlenp) {
|
|
297
297
|
agooHook hook = NULL;
|
298
298
|
agooPage p;
|
299
299
|
struct _agooErr err = AGOO_ERR_INIT;
|
300
|
+
const char *v;
|
301
|
+
int vlen = 0;
|
302
|
+
char *vend;
|
303
|
+
|
300
304
|
|
301
305
|
if (NULL == hend) {
|
302
306
|
if (sizeof(c->buf) - 1 <= c->bcnt) {
|
@@ -321,11 +325,7 @@ con_header_read(agooCon c, size_t *mlenp) {
|
|
321
325
|
}
|
322
326
|
method = AGOO_GET;
|
323
327
|
break;
|
324
|
-
case 'P':
|
325
|
-
const char *v;
|
326
|
-
int vlen = 0;
|
327
|
-
char *vend;
|
328
|
-
|
328
|
+
case 'P':
|
329
329
|
if (3 == b - c->buf && 0 == strncmp("PUT", c->buf, 3)) {
|
330
330
|
method = AGOO_PUT;
|
331
331
|
} else if (4 == b - c->buf && 0 == strncmp("POST", c->buf, 4)) {
|
@@ -343,12 +343,17 @@ con_header_read(agooCon c, size_t *mlenp) {
|
|
343
343
|
return bad_request(c, 411, __LINE__);
|
344
344
|
}
|
345
345
|
break;
|
346
|
-
}
|
347
346
|
case 'D':
|
348
347
|
if (6 != b - c->buf || 0 != strncmp("DELETE", c->buf, 6)) {
|
349
348
|
return bad_request(c, 400, __LINE__);
|
350
349
|
}
|
351
350
|
method = AGOO_DELETE;
|
351
|
+
if (NULL != (v = agoo_con_header_value(c->buf, (int)(hend - c->buf), "Content-Length", &vlen))) {
|
352
|
+
clen = (size_t)strtoul(v, &vend, 10);
|
353
|
+
if (vend != v + vlen) {
|
354
|
+
return bad_request(c, 411, __LINE__);
|
355
|
+
}
|
356
|
+
}
|
352
357
|
break;
|
353
358
|
case 'H':
|
354
359
|
if (4 != b - c->buf || 0 != strncmp("HEAD", c->buf, 4)) {
|
data/lib/agoo/version.rb
CHANGED
data/test/base_handler_test.rb
CHANGED
@@ -29,6 +29,11 @@ class BaseHandlerTest < Minitest::Test
|
|
29
29
|
elsif 'PUT' == req.request_method
|
30
30
|
res.code = 201
|
31
31
|
res.body = req.body
|
32
|
+
elsif 'DELETE' == req.request_method
|
33
|
+
res.code = 200
|
34
|
+
res.body = req.body
|
35
|
+
|
36
|
+
|
32
37
|
end
|
33
38
|
end
|
34
39
|
end
|
@@ -66,6 +71,7 @@ class BaseHandlerTest < Minitest::Test
|
|
66
71
|
Agoo::Server.handle(:PUT, "/makeme", handler)
|
67
72
|
Agoo::Server.handle(:GET, "/wild/*/one", WildHandler.new('one'))
|
68
73
|
Agoo::Server.handle(:GET, "/wild/all/**", WildHandler.new('all'))
|
74
|
+
Agoo::Server.handle(:DELETE, "/notme", handler)
|
69
75
|
|
70
76
|
Agoo::Server.start()
|
71
77
|
|
@@ -118,9 +124,9 @@ class BaseHandlerTest < Minitest::Test
|
|
118
124
|
}
|
119
125
|
expect.each_pair { |k,v|
|
120
126
|
if v.nil?
|
121
|
-
|
127
|
+
assert_nil(obj[k], k)
|
122
128
|
else
|
123
|
-
|
129
|
+
assert_equal(v, obj[k], k)
|
124
130
|
end
|
125
131
|
}
|
126
132
|
end
|
@@ -155,6 +161,21 @@ class BaseHandlerTest < Minitest::Test
|
|
155
161
|
assert_equal('hello', res.body)
|
156
162
|
end
|
157
163
|
|
164
|
+
def test_delete
|
165
|
+
uri = URI('http://localhost:6470/notme')
|
166
|
+
req = Net::HTTP::Delete.new(uri)
|
167
|
+
# Set the headers the way we want them.
|
168
|
+
req['Accept-Encoding'] = '*'
|
169
|
+
req['Accept'] = 'application/json'
|
170
|
+
req['User-Agent'] = 'Ruby'
|
171
|
+
req.body = 'goodbye'
|
172
|
+
|
173
|
+
res = Net::HTTP.start(uri.hostname, uri.port) { |h|
|
174
|
+
h.request(req)
|
175
|
+
}
|
176
|
+
assert_equal('goodbye', res.body)
|
177
|
+
end
|
178
|
+
|
158
179
|
def test_wild_one
|
159
180
|
uri = URI('http://localhost:6470/wild/abc/one')
|
160
181
|
req = Net::HTTP::Get.new(uri)
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: agoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.15.
|
4
|
+
version: 2.15.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Ohler
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-09-24 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: oj
|
@@ -38,16 +37,16 @@ executables:
|
|
38
37
|
extensions:
|
39
38
|
- ext/agoo/extconf.rb
|
40
39
|
extra_rdoc_files:
|
41
|
-
- README.md
|
42
40
|
- CHANGELOG.md
|
43
41
|
- LICENSE
|
42
|
+
- README.md
|
44
43
|
- misc/flymd.md
|
44
|
+
- misc/glue-diagram.svg
|
45
45
|
- misc/glue.md
|
46
46
|
- misc/optimize.md
|
47
47
|
- misc/push.md
|
48
48
|
- misc/rails.md
|
49
49
|
- misc/song.md
|
50
|
-
- misc/glue-diagram.svg
|
51
50
|
files:
|
52
51
|
- CHANGELOG.md
|
53
52
|
- LICENSE
|
@@ -183,7 +182,6 @@ metadata:
|
|
183
182
|
documentation_uri: http://www.ohler.com/agoo/index.html
|
184
183
|
source_code_uri: https://github.com/ohler55/agoo
|
185
184
|
homepage: https://github.com/ohler55/agoo
|
186
|
-
post_install_message:
|
187
185
|
rdoc_options:
|
188
186
|
- "-t"
|
189
187
|
- Agoo
|
@@ -209,8 +207,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
207
|
version: '0'
|
210
208
|
requirements:
|
211
209
|
- Linux or macOS
|
212
|
-
rubygems_version: 3.
|
213
|
-
signing_key:
|
210
|
+
rubygems_version: 3.6.9
|
214
211
|
specification_version: 4
|
215
212
|
summary: An HTTP server
|
216
213
|
test_files:
|