-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathtodo.txt
44 lines (42 loc) · 2.02 KB
/
todo.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
_________________________________________________________________________________________________
TODO:
_________________________________________________________________________________________________
* Parametrized InternetOpenUrl flags
* Parametrized HttpSendRequest flags
* Proxy
* reconnect during dld
* Connect time-out parameter
* Reconnect time-out parameter
* Resume
* Resume memory downloads as well
* query file size
* download file with unknown size
- HTTP/HTTPS authentication?
- PROXY authentication?
- PUT(WebDAV)
* POST headers
- Multiple download sources
* Support files > 4GB
x Support destination folder only. Use the file name from HTTP_QUERY_CONTENT_DISPOSITION (ex: piriform downloads) => Easily done by the caller *after* transfer completes
* Use InternetSetStatusCallback (remember last status, remember server IP)
* Retry opening local file if ERROR_LOCK_VIOLATION
x Download to temporary file => Easily done by the caller
* Measure transfer speed
* Save the raw headers and make them available for querying
* Queue priorities
* Enumerate requests in queue
x Pause/Resume transfer. Create paused => Can be emulated with dependencies
* Abort transfer
- Attach the "Zone.Identifier" stream (optional)
* Support for the NSIS script to retrieve memory content
* All functions with variable number of arguments must receive /END
* NSxfer::Query return time information (elapsed waiting, elapsed transferring, etc)
* NSxfer::QueryGlobal converted to receive variable number of arguments + /END
- Configurable: worker threads, NSXFER_USERAGENT, TRANSFER_CHUNK_SIZE, MAX_MEMORY_CONTENT_LENGTH, CONNECT_RETRY_DELAY, SPEED_MEASURE_INTERVAL
* Transfer GUI
* Test with silent installers
- Reuse connection to the same server
* Dynamic transfer buffer, based on speed (1KB - 256KB)
- Incorrect ETA when resuming. Data already downloaded must be excluded
- Add {FILELIST} keyword
- Transfer() doesn't return the ID, therefore no later querying is possible. Suggestion: add /PUSHID parameter to push the transfer ID on the stack (in addition to the status)