forked from excon/excon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog.txt
684 lines (483 loc) · 16.1 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
0.30.0 11/25/2013
=================
ensure schema/host/port are passed to redirect follower with relative location
add .ruby-version and .ruby-gemset to .gitignore
pass nil to :response_block for unknown values
use :response_block if expects middleware is not used
refactor Response.parse, add tests
support header continuations
support chunked trailers
improve decompress middleware/tests
add accept-encoding in decompress middleware requests, if missing
fixes for connection close detection
support transfer encoding
fix deprecated URI.decode usage
do not try to use tcp_nodelay for unix sockets
nonblocking connect, connect timeouts for unix sockets
ignore IO#close exceptions
move conditional nonblock to only SSLSocket
skip reverse lookups
avoid mutating canned response from middleware
test against latest rubinius, no longer allow failures
add unicorn as rubinius dev dependency
use webbrick form decode
0.29.0 11/07/2013
=================
make nonblock invalid as request key
add backtrace to all warnings
do not allow idempotent + pipeline
close socket after pipeline if needed
fix Socket#read to match IO.read EOF behavior
use Socket#read for non-blocking readline
respect read_timeout for status read
read response until status line, discard chunked trailer
fix redirect follower to properly change host
0.28.0 10/28/2013
=================
tag warning messages with [excon]
allow specific ssl_versions
fixes around param validation
create a new connection for redirect_follower middleware
add connection_uri/request_uri to utils
avoid mutating connection data
remove connection key in redirect_follower
0.27.6 10/15/2013
=================
warn, but no longer mutate params during validation
0.27.5 10/14/2013
=================
extract validations/port_string to utils module
0.27.4 10/14/2013
=================
fix for https/port string values
0.27.3 10/11/2013
=================
better invalid key handling
avoid mutating port value
0.27.2 10/10/2013
=================
avoid mutating datum in idempotent middleware
0.27.1 10/09/2013
=================
improve warning messages for valid keys
0.27.0 10/04/2013
=================
display warnings based on ruby and/or debug settings
add missing valid connection keys
remove 1.8.7 related nonblock warning
add support for unix sockets
cleanup constants
improve test setup to minimize server spawning
separate connection/request key validation
0.26.0 09/24/2013
=================
add basic decompress middleware
update readme mocking+stubbing info
add unstub functionality
avoid modifying original options in request
jruby fixes
misc cleanup/fixes
encoding/compatibility fixes
close sockets on error
warn when both request_block and idempotent are set
0.25.3 07/18/2013
=================
respect SSL_CERT_DIR/SSL_CERT_FILE
more aggressively include bundled cert as fallback
0.25.2 07/18/2013
=================
add license to gemspec
add "excon/#{version}" default user agent
create/use response parser middleware
fix proxy request info to use datum rather than @data
0.25.1 07/01/2013
=================
fix for jruby ssl
more explicit description in docs
0.25.0 06/20/2013
=================
attempt to use OS certs first, only use bundled as fallback
normalize method in stubs
0.24.0 06/12/2013
=================
allow passing ssl creds as strings or file paths
0.23.0 06/10/2013
=================
defer writing request/headers to allow all-in-one
allow opt-in for request/response error info
add configurable TCP_NODELAY
consolidate warning display
respect ruby verbosity conventions
fix copyright years in notice
0.22.1 05/17/2013
=================
fix logic error in dropping default ports
0.22.0 05/17/2013
=================
remove request/response info from default error messages to avoid credential leaks
add option to omit default ports (http:80 and https:443)
add examples for form encoding
updates to facilitate streaming responses from middleware responses
0.21.0 05/04/2013
=================
update bundled cacert
add deprecated connection helper
URL decode user/pass for basic auth
fix odd name/permissions in benchmarks
check for socket before closing one
add support for no_proxy
include scheme in socket key
make socket.connect private
allow stub lookup with Excon.stub_for
0.20.1 03/19/2013
=================
dup middlewares to avoid overwriting original set
delete datum[:response] in idempotent to ensure new response is parsed
0.20.0 03/08/2013
=================
redact password from inspect/instrument
downgrade severity of invalid keys from error to warning
0.19.5 03/04/2013
=================
fix ssl socket proxy setup
0.19.4 03/04/2013
=================
fix merge order of params in new
0.19.3 03/01/2013
=================
properly raise errors when datum[:stack] has not yet been set
0.19.2 02/28/2013
=================
add client_cert, client_key to valid connection options
0.19.1 02/27/2013
=================
fix for ssl proxies to allow connect response to be read
0.19.0 02/27/2013
=================
fix requests (pipeline) example in README
make StubNotFound inherit from StandardError (not Excon::Errors::Error)
idempotent reimplemented as middleware
remaining idempotent/instrumentor functionality moved to middleware
move uri parsing to Excon.new
allow for configurable URI parser (ie Addressable vs URI)
move VALID_CONNECTION_KEYS to constants
move idempotent tests to middleware directory
fix output of expects middleware to pass response objects instead of hashes
0.18.5 02/22/2013
=================
add family to known keys
0.18.4 02/21/2013
=================
remove ssl proxy host_port usage
0.18.3 02/21/2013
=================
update response accessors to read from/write to @data
0.18.2 02/21/2013
=================
one shouldn't rush, fix typo in previous
0.18.1 02/21/2013
=================
fix for http errors when using mocks
0.18.0 02/21/2013
=================
more refactoring around middlewares
add pipelining capabilities
allow [] style access to response attributes
0.17.0 02/01/2013
=================
add patch method
allow passing family for addresses to params/proxy
more consistent empty header passing
nicer debug output
internal refactoring toward middleware pattern
0.16.10 11/16/2012
==================
set default request_params for stub
do not attempt to read body for CONNECT requests
0.16.9 11/16/2012
=================
readme cleanup/clarification around stubs
fix for reading response from ssl proxy
0.16.8 11/12/2012
=================
set file body pos to 0 at beginning of request
add eventmachine to dev dependencies for bad server tests
comment out benchmark deps for now
fix typo in readme
0.16.7 10/17/2012
=================
fix typo in host_port per-request patch
0.16.6 10/17/2012
=================
fix for host_port to recalculate on a per-request basis
0.16.5 10/17/2012
=================
Also retry Timeouts on idempotent requests
Excon.stub now breaks out user/pass from url if supplied
loosen ssl version requirement to allow negotiation
eof on read should return '' instead of nil
build host_port up front to avoid recalculating
set Proxy-Connection: Keep-Alive for https proxies
postpone https upgrade until after proxy connect
0.16.4 09/25/2012
=================
better behavior nonblock and use DEFAULT_NONBLOCK constant
update deprecation/warnings to use $stderr
consistency fixes for REDACT
add REDACT behavior to standard_instrumentor
0.16.3 09/20/2012
=================
remove overly paranoid const checking
change chunk_size to be a param for consistency
0.16.2 08/27/2012
=================
provide more helpful backtraces on connection requests
provide more helpful backtraces on one-off requests
rearrange class methods so params will pass to socket
integrate nonblock backwards compatability fix
rearrange excon.rb to initialize defaults sooner
set nonblock at init time for ssl socket
fixes around nonbleck to properly skip/warn if unavailable but selected
0.16.1 08/15/2012
=================
default to SSLv3 usage
0.16.0 08/14/2012
=================
add nonblock => false to use blocking requests with Timeout.timeout
update readme to describe nonblock and idempotent options
0.15.5 08/01/2012
=================
consolidate proxy handling
proxy settings should pull from connection instead of params (allows
Excon.defaults[:proxy])
properly raise connect timeout errors
change recommended standard instrumentor ENV to EXCON_DEBUG
remove readline nonblock protections (they didn't fix the windows issue)
don't swallow non-nonblock SSL exceptions
consistency fixes for ssl nonblock error handling
do SNI in ssl_socket setup
use Excon::Response#parse to read https proxy response
0.15.4 07/16/12
===============
rescue/retry nonblock errors from readline (even though they shouldn't occur)
0.15.3 07/16/12
===============
remove erroneous newline in proxy auth header
0.15.2 07/16/12
===============
fix capitalization of EXCON constant in auth stuff
properly handle nil user/password values in auth
various fixes to proxy and related tests
0.15.1 07/16/12
===============
fix for sending user/pass to proxy
0.15.0 07/16/12
===============
clarifications in README
added base error class to message for Excon::SocketError
fixes for proxy, sets properly on http and passes auth
0.14.3 07/05/12
===============
remove a redundant setter in response streamer
standardize on each (instead of for) to iterate enumerables
0.14.2 06/26/12
===============
fix invoke_stub to convert files into strings before comparing
0.14.1 06/19/12
===============
accept port as a separate option
ensure first read from socket is nonblock (fixes read_timeouts)
respect upper case env vars
0.14.0 05/31/12
===============
make stubs LIFO for ease of use/understanding, updated README to explain
simplify https proxy logic
add instrumentation for responses
add StandardInstrumentor (events got to stderr)
EXCON_STANDARD_INSTRUMENTOR=true sets StandardInstrumentor as default
0.13.3 04/05/12
===============
* fix for file size calculation in 1.8.7
0.13.3 04/05/12
===============
* fixes for file like objects which do not respond to binmode
0.13.2 03/26/12
===============
* fix to avoid issues when Tempfile is not required/defined. Thanks nextmat
0.13.1 03/26/12
===============
* fix to allow for passing Tempfile objects as body. Thanks rkyrychuk
0.13.0 03/22/12
===============
* workaround for jruby (use blocking read/write for ssl sockets)
0.12.0 03/18/12
===============
* use params to set ssl (so each connection could differ)
* bundle a default cert
0.11.0 03/15/12
===============
* add request_block to support chunked requests
* deprecate implicit block in favor of explicit response_block
* loosen activesupport and jruby-openssl development dependencies
0.10.1 03/13/12
===============
* avoid calling empty? on file body
0.10.0 03/01/12
===============
* avoid setting/passing Content-Length headers for GET requests with no body
* remove rcov from tasks/bundle in development
* automatically parse and use basic auth when passed as part of a uri
* fix for erroneous recursion in Excon.defaults=
0.9.6 02/22/12
==============
* add support for setting ca_file. Thanks mattmatt!
* add docs for Excon.stubs.clear and expects. Thanks masterkain!
* add class level defaults
* fix ruby warnings. Thanks foca!
* improve instrumentation docs. Thanks mkb!
* fix for empty body and SSL sockets. Thanks pweldon!
0.9.5 01/16/12
==============
* fix getaddrinfo usage for rbx
* fix mock handling when a block in passed
* add jruby to ci
0.9.4 12/21/11
==============
* fix for regexp/capture setting
0.9.3 12/21/11
==============
* fix CONSTANTS referenced in SSL_Socket
* fix default value for proxy in SSL_Socket
* fix non-regexp header matching
* return captures from regexp based params
0.9.2 12/16/11
==============
* update mocks to allow for regex based matching
* fixes for write_nonblock+OpenSSL weirdness
0.9.1 12/15/11
==============
* update mock usage to be at the connection/request level
0.9.0 12/14/11
==============
* add ability to do instrumentation
* misc cleanup
* deprecate retry_limit accessor in favor of passing as a param
0.8.0 12/12/11
==============
* move mock handler to its own method
* better handling around openssl errors
* simplify writing by removing buffer
0.7.12 12/04/11
===============
* revert: explicitly close files after writing
0.7.11 12/24/11
==============
* rebuild gem broken gemspec with 1.8.x
0.7.10 12/04/11
===============
* explicitly close files after writing
0.7.9 11/30/11
==============
* add ability to modify retry limit
* use addrinfo to avoid localhost and other IPv6 issues
* update gemspec authors to add Dan Peterson and Matt Sanders
0.7.8 11/24/11
==============
* rebuild gem broken gemspec with 1.8.x
0.7.7 11/24/11
==============
* setup for travis ci automated testing
* fix EOFError
* use Socket.getaddrinfo to fix IPv6 issues
0.7.6 10/04/11
==============
* fixes to provide for using openssl-nonblock for 1.8.x
* correctly pass per-request settings to socket
* fix for nonblocking stuff when waiting for socket close
* use 127.0.0.1 instead of localhost in tests (fixes some errors)
0.7.5 10/03/11
==============
* convert port to integer in sockaddr_in (jruby won't convert for you)
0.7.4 09/30/11
==============
* rescue write would block from openssl
0.7.3 09/27/11
==============
* fix nonblocking read to avoid reading past chunk in chunked encoded
* rescue read would block from openssl
0.7.2 09/24/11
==============
* fix buffer drain for socket#write. thanks dpiddy
* rescue/retry timeout errors for idempotent requests. thanks dpiddy
* timeouts should raise an excon specific error
0.7.1 09/13/11
==============
* use nonblocking only when available (skip for 1.8.x SSL)
0.7.0 09/12/11
==============
* change connects and most read/writes to use nonblocking methods
* provide connect/read/write timeouts
0.6.6 09/06/11
==============
* cleanup/refactoring. thanks nextmat
* default to connection close as request delimiter
0.6.5 07/13/11
==============
* properly stream responses with proc
* fix mock with block to match real requests
0.6.4 07/05/11
==============
* add block support to mocks. thanks dmeiz
* fixes for stub matching. thanks dmeiz
* don't do post_connection_check if verify mode is off
* check excon state for verify mode instead of checking OpenSSL constants
* use RbConfig to find OS. thanks trym
* fixes for idempotent/retry. thanks lstoll
0.6.3 05/02/11
==============
* fixes for header parsing to allow whitespace after :. thanks myronmarston
* get_header optimization. thanks nextmat
* rewind body on retry. thanks pweldon
0.6.2 04/11/11
==============
* fix block arguments for connection close. thanks ggoodale
0.6.1 04/05/11
==============
* add support for HTTPS proxies. thanks mrowe
* add support for http_proxy and https_proxy ENV variables. thanks mrowe
* fix progress for requests with blocks that are chunked or connection close
0.6.0 03/30/11
==============
* basic support for using proxies. thanks mattsa
* yield remaining/total bytes to streaming block. thanks nate
* minor optimizations/cleanup
0.5.8 03/24/11
==============
* fix regression where nil values in queries were ignored in 1.9. thanks mattsa
* fix regression causing EOFError when making many connections in one thread
* added tests to prevent both of the former from recurring
0.5.7 03/21/11
==============
* lazily connect, rather than connecting at #initialize
* add rough first pass at stubbing
* minor optimizations
* ssl client certification support. thanks thommay
* skip figuring out/setting Content-Length if one is supplied. Thanks pweldon
* do not try to parse body for 205 and 304. Thanks seancribbs
0.5.6 02/19/11
==============
* only split headers by first ':' to allow for values with ':'. Thanks mtodd!
* check a string instance for force_encoding, not class. Thanks seancribbs!
* add benchmarks related to for vs each for enumerable. Thanks caius!
* fix default rake task to run tests
0.5.5 02/18/11
==============
* use local variables in response parsing, prevents keeping state across requests
0.5.4 02/18/11
==============
* 204 should not attempt to parse body
0.5.3 02/17/11
==============
* header comparison for responses is now case insensitive
* change to allow :idempotent => false to operate correctly
* misc cleanup