Mercurial > prosody-modules
comparison mod_storage_xmlarchive/mod_storage_xmlarchive.lua @ 3572:7700c9537e90
mod_storage_xmlarchive: Return error if range request reference missing items (see #1325)
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 03 May 2019 21:07:51 +0200 |
parents | f5ea0b886c7c |
children | ddf109d58eff |
comparison
equal
deleted
inserted
replaced
3571:f5ea0b886c7c | 3572:7700c9537e90 |
---|---|
127 local first_item, last_item; | 127 local first_item, last_item; |
128 if rev then | 128 if rev then |
129 start_day, step, last_day = last_day, -step, start_day; | 129 start_day, step, last_day = last_day, -step, start_day; |
130 if query.before then | 130 if query.before then |
131 local before_day, before_item, items_ = self:_get_idx(username, query.before, dates); | 131 local before_day, before_item, items_ = self:_get_idx(username, query.before, dates); |
132 if before_day and before_day <= start_day then | 132 if not before_day then |
133 return nil, "item-not-found"; | |
134 elseif before_day <= start_day then | |
133 if before_item then | 135 if before_item then |
134 first_item = before_item - 1; | 136 first_item = before_item - 1; |
135 else | 137 else |
136 first_item = #items_; | 138 first_item = #items_; |
137 end | 139 end |
140 items = items_; | 142 items = items_; |
141 end | 143 end |
142 end | 144 end |
143 elseif query.after then | 145 elseif query.after then |
144 local after_day, after_item, items_ = self:_get_idx(username, query.after, dates); | 146 local after_day, after_item, items_ = self:_get_idx(username, query.after, dates); |
145 if after_day and after_day >= start_day then | 147 if not after_day then |
148 return nil, "item-not-found"; | |
149 elseif after_day >= start_day then | |
146 if after_item then | 150 if after_item then |
147 first_item = after_item + 1; | 151 first_item = after_item + 1; |
148 else | 152 else |
149 first_item = 1; | 153 first_item = 1; |
150 end | 154 end |