net-imap 0.3.7 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/net/imap/response_parser.rb +23 -3
- data/lib/net/imap.rb +1 -1
- metadata +3 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1c0b89eb763616a2d446e7a145245fcc88906162cdb6e41e1f73b89ac54269fb
|
4
|
+
data.tar.gz: aa19c272ab1142f1ebec8d40a7f56eeb348286188c154b9a4cfcd0819a2d4b18
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93819c8a2aa93f8e5e5737626981fadef9038e31afdec124f70ff6e29b4c233877031d64f3e19486e2976a713da40bed3e8cdf5d5939e953fa3b9cd864915ede
|
7
|
+
data.tar.gz: f07545087c1d4c1faece211b902096782421fba4f5d81ceab07f8e4c5fed0f2e3918e4c4ba027231ab52038edf4b7dc3a0c4200bf0f1480addfa6042aaf7716e
|
@@ -7,6 +7,8 @@ module Net
|
|
7
7
|
|
8
8
|
# Parses an \IMAP server response.
|
9
9
|
class ResponseParser
|
10
|
+
MAX_UID_SET_SIZE = 10_000
|
11
|
+
|
10
12
|
# :call-seq: Net::IMAP::ResponseParser.new -> Net::IMAP::ResponseParser
|
11
13
|
def initialize
|
12
14
|
@str = nil
|
@@ -1379,11 +1381,29 @@ module Net
|
|
1379
1381
|
case token.symbol
|
1380
1382
|
when T_NUMBER then [Integer(token.value)]
|
1381
1383
|
when T_ATOM
|
1382
|
-
token.value
|
1383
|
-
|
1384
|
-
|
1384
|
+
entries = uid_set__ranges(token.value)
|
1385
|
+
if (count = entries.sum(&:count)) > MAX_UID_SET_SIZE
|
1386
|
+
parse_error("uid-set is too large: %d > 10k", count)
|
1387
|
+
end
|
1388
|
+
entries.flat_map(&:to_a)
|
1389
|
+
end
|
1390
|
+
end
|
1391
|
+
|
1392
|
+
# returns an array of ranges
|
1393
|
+
def uid_set__ranges(uidset)
|
1394
|
+
entries = []
|
1395
|
+
uidset.split(",") do |entry|
|
1396
|
+
uids = entry.split(":", 2).map {|uid|
|
1397
|
+
unless uid =~ /\A[1-9][0-9]*\z/
|
1398
|
+
parse_error("invalid uid-set uid: %p", uid)
|
1399
|
+
end
|
1400
|
+
uid = Integer(uid)
|
1401
|
+
NumValidator.ensure_nz_number(uid)
|
1402
|
+
uid
|
1385
1403
|
}
|
1404
|
+
entries << Range.new(*uids.minmax)
|
1386
1405
|
end
|
1406
|
+
entries
|
1387
1407
|
end
|
1388
1408
|
|
1389
1409
|
def nil_atom
|
data/lib/net/imap.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-imap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shugo Maeda
|
8
8
|
- nicholas a. evans
|
9
|
-
autorequire:
|
10
9
|
bindir: exe
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2025-02-07 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: net-protocol
|
@@ -115,7 +114,6 @@ licenses:
|
|
115
114
|
metadata:
|
116
115
|
homepage_uri: https://github.com/ruby/net-imap
|
117
116
|
source_code_uri: https://github.com/ruby/net-imap
|
118
|
-
post_install_message:
|
119
117
|
rdoc_options: []
|
120
118
|
require_paths:
|
121
119
|
- lib
|
@@ -130,8 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
128
|
- !ruby/object:Gem::Version
|
131
129
|
version: '0'
|
132
130
|
requirements: []
|
133
|
-
rubygems_version: 3.
|
134
|
-
signing_key:
|
131
|
+
rubygems_version: 3.6.2
|
135
132
|
specification_version: 4
|
136
133
|
summary: Ruby client api for Internet Message Access Protocol
|
137
134
|
test_files: []
|