agoo 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of agoo might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/ext/agoo/con.c +10 -10
- data/ext/agoo/error_stream.c +2 -2
- data/ext/agoo/extconf.rb +1 -0
- data/ext/agoo/http.c +1 -1
- data/ext/agoo/log.c +2 -2
- data/ext/agoo/page.c +2 -2
- data/ext/agoo/queue.c +1 -1
- data/ext/agoo/request.c +2 -2
- data/ext/agoo/response.c +4 -4
- data/ext/agoo/server.c +20 -9
- data/ext/agoo/server.h +1 -0
- data/ext/agoo/text.c +1 -1
- data/lib/agoo/version.rb +1 -1
- data/test/log_test.rb +11 -0
- data/test/rack_handler_test.rb +6 -5
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4972cbbcab2bb5e6efd12fdbe709e6e3b5e3c21edba29bd9abf66e6aecb5dcf5
|
4
|
+
data.tar.gz: 6a5d2c4c783a19c4452ea65b5509a8c9acce86bb15dcdacef805615084c07c6a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dded79dd9e1850504e766708f3c646ecc2930991a5cfbf3c470533a1881e606404aaf75abf0ae1f81ec161d4caac3b85268f0504c11b748bb024b57194034b67
|
7
|
+
data.tar.gz: ec6ec4aa3199cfb1aedea0203f2ec33602884c134b7144f2febcf2b7009cd069c54439b9ae90485a68e12ec3f18fcf37d36b2e96928744aa6937fe8e28e0f61a
|
data/ext/agoo/con.c
CHANGED
@@ -52,7 +52,7 @@ con_header_value(const char *header, int hlen, const char *key, int *vlen) {
|
|
52
52
|
const char *h = header;
|
53
53
|
const char *hend = header + hlen;
|
54
54
|
const char *value;
|
55
|
-
int klen = strlen(key);
|
55
|
+
int klen = (int)strlen(key);
|
56
56
|
|
57
57
|
while (h < hend) {
|
58
58
|
if (0 == strncmp(key, h, klen) && ':' == h[klen]) {
|
@@ -62,7 +62,7 @@ con_header_value(const char *header, int hlen, const char *key, int *vlen) {
|
|
62
62
|
value = h;
|
63
63
|
for (; '\r' != *h && '\0' != *h; h++) {
|
64
64
|
}
|
65
|
-
*vlen = h - value;
|
65
|
+
*vlen = (int)(h - value);
|
66
66
|
|
67
67
|
return value;
|
68
68
|
}
|
@@ -161,7 +161,7 @@ con_header_read(Con c) {
|
|
161
161
|
} else {
|
162
162
|
return bad_request(c, 400, __LINE__);
|
163
163
|
}
|
164
|
-
if (NULL == (v = con_header_value(c->buf, hend - c->buf, "Content-Length", &vlen))) {
|
164
|
+
if (NULL == (v = con_header_value(c->buf, (int)(hend - c->buf), "Content-Length", &vlen))) {
|
165
165
|
return bad_request(c, 411, __LINE__);
|
166
166
|
}
|
167
167
|
clen = (size_t)strtoul(v, &vend, 10);
|
@@ -225,7 +225,7 @@ con_header_read(Con c) {
|
|
225
225
|
if (NULL == (hook = hook_find(server->hooks, method, path, pend))) {
|
226
226
|
if (GET == method) {
|
227
227
|
struct _Err err = ERR_INIT;
|
228
|
-
Page p = page_get(&err, &server->pages, server->root, path, pend - path);
|
228
|
+
Page p = page_get(&err, &server->pages, server->root, path, (int)(pend - path));
|
229
229
|
Res res;
|
230
230
|
|
231
231
|
if (NULL == p) {
|
@@ -242,7 +242,7 @@ con_header_read(Con c) {
|
|
242
242
|
c->res_tail = res;
|
243
243
|
|
244
244
|
b = strstr(c->buf, "\r\n");
|
245
|
-
res->close = should_close(b, hend - b);
|
245
|
+
res->close = should_close(b, (int)(hend - b));
|
246
246
|
|
247
247
|
text_ref(p->resp);
|
248
248
|
res_set_message(res, p->resp);
|
@@ -262,15 +262,15 @@ con_header_read(Con c) {
|
|
262
262
|
c->req->server = server;
|
263
263
|
c->req->method = method;
|
264
264
|
c->req->path.start = c->req->msg + (path - c->buf);
|
265
|
-
c->req->path.len = pend - path;
|
265
|
+
c->req->path.len = (int)(pend - path);
|
266
266
|
c->req->query.start = c->req->msg + (query - c->buf);
|
267
|
-
c->req->query.len = qend - query;
|
267
|
+
c->req->query.len = (int)(qend - query);
|
268
268
|
c->req->mlen = mlen;
|
269
269
|
c->req->body.start = c->req->msg + (hend - c->buf + 4);
|
270
|
-
c->req->body.len = clen;
|
270
|
+
c->req->body.len = (unsigned int)clen;
|
271
271
|
b = strstr(b, "\r\n");
|
272
272
|
c->req->header.start = c->req->msg + (b + 2 - c->buf);
|
273
|
-
c->req->header.len = hend - b - 2;
|
273
|
+
c->req->header.len = (unsigned int)(hend - b - 2);
|
274
274
|
c->req->res = NULL;
|
275
275
|
if (NULL != hook) {
|
276
276
|
c->req->handler = hook->handler;
|
@@ -441,7 +441,7 @@ con_loop(void *x) {
|
|
441
441
|
i--;
|
442
442
|
pp++;
|
443
443
|
}
|
444
|
-
if (0 > (i = poll(pa, pp - pa, 100))) {
|
444
|
+
if (0 > (i = poll(pa, (nfds_t)(pp - pa), 100))) {
|
445
445
|
if (EAGAIN == errno) {
|
446
446
|
continue;
|
447
447
|
}
|
data/ext/agoo/error_stream.c
CHANGED
@@ -39,7 +39,7 @@ static VALUE
|
|
39
39
|
es_puts(VALUE self, VALUE str) {
|
40
40
|
ErrorStream es = (ErrorStream)DATA_PTR(self);
|
41
41
|
|
42
|
-
es->text = text_append(es->text, StringValuePtr(str), RSTRING_LEN(str));
|
42
|
+
es->text = text_append(es->text, StringValuePtr(str), (int)RSTRING_LEN(str));
|
43
43
|
es->text = text_append(es->text, "\n", 1);
|
44
44
|
|
45
45
|
return Qnil;
|
@@ -54,7 +54,7 @@ es_puts(VALUE self, VALUE str) {
|
|
54
54
|
static VALUE
|
55
55
|
es_write(VALUE self, VALUE str) {
|
56
56
|
ErrorStream es = (ErrorStream)DATA_PTR(self);
|
57
|
-
int cnt = RSTRING_LEN(str);
|
57
|
+
int cnt = (int)RSTRING_LEN(str);
|
58
58
|
|
59
59
|
es->text = text_append(es->text, StringValuePtr(str), cnt);
|
60
60
|
|
data/ext/agoo/extconf.rb
CHANGED
@@ -5,6 +5,7 @@ extension_name = 'agoo'
|
|
5
5
|
dir_config(extension_name)
|
6
6
|
|
7
7
|
$CPPFLAGS += " -DPLATFORM_LINUX" if 'x86_64-linux' == RUBY_PLATFORM
|
8
|
+
RbConfig::MAKEFILE_CONFIG['CC'] = "gcc-6" if 'x86_64-linux' == RUBY_PLATFORM
|
8
9
|
|
9
10
|
create_makefile(File.join(extension_name, extension_name))
|
10
11
|
|
data/ext/agoo/http.c
CHANGED
data/ext/agoo/log.c
CHANGED
@@ -121,7 +121,7 @@ classic_write(Log log, LogEntry e, FILE *file) {
|
|
121
121
|
t += log->zone;
|
122
122
|
if (log->day_start <= t && t < log->day_end) {
|
123
123
|
t -= log->day_start;
|
124
|
-
hour = t / 3600;
|
124
|
+
hour = (int)(t / 3600);
|
125
125
|
min = t % 3600 / 60;
|
126
126
|
sec = t % 60;
|
127
127
|
} else {
|
@@ -346,7 +346,7 @@ log_init(Err err, Log log, VALUE cfg) {
|
|
346
346
|
log->console = true;
|
347
347
|
log->classic = true;
|
348
348
|
log->colorize = true;
|
349
|
-
log->zone = (
|
349
|
+
log->zone = (int)(timegm(tm) - t);
|
350
350
|
log->day_start = 0;
|
351
351
|
log->day_end = 0;
|
352
352
|
*log->day_buf = '\0';
|
data/ext/agoo/page.c
CHANGED
@@ -184,7 +184,7 @@ page_destroy(Page p) {
|
|
184
184
|
static bool
|
185
185
|
update_contents(Page p) {
|
186
186
|
const char *mime = NULL;
|
187
|
-
int plen = strlen(p->path);
|
187
|
+
int plen = (int)strlen(p->path);
|
188
188
|
const char *suffix = p->path + plen - 1;
|
189
189
|
FILE *f;
|
190
190
|
long size;
|
@@ -284,7 +284,7 @@ update_contents(Page p) {
|
|
284
284
|
text_release(p->resp);
|
285
285
|
p->resp = NULL;
|
286
286
|
}
|
287
|
-
p->resp = text_create(msg, msize);
|
287
|
+
p->resp = text_create(msg, (int)msize);
|
288
288
|
text_ref(p->resp);
|
289
289
|
p->last_check = dtime();
|
290
290
|
|
data/ext/agoo/queue.c
CHANGED
data/ext/agoo/request.c
CHANGED
@@ -354,7 +354,7 @@ fill_headers(Req r, VALUE hash) {
|
|
354
354
|
char *h = r->header.start;
|
355
355
|
char *end = h + r->header.len;
|
356
356
|
char *key = h;
|
357
|
-
char *kend;
|
357
|
+
char *kend = key;
|
358
358
|
char *val = NULL;
|
359
359
|
char *vend;
|
360
360
|
|
@@ -382,7 +382,7 @@ fill_headers(Req r, VALUE hash) {
|
|
382
382
|
if ('\n' == *(h + 1)) {
|
383
383
|
h++;
|
384
384
|
}
|
385
|
-
add_header_value(hash, key, kend - key, val, vend - val);
|
385
|
+
add_header_value(hash, key, (int)(kend - key), val, (int)(vend - val));
|
386
386
|
key = h + 1;
|
387
387
|
kend = NULL;
|
388
388
|
val = NULL;
|
data/ext/agoo/response.c
CHANGED
@@ -125,7 +125,7 @@ body_set(VALUE self, VALUE val) {
|
|
125
125
|
|
126
126
|
if (T_STRING == rb_type(val)) {
|
127
127
|
res->body = strdup(StringValuePtr(val));
|
128
|
-
res->blen = RSTRING_LEN(val);
|
128
|
+
res->blen = (int)RSTRING_LEN(val);
|
129
129
|
} else {
|
130
130
|
// TBD use Oj
|
131
131
|
}
|
@@ -172,7 +172,7 @@ head_get(VALUE self, VALUE key) {
|
|
172
172
|
Response res = (Response)DATA_PTR(self);
|
173
173
|
Header h;
|
174
174
|
const char *ks = StringValuePtr(key);
|
175
|
-
int klen = RSTRING_LEN(key);
|
175
|
+
int klen = (int)RSTRING_LEN(key);
|
176
176
|
|
177
177
|
for (h = res->headers; NULL != h; h = h->next) {
|
178
178
|
if (0 == strncasecmp(h->text, ks, klen) && klen + 1 < h->len && ':' == h->text[klen]) {
|
@@ -195,7 +195,7 @@ head_set(VALUE self, VALUE key, VALUE val) {
|
|
195
195
|
Header prev = NULL;
|
196
196
|
const char *ks = StringValuePtr(key);
|
197
197
|
const char *vs;
|
198
|
-
int klen = RSTRING_LEN(key);
|
198
|
+
int klen = (int)RSTRING_LEN(key);
|
199
199
|
int vlen;
|
200
200
|
int hlen;
|
201
201
|
|
@@ -215,7 +215,7 @@ head_set(VALUE self, VALUE key, VALUE val) {
|
|
215
215
|
val = rb_funcall(val, rb_intern("to_s"), 0);
|
216
216
|
}
|
217
217
|
vs = StringValuePtr(val);
|
218
|
-
vlen = RSTRING_LEN(val);
|
218
|
+
vlen = (int)RSTRING_LEN(val);
|
219
219
|
|
220
220
|
if (res->server->pedantic) {
|
221
221
|
http_header_ok(ks, klen, vs, vlen);
|
data/ext/agoo/server.c
CHANGED
@@ -249,6 +249,7 @@ listen_loop(void *x) {
|
|
249
249
|
return NULL;
|
250
250
|
}
|
251
251
|
listen(pa->fd, 1000);
|
252
|
+
server->ready = true;
|
252
253
|
pa->events = POLLIN;
|
253
254
|
pa->revents = 0;
|
254
255
|
|
@@ -317,7 +318,7 @@ rescue_error(VALUE x) {
|
|
317
318
|
if ((int)(sizeof(buf) - sizeof(bad500) + 7) <= len) {
|
318
319
|
len = sizeof(buf) - sizeof(bad500) + 7;
|
319
320
|
}
|
320
|
-
cnt = snprintf(buf, sizeof(buf), "
|
321
|
+
cnt = snprintf(buf, sizeof(buf), "%s%d\r\n\r\n%s: %s", bad500, len, classname, ms);
|
321
322
|
message = text_create(buf, cnt);
|
322
323
|
|
323
324
|
req->res->close = true;
|
@@ -421,7 +422,7 @@ handle_rack_inner(void *x) {
|
|
421
422
|
}
|
422
423
|
if (T_ARRAY != rb_type(bv)) {
|
423
424
|
int i;
|
424
|
-
int bcnt = RARRAY_LEN(bv);
|
425
|
+
int bcnt = (int)RARRAY_LEN(bv);
|
425
426
|
|
426
427
|
for (i = 0; i < bcnt; i++) {
|
427
428
|
bsize += (int)RSTRING_LEN(rb_ary_entry(bv, i));
|
@@ -437,10 +438,11 @@ handle_rack_inner(void *x) {
|
|
437
438
|
case 205:
|
438
439
|
case 304:
|
439
440
|
// TBD Content-Type and Content-Length can not be present
|
440
|
-
t->len =
|
441
|
+
t->len = snprintf(t->text, 1024, "HTTP/1.1 %d %s\r\n", code, status_msg);
|
441
442
|
break;
|
442
443
|
default:
|
443
|
-
|
444
|
+
// Note that using simply sprintf causes an abort with travis OSX tests.
|
445
|
+
t->len = snprintf(t->text, 1024, "HTTP/1.1 %d %s\r\nContent-Length: %d\r\n", code, status_msg, bsize);
|
444
446
|
break;
|
445
447
|
}
|
446
448
|
if (T_HASH == rb_type(hv)) {
|
@@ -453,7 +455,7 @@ handle_rack_inner(void *x) {
|
|
453
455
|
if (T_ARRAY == rb_type(bv)) {
|
454
456
|
VALUE v;
|
455
457
|
int i;
|
456
|
-
int bcnt = RARRAY_LEN(bv);
|
458
|
+
int bcnt = (int)RARRAY_LEN(bv);
|
457
459
|
|
458
460
|
for (i = 0; i < bcnt; i++) {
|
459
461
|
v = rb_ary_entry(bv, i);
|
@@ -561,11 +563,24 @@ start(VALUE self) {
|
|
561
563
|
Server server = (Server)DATA_PTR(self);
|
562
564
|
VALUE *vp;
|
563
565
|
int i;
|
566
|
+
double giveup;
|
564
567
|
|
565
568
|
server->active = true;
|
569
|
+
server->ready = false;
|
566
570
|
|
567
571
|
pthread_create(&server->listen_thread, NULL, listen_loop, server);
|
568
572
|
pthread_create(&server->con_thread, NULL, con_loop, server);
|
573
|
+
|
574
|
+
giveup = dtime() + 1.0;
|
575
|
+
while (dtime() < giveup) {
|
576
|
+
if (server->ready) {
|
577
|
+
break;
|
578
|
+
}
|
579
|
+
dsleep(0.001);
|
580
|
+
}
|
581
|
+
signal(SIGINT, sig_handler);
|
582
|
+
signal(SIGTERM, sig_handler);
|
583
|
+
signal(SIGPIPE, SIG_IGN);
|
569
584
|
|
570
585
|
if (0 >= server->thread_cnt) {
|
571
586
|
Req req;
|
@@ -884,8 +899,4 @@ server_init(VALUE mod) {
|
|
884
899
|
put_sym = ID2SYM(rb_intern("PUT")); rb_gc_register_address(&put_sym);
|
885
900
|
|
886
901
|
http_init();
|
887
|
-
|
888
|
-
signal(SIGINT, sig_handler);
|
889
|
-
signal(SIGTERM, sig_handler);
|
890
|
-
signal(SIGPIPE, SIG_IGN);
|
891
902
|
}
|
data/ext/agoo/server.h
CHANGED
data/ext/agoo/text.c
CHANGED
data/lib/agoo/version.rb
CHANGED
data/test/log_test.rb
CHANGED
@@ -116,6 +116,7 @@ class LogClassicTest < Minitest::Test
|
|
116
116
|
def error_test(server)
|
117
117
|
server.error('my message')
|
118
118
|
server.log_flush(1.0)
|
119
|
+
sleep(0.01) # seems to be needed to assure writes actually happened even though flush was called.
|
119
120
|
content = IO.read('log/agoo.log')
|
120
121
|
assert_match(/ERROR: my message/, content)
|
121
122
|
end
|
@@ -123,6 +124,7 @@ class LogClassicTest < Minitest::Test
|
|
123
124
|
def warn_test(server)
|
124
125
|
server.warn('my message')
|
125
126
|
server.log_flush(1.0)
|
127
|
+
sleep(0.01)
|
126
128
|
content = IO.read('log/agoo.log')
|
127
129
|
assert_match(/WARN: my message/, content)
|
128
130
|
end
|
@@ -130,6 +132,7 @@ class LogClassicTest < Minitest::Test
|
|
130
132
|
def info_test(server)
|
131
133
|
server.info('my message')
|
132
134
|
server.log_flush(1.0)
|
135
|
+
sleep(0.01)
|
133
136
|
content = IO.read('log/agoo.log')
|
134
137
|
assert_match(/INFO: my message/, content)
|
135
138
|
end
|
@@ -137,6 +140,7 @@ class LogClassicTest < Minitest::Test
|
|
137
140
|
def debug_test(server)
|
138
141
|
server.debug('my message')
|
139
142
|
server.log_flush(1.0)
|
143
|
+
sleep(0.01)
|
140
144
|
content = IO.read('log/agoo.log')
|
141
145
|
assert_match(/DEBUG: my message/, content)
|
142
146
|
end
|
@@ -144,6 +148,7 @@ class LogClassicTest < Minitest::Test
|
|
144
148
|
def log_eval_test(server)
|
145
149
|
server.log_eval('my message')
|
146
150
|
server.log_flush(1.0)
|
151
|
+
sleep(0.01)
|
147
152
|
content = IO.read('log/agoo.log')
|
148
153
|
assert_match(/eval: my message/, content)
|
149
154
|
end
|
@@ -180,6 +185,7 @@ class LogJsonTest < Minitest::Test
|
|
180
185
|
def error_test(server)
|
181
186
|
server.error('my message')
|
182
187
|
server.log_flush(1.0)
|
188
|
+
sleep(0.01)
|
183
189
|
content = IO.read('log/agoo.log.1')
|
184
190
|
assert_match(/"where":"ERROR"/, content)
|
185
191
|
assert_match(/"level":1/, content)
|
@@ -189,6 +195,7 @@ class LogJsonTest < Minitest::Test
|
|
189
195
|
def warn_test(server)
|
190
196
|
server.warn('my message')
|
191
197
|
server.log_flush(1.0)
|
198
|
+
sleep(0.01)
|
192
199
|
content = IO.read('log/agoo.log.1')
|
193
200
|
assert_match(/"where":"WARN"/, content)
|
194
201
|
assert_match(/"level":2/, content)
|
@@ -198,6 +205,7 @@ class LogJsonTest < Minitest::Test
|
|
198
205
|
def info_test(server)
|
199
206
|
server.info('my message')
|
200
207
|
server.log_flush(1.0)
|
208
|
+
sleep(0.01)
|
201
209
|
content = IO.read('log/agoo.log.1')
|
202
210
|
assert_match(/"where":"INFO"/, content)
|
203
211
|
assert_match(/"level":3/, content)
|
@@ -207,6 +215,7 @@ class LogJsonTest < Minitest::Test
|
|
207
215
|
def debug_test(server)
|
208
216
|
server.debug('my message')
|
209
217
|
server.log_flush(1.0)
|
218
|
+
sleep(0.01)
|
210
219
|
content = IO.read('log/agoo.log.1')
|
211
220
|
assert_match(/"where":"DEBUG"/, content)
|
212
221
|
assert_match(/"level":4/, content)
|
@@ -216,6 +225,7 @@ class LogJsonTest < Minitest::Test
|
|
216
225
|
def eval_test(server)
|
217
226
|
server.log_eval('my message')
|
218
227
|
server.log_flush(1.0)
|
228
|
+
sleep(0.01)
|
219
229
|
content = IO.read('log/agoo.log.1')
|
220
230
|
assert_match(/"where":"eval"/, content)
|
221
231
|
assert_match(/"level":3/, content)
|
@@ -245,6 +255,7 @@ class LogRollTest < Minitest::Test
|
|
245
255
|
@server.info("my #{i} message")
|
246
256
|
}
|
247
257
|
@server.log_flush(1.0)
|
258
|
+
sleep(0.01)
|
248
259
|
content = IO.read('log/agoo.log')
|
249
260
|
assert_match(/INFO: my 9 message/, content)
|
250
261
|
|
data/test/rack_handler_test.rb
CHANGED
@@ -42,7 +42,7 @@ class RackHandlerTest < Minitest::Test
|
|
42
42
|
|
43
43
|
def test_rack
|
44
44
|
begin
|
45
|
-
server = Agoo::Server.new(
|
45
|
+
server = Agoo::Server.new(6467, 'root',
|
46
46
|
pedantic: false,
|
47
47
|
log_dir: '',
|
48
48
|
thread_count: 1,
|
@@ -63,6 +63,7 @@ class RackHandlerTest < Minitest::Test
|
|
63
63
|
server.handle(:GET, "/tellme", handler)
|
64
64
|
server.handle(:POST, "/makeme", handler)
|
65
65
|
server.handle(:PUT, "/makeme", handler)
|
66
|
+
|
66
67
|
server.start()
|
67
68
|
|
68
69
|
eval_test
|
@@ -74,7 +75,7 @@ class RackHandlerTest < Minitest::Test
|
|
74
75
|
end
|
75
76
|
|
76
77
|
def eval_test
|
77
|
-
uri = URI('http://localhost:
|
78
|
+
uri = URI('http://localhost:6467/tellme?a=1')
|
78
79
|
req = Net::HTTP::Get.new(uri)
|
79
80
|
# Set the headers the way we want them.
|
80
81
|
req['Accept-Encoding'] = '*'
|
@@ -96,7 +97,7 @@ class RackHandlerTest < Minitest::Test
|
|
96
97
|
"REQUEST_METHOD" => "GET",
|
97
98
|
"SCRIPT_NAME" => "/tellme",
|
98
99
|
"SERVER_NAME" => "localhost",
|
99
|
-
"SERVER_PORT" => "
|
100
|
+
"SERVER_PORT" => "6467",
|
100
101
|
"rack.errors" => nil,
|
101
102
|
"rack.input" => nil,
|
102
103
|
"rack.multiprocess" => false,
|
@@ -115,7 +116,7 @@ class RackHandlerTest < Minitest::Test
|
|
115
116
|
end
|
116
117
|
|
117
118
|
def post_test
|
118
|
-
uri = URI('http://localhost:
|
119
|
+
uri = URI('http://localhost:6467/makeme')
|
119
120
|
req = Net::HTTP::Post.new(uri)
|
120
121
|
# Set the headers the way we want them.
|
121
122
|
req['Accept-Encoding'] = '*'
|
@@ -129,7 +130,7 @@ class RackHandlerTest < Minitest::Test
|
|
129
130
|
end
|
130
131
|
|
131
132
|
def put_test
|
132
|
-
uri = URI('http://localhost:
|
133
|
+
uri = URI('http://localhost:6467/makeme')
|
133
134
|
req = Net::HTTP::Put.new(uri)
|
134
135
|
# Set the headers the way we want them.
|
135
136
|
req['Accept-Encoding'] = '*'
|