Skip to content

Commit 3c66cad

Browse files
authored
Use epoch seconds instead of milliseconds in cbor encode/decode (#3171)
1 parent eedc964 commit 3c66cad

File tree

5 files changed

+6
-6
lines changed

5 files changed

+6
-6
lines changed

gems/aws-sdk-core/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
Unreleased Changes
22
------------------
33

4+
* Issue - Use epoch seconds instead of milliseconds in cbor encode/decode.
5+
46
* Issue - Add handling of block in response delegation (#3169).
57

68
3.216.0 (2025-01-15)

gems/aws-sdk-core/lib/aws-sdk-core/cbor/decoder.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,7 @@ def decode_item
6161
when :tag
6262
case (tag = read_tag)
6363
when TAG_TYPE_EPOCH
64-
type = peek_type
6564
item = decode_item
66-
item /= 1000.0 if type == :integer
6765
Time.at(item)
6866
when TAG_TYPE_BIGNUM, TAG_TYPE_NEG_BIGNUM
6967
read_bignum(tag)

gems/aws-sdk-core/lib/aws-sdk-core/cbor/encoder.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,8 @@ def add_tag(tag)
226226

227227
def add_time(value)
228228
head(MAJOR_TYPE_TAG, TAG_TYPE_EPOCH)
229-
epoch_ms = (value.to_f * 1000).to_i
230-
add_integer(epoch_ms)
229+
epoch = value.to_f
230+
add_double(epoch)
231231
end
232232

233233
def bignum_to_bytes(value)

gems/aws-sdk-core/spec/aws/cbor/decoder_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def decode_half_bytes(half)
6363
end
6464

6565
it 'decodes integer times' do
66-
expect(cbor64_decode('wRsAAAFvYQ3z8A=='))
66+
expect(cbor64_decode('wftB14MjtYAAAA=='))
6767
.to eq(Time.parse('2020-01-01 12:21:42Z'))
6868
end
6969

gems/aws-sdk-core/spec/aws/cbor/encoder_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def cbor64_encode(value)
7777
end
7878

7979
it 'encodes times' do
80-
expect(cbor64_encode(time)).to eq('wRsAAAFvYQ3z8A==')
80+
expect(cbor64_encode(time)).to eq('wftB14MjtYAAAA==')
8181
end
8282

8383
it 'encodes BigDecimals' do

0 commit comments

Comments
 (0)