Changeset 5135
- Timestamp:
- 07/24/09 19:23:59 (4 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
luci/trunk/libs/httpclient/luasrc/httpclient/receiver.lua
r4889 r5135 172 172 options.headers = options.headers or {} 173 173 local hdr = options.headers 174 175 local file, code, msg = prepare_fd(target) 176 if not file then 177 return file, code, msg 178 end 179 180 local off = file:tell() 181 182 -- Set content range 183 if off > 0 then 184 hdr.Range = hdr.Range or ("bytes=" .. off .. "-") 174 local file, code, msg 175 176 if target then 177 file, code, msg = prepare_fd(target) 178 if not file then 179 return file, code, msg 180 end 181 182 local off = file:tell() 183 184 -- Set content range 185 if off > 0 then 186 hdr.Range = hdr.Range or ("bytes=" .. off .. "-") 187 end 185 188 end 186 189 … … 188 191 if not code then 189 192 -- No success 190 file:close() 193 if file then 194 file:close() 195 end 191 196 return code, resp, buffer 192 197 elseif hdr.Range and code ~= 206 then 193 198 -- We wanted a part but we got the while file 194 199 sock:close() 195 file:close() 200 if file then 201 file:close() 202 end 196 203 return nil, -4, code, resp 197 204 elseif not hdr.Range and code ~= 200 then 198 205 -- We encountered an error 199 206 sock:close() 200 file:close() 207 if file then 208 file:close() 209 end 201 210 return nil, -4, code, resp 202 211 end … … 205 214 local stat = {cbs.on_header(file, code, resp)} 206 215 if stat[1] == false then 207 file:close() 216 if file then 217 file:close() 218 end 208 219 sock:close() 209 220 return unpack(stat) 210 end 221 elseif stat[2] then 222 file = file and stat[2] 223 end 224 end 225 226 if not file then 227 return nil, -5, "no target given" 211 228 end 212 229
