-
-
Notifications
You must be signed in to change notification settings - Fork 284
/
Copy pathchangelog.txt
1522 lines (1077 loc) · 33.7 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
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1.2.2 2025-01-03
==================
- fix misc cops
- fix performance cops
- update bundled certs
1.2.2 2024-11-17
==================
- update bundled certs
1.2.1 2024-11-14
==================
- fix for socket error edge case
1.2.0 2024-11-07
==================
- convert query to query string for stubs and stub matching for consistency
- fix default port handling for proxy connect requests
1.1.1 2024-10-30
==================
- just split query params for stubs and stub matching, avoid escape/unescape
1.1.0 2024-10-29
==================
- handle empty content-encoding header in decompress middleware
- use casecmp? instead of casecmp().zero? for ease of reading/usage
- allow connections to be instantiated without parameters
1.0.0 2024-10-24
==================
- drop default ports by default
- deprecate omit_default_port and add include_default_port option
- remove most client errors from defaults to retry with idempotent
- add decompress middleware to default middlewares
0.112.0 2024-10-01
==================
- update bundled certs
0.111.0 2024-07-08
==================
- lint fixes
- fixes related to rackup for testing
- update bundled certs
0.110.0 2024-03-12
==================
- update bundled default certificates
0.109.0 2024-01-03
==================
- fix to properly utilize `Resolv::DefaultResolver.replace_resolvers` values
0.108.0 2023-12-15
==================
- fix array syntax error for old ruby versions
0.107.0 2023-12-15
==================
- performance improvements for nonblocking sockets
0.106.0 2023-12-13
==================
- add rackup to Gemfile
- bump actions/stale version
- update bundled default certs
0.105.0 2023-11-28
==================
- add support for non-blocking request timeouts
0.104.0 2023-09-29
==================
- fix dates in changelog
- add resolv_resolver option and deprecate dns_timeout
0.103.0 2023-09-13
==================
- fix cert related warnings
- update checkout github action
- add option to specify dns_timeout
- update bundled default certs
0.102.0 2023-08-23
==================
- revert bundled cert update for now, as it is breaking tests
0.101.0 2023-08-23
==================
- remove old Ruby 1.9 related conditionals and code
- add jruby to test matrix
- update bundled certs
0.100.0 2023-06-06
==================
- bump stale action
- respect non-titlecase host headers
- update bundled certs
0.99.0 2023-02-03
=================
- add automatic fork safety by resetting sockets on PID change
- add support for unstub with regex params
0.98.0 2023-01-27
=================
- add support for extra ssl client certificates
0.97.2 2023-01-20
=================
- add omit_default_port to response
0.97.1 2023-01-11
=================
- update bundled certs
0.97.0 2023-01-09
=================
- fix for URI gem changes when host empty for unix urls
- adjust testing ruby versions: drop 2.6, add 3.2
0.96.0 2023-01-04
=================
add scheme to response
add query to response
add method/http_method to response
bump actions/stale
allow empty or null host for unix, due to URI gem changes
0.95.0 2022-12-12
=================
tweak readline code style
change read_nonblock to again limit to max_length
update bundled (test) certs
remove rdoc dependency to fix CI
0.94.0 2022-11-08
=================
reduce allocations/syscalls for readline
refactor streaming tests and add for https
fix guards around selects in nonblocking read
remove an extraneous guard in blocking read
0.93.1 2022-09-22
=================
update bundled certs
0.93.0 2022-09-22
=================
update actions/stale
also use ssl_verify_peer_host value for SNI when specified
0.92.5 2022-09-22
=================
update error retry examples in README
update bundled certs
0.92.4 2022-07-20
=================
fix README formatting
clarify stub examples in README
update bundled certs
0.92.3 2022-04-27
=================
update permissions for Github actions
update bundled certs
0.92.2 2022-03-31
=================
update bundled certs
0.92.1 2022-03-20
=================
update bundled certs
0.92.0 2022-03-13
=================
bump actions/checkout
fix readline to respect nonblock: false setting
0.91.0 2022-01-12
=================
update bundled certs
0.90.0 2022-01-12
=================
fix activesupport requires in tests
always set_default_paths for SSL to avoid edge case problems
0.89.0 2021-12-07
=================
don't reference lib directly in gemspec
ensure tests always run current ruby interpreter
update cert lifetimes for LTS distros
update actions/checkout (dependabot)
deflate should presume headers (as per spec), then retry raw
0.88.0 2021-10-27
=================
update bundled certs
0.87.0 2021-10-08
=================
avoid sensitive data in header value errors by only including header keys
0.86.0 2021-10-01
=================
prevent test suite stall on test server failure
fix logging behavior for query hashes
improve debbuging by reading server response during EPIPE errors
update bundled certs
0.85.0 2021-07-16
=================
fix socket datum regression introduced in #742
0.84.0 2021-07-07
=================
update bundled certs
0.83.0 2021-06-28
=================
add ssl_security_level option with pass through to ssl_context
0.82.0 2021-05-27
=================
update actions/checkout
update actions/stale
update bundled certs
0.81.0 2021-04-28
=================
add helper for converting headers to strings
add ssl_proxy_headers datum key and usage
pass datum to socket
tweak logging middleware to allow Syslog::logger usage
remove ruby 3 from allowed failures
0.80.1 2021-04-15
=================
adjust error checking from 0.80.0 to support Ruby <2.3
0.80.0 2021-04-15
=================
fix test usage of hashes for compatibility with Rack 2.2+
numerous github actions and dependencies setup and tweaks
use Ruby Resolv for hostname lookup
fix case where Socket raised nil conversion TypeError instead of EOFError
fix error where proxy key exists but data is nil
update bundled certificates
0.79.0 2021-02-01
=================
update bundled certificates
fix warnings in lib
fix aliases in headers
updated test dependencies
0.78.1 2020-12-04
=================
refine regex used for header parsing, thanks @dee-see for your help!
0.78.0 2020-10-16
=================
Fix bash-specific gemspec expansion which caused files to be missing in zsh
0.77.0 2020-10-16
=================
Ensure host is first request header, see: RFC 7230 Section 5.4
Update bundled certificates
0.76.0 2020-07-27
=================
remove AddTrust bundled cert hack (no longer needed)
update bundled certs
add support for ssl_verify_hostname parameter
use buffered reads for Excon::Socket.readline
0.75.0 2020-06-17
=================
explicitly require ipaddr
0.74.0 2020-06-12
=================
add ipv6 support to no-proxy handling
comment out add trust cert from bundle (due to expiry)
0.73.0 2020-03-17
=================
add request/response data to proxy errors
0.72.0 2020-01-27
=================
update bundled certificates
0.71.1 2019-12-18
=================
fix frozen chunks through dup prior to binary_encode
0.71.0 2019-12-12
=================
fix for leftover data with interrupted persistent connections
0.70.0 2019-12-02
=================
Update bundled certificates
0.69.1 2019-11-21
=================
Fix mistake in proxy connection error handling
0.69.0 2019-11-21
=================
Raise better proxy connection errors
0.68.0 2019-10-25
=================
Updated bundled certs
0.67.0 2019-09-24
=================
Properly redact user/pass info from proxy credentials
Update bundled certs
0.66.0 2019-08-06
=================
Add remote_ip to datum, enabling usage in middleware
redirect follower now raises after following too many redirects (default 10)
fixed stub clearing in tests to avoid race conditions
0.65.0 2019-07-22
=================
fix yardoc formatting
fix creating Proc without a block
reduce/refine gem file contents
update bundled certs
readd bundled certs to gem file contents
0.64.0 2019-04-15
=================
warn, not error on undefined middlewares#valid_parameter keys
0.63.0 2019-04-12
=================
allow setting min/max ssl versions
add additional nonblocking ruby error classes
set logger via datum, instead of class variables
misc test/travis fixes
consolidate binary encoding, avoid double encoding
error or CR/LF instead of substitute
guard against invalid header keys
also retry blocked connect with newer ruby errors
clarify that username and password should be escaped
better handling of warnings in tests
add stalebot
document NO_PROXY
validate parameter keys based on middleware stack
update default retry on error counts in readme
Sweet32, DES deprioritization fixes to cipher suite
allow overriding retry_errors count
fix for URI escaping in Ruby 2.6
update copyright notice
add metadata to gemspec
update certs
0.62.0 2018-03-27
=================
remove binmode call for StringIO objects
0.61.0 2018-03-16
=================
use default ports for sockets if none specified
add ruby 2.4 and 2.5 to ci testing
follow relative location redirects
0.60.0 2017-12-15
=================
add requests_in_batches
cleanup rakefile, gemfile, etc
add logger/logger= and logging instrumentor
rewind response_block in idempotent instrumentor
0.59.0 2017-09-05
=================
fix backtick vs quote in error message
fix socket pooling to be per-connection instead of per thread
fix tests to ignore proxy env settings
0.58.0 08/01/2017
=================
remove unused error
add retry_interval and related settings for backoff
0.57.1 06/30/2017
=================
fix remote-ip setting to prevent off-by-one issue
0.57.0 06/14/2017
=================
add client_key_data and client_cert_data to valid keys
allow passing explicit host to unix sockets
0.56.0 05/31/2017
=================
fix proxy parse errors
fix url-escaped proxy creds for ssl
0.55.0 02/07/2017
=================
fix minor readme error
update bundled certs
update self-signed certs
update to test with ruby 2.3.3
fix unitialized ResponseParseError error
add missing 'spec_helper' require in tests
add missing 'time' require in tests
use unescape_uri for user/pass in Authorization header
use secure rubygems source uri
update gemnasium badge
update fury badge
update travis badge
update gittip badge
0.54.0 10/17/2016
=================
add howsmyssl rake task for sanity checking
update default ciphers to mozilla intermediate list
fix typo in changelog
0.53.0 09/27/2016
=================
add ability to pass ssl options as strings
progress towards rspec
update bundled certs
0.52.0 08/22/2016
=================
freeze string literals
move toward interpolation, over concatenation (frozen string related)
start conversion toward rspec
move user/pass authorization header setting to request level
0.51.0 07/08/2016
=================
tweak new errors to be an alias rather than inherit
0.50.1 06/28/2016
=================
re-add some missing errors from refactoring
0.50.0 06/28/2016
=================
expand readme
refactor errors for consistancy
optionally allow unstubbed requests
parse/verify path as well as host for connection
0.49.0 03/28/2016
=================
fix nonblock ssl socket connect timeout handling
fix README debug example
make unique class for certificate errors
connection logic cleanup
change stubs back to global (with local option via defaults)
specific handling for set-cookie header exceptions
0.48.0 03/07/2016
=================
optimize by writing part of body with headers when it fits in a chunk
0.47.0 02/29/2016
=================
fix bundled certs
fix instrumentors to allow recording timings
0.46.0 02/26/2016
=================
empty host header for unix sockets
raise EOFError on unexpectedly read nil
add host/path/port to response
keep cookies through redirects
fix to skip decompressing empty bodies
fix escaping for query string
README improvements
fix SocketError initializer
fix incorrect error class usage
0.45.4 07/13/2015
=================
fix undefined errors in error handling
ignore empty proxy values
0.45.3 04/21/2015
=================
guard warning about openssl versions in case constant undefined
ensure rackup listens properly, fixes local tests
0.45.2 04/16/2015
=================
add raw_status reader
improved tests around response/status
rescue IO::WaitWritable for SSL sockets also
indentation fixes
tighten rescue in ssl socket connect to better report non-timeouts
rescue EAGAIN and EWOULDBLOCK for non-blocking connects
0.45.1 03/27/2015
=================
fix scope for readline buffer, fixes dropped initial characters
0.45.0 03/26/2015
=================
prefer default SSL config to ENV, when available
document instrumentor deviation from rails format
better error/warning around openssl 1.0.2 bug
fix nonblocking ssl connect to not have tight loop
also remove user/pass when following redirects
0.44.4 03/04/2015
=================
update bundled certs
loosen travis versions, to get ~> type follow-the-leader behavior
fix syntax issue in ruby 2.2.1
0.44.3 02/24/2015
=================
don't pass body when following GET redirects
fix error rescue case to properly reference error object
0.44.2 02/11/2015
=================
simplify data[:debug] logic
catch nonblock errors around readline
0.44.1 02/01/2015
=================
fix issue with frozen strings in user/pass
0.44.0 01/30/2015
=================
re-implement timeout using IO.select
document custom URI parser usage
fix ruby 2.2 build
improved IPv6 support
Excon::Utils improvements
add 429 errors
0.43.0 01/09/2015
=================
use basic error instead of nil as default for socket error
allow setup_proxy to accept uri
add disable_proxy and proxy: false to disable proxy settings
0.42.1 12/04/2014
=================
update bundled certs
fix redirect follower to avoid erroneously setting basic auth
0.42.0 12/02/2014
=================
fix stubbing section of README
follow redirect for all request methods
remove unhelpful link for excon.io
rescue/ignore illegal seek on rewind
add ssl_cert_store option
allow non-RSA ssl keys
attempt to rewind request_block when idempotent
add configurable thread safety for socket pool
0.41.0 11/05/2014
=================
add :ssl_verify_peer_host option for dev purposes
add #reason_phrase to response
0.40.0 10/06/2014
=================
fix support for specifying ssl_ca_path
more consistent response_block/response.body behavior for mocks
add support for proxies running on unix domain sockets
0.39.6 09/22/2014
=================
pretty print stub not found errors
0.39.5 09/14/2014
=================
fix double delegation error
make client_key_pass valid connection key
cast headers to_s to fix historical symbol usage
0.39.4 08/08/2014
=================
ensure Response#new uses case-insensitive headers
add client cert pass phrase support
0.39.3 08/05/2014
=================
fix for nil and/or unknown proxy values
0.39.2 08/04/2014
=================
respect both ca_file/ca_path when both present
0.39.1 08/04/2014
=================
fix for ssl proxies + remote_ip stuff
0.39.0 08/01/2014
=================
revert to a blocking readline, for performance
simplify status lookup
consolidate proxy code
store defaults as a constant
avoid setting nil user/pass vs just no setting keys
move idempotent warnings in to middleware
simplify validations
use constants in utils
group non-chunk response paring
optimize/simplify socket local lookup
simplify to pro-actively build downcased headers instead of lazily do so
add version to options (so it will appear in debug)
add OS/Ruby version info to options/version for debugging
more consistent output styling for errors
remove TE stuff to simplify
shorten timeout/sleep in streaming tests
remove transfer-encoding altogether if it only includes chunked
only rescue http status errors in relevant tests
use case-insensitive headers in stubs also
0.38.0 07/09/2014
=================
avoid reading non-file bodies (mock related fix)
fixes to readme links
fix excon_debug to set debug_response
ensure both \r and \n are read when parsing headers
0.37.0 06/09/2014
=================
fix chunked reading to avoid chop! on non-chunk endings
fixes for proxy usage
0.36.0 06/04/2014
=================
fix to reconcile streaming changes for chunked encoding
0.35.0 06/03/2014
=================
fix for responses with content_length
0.34.0 05/29/2014
=================
add support for setting ssl_verify_callback
stream partial results imediately, when available
update rack/unicorn in tests to support streaming tests
skip streaming tests on jruby (as they depend on unicorn)
update travis tests to use newest rubinius
improve formatting/readibility of standard instrumentor output
0.33.0 05/15/2014
=================
README clarifications around defaults and basic auth
case insensitive headers
0.32.1 03/13/2014
=================
Fix for SNI (should occur prior to connect)
0.32.0 02/27/2014
=================
README improvements
fixes around LICENSE/CONTRIBUTING/CONTRIBUTORS
update bundled cert
nonblock connect/timeout fixes for ssl sockets
skip reverse lookups where feasible
more secure ssl settings, when available
add escape stuff as middleware
fix to raise exceptions properly
fix for keep alive check
add tests around keep alive
escape/unescape uri added to utils
add support for reusable local ports
0.31.0 12/16/2013
=================
test fixes for Bundler.require usage and Rack::Lint
use production mode + dump errors for tests
use Utils in Excon.stub
add implementation of stuff from WEBrick directly to utils
update test server to send connection close and process buffer after response
add :persistent option, defaults true
group HTTP errors by type
patch to webrick to workaround intermitent test failures
only use Open4 for 1.8.7
update/expand getting help/getting involved in readme
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