Fix compilation errors with gcc5 (closes #12)
[mldonkey.git] / distrib / Todo.txt
blob65d460c181e32ec0dbfc3d398724189fad9b262a
1 TODO list for client
2 ====================
4 URGENT WORK:
5 ============
7 (0) Check that removal of the Swarmer after file_completed is not harmful.
9 (1) Why is the QRT sent so often ?
10 (2) Implement PUSH in Gnutella and Fasttrack
12   * Re-implement contributors in CommonSwarming
13   * Re-implement already downloaded files.
15   * Why does a BT client appear twice in the upload_fifo ?
16   * Secondary file should have '2' if primary file has not 3...
17   * Use a strategy for each network that tries to finish partially
18       downloaded chunks for itself or the primary network.
19   * Does the PartialChunk strategy work ?
20   * Why are chunks verified before completeness ?
21   * When a connection succeeds and downloads, we should retry the connection
22      ASAP.
23   * How to remove servers from disabled networks ?
24   * When a file is committed, we should add a flag to say if it has been
25       verified or not.
27 GNUTELLA:
28   * Use GET /urn-... type of downloads
29   * When is recover_file called ?
30   * All slots used ???
31   * Why do we lose some ultrapeers ?
32   * For files without TTR, use the SHA1 when all chunks are '2'
33   * Why is the QRT sent so often ??
35 BITTORRENT:
36   * Why does BT stop uploading after a file is downloaded ?
38 FASTTRACK:
39   * Verify that cancelled files are correctly removed, even the swarmers !
40   * What does "precondition failed" means ??
41   * Infinite loop somewhere...
43 SWARMING: disconnect verification scheme from network, at least when the
44   network doesn't use bitmaps. Find alternative UIDs for files (Gnutella2)
45   and download TigerTree when available.
47 URGENT:
48  * Understand why we ask several times for the same chunks
49  * Propagate client bitmaps to GUI
50  * Seeding in Bittorrent doesn't work
52 BUGS:
54 Flush buffers after do_at_exit (wait 5 secondes after exit ?).
55 Send relative times in the GUI protocol
57 ************************************************************************
58 Edonkey:
59  * Verify that make_xs is always synchronized with sources searches.
60  * Add command 'export_temp' so that they can be used from emule/edonkey
61  * EmuleMobile ?
62  * BUG: MLdonkey client generates "Exceeding Block Boundaries" errors which
63      loses bandwidth
64  * Implement more Emule packets
65     OP_REASKFILEPING (0x90) (size=16)
66     OP_QUEUEFULL (0x93)
67     OP_REASKACK (0x91) (size=2)
68     OP_FILENOTFOUND (0x92)
69  * Extended search doesnot work after connect because no ping was sent.
71 BitTorrent:
72  * Implement file availability as in edonkey.
73  * Content-Encoding: gzip
74  * bt 3.2 ... a want= and have= parameter 
75  * Check that after the commit, we don't call the tracker, except if we
76       continue to share the file
77  * started and completed should only be sent once
78     * Pause/resume file
79     * Reserve upload slots
80     * Share downloaded files
81     * Committed or not
83 FastTrack:
84  * Fifo to reconnect to clients PER FILE, limited by the number of currently
85     downloading clients
87 Gnutella2:
88  * Allow browsing other clients.
89  * ADD urn:sha1:<HASH> and urn:tree:tiger/:<HASH> to QRT
90  * Search using all URI (ed2k, etc...)
91  * Act as an ultra-peer
93 Gnutella:
94  * Upload: use CommonUploads queues
95  * Send more information in HTTP/1.1 headers (alt-locs, thex)
97 Soulseek:
98  * Network does currently not work due to missing bindings with common module
99  * In case of Message from server LOGIN FAILURE INVALIDPASS
100     prevent any new reconnection without changing the password. Done ?
101  + Implement more of the protocol
102  + Directory download using MultiFile
103  + Check that we don't download several times the file list of friends.
104  + Add a button in the tab_result to add to friend a file source (gui
105       protocol -> file sources)
106  + Use (file_name, size) keys for files_by_key, and iter on the table on
107        upload requests to find the correct file.
108  + Very long messages (several Megs) for shared file lists...
109  + Remove all downloads from a given user
110  + Display the number of new message per room
112 Opennap:
113  * Network does currently not work due to missing bindings with common module
114  * Register files on server
115  * Implement Upload completely
117 Direct-Connect:
118  * Network does currently not work due to missing bindings with common module
119  * Implement Upload completely
120  * How do you know your IP in Direct-Connect if you are behind a firewall
121  * Send replies to active searches
122  * When a download is finished, can the link be reused ?
123  * Don't always download from incoming peer the files list
124  * Reply to active search requests
125  * For some reason, mldc cannot talk on some servers... France AVI for example.
127 ***********************************************************************
128 Core:
129   * LittleEndian: is buf_int correct with negative values
130   * Change ClientKind so that it does not depend on edonkey anymore.
131   * BUG: What happens when the writes are buffered, mtime does not correspond to
132      the real value ? We should probably call Unix2.flush_all before saving
133      the config.
134   * CD get and Collections
135   * The core sends more File_info messages than File_downloaded, which is
136      not normal !
137   * Send messages to GUI with a classifier (to be able to display messages
138      in different consoles, server console, download console, clients console)