Downloads: Main mirror: http://sfiom.ath.cx Binary Source Ip to country tables from webhosting.info ED2K links: Version 0.42 - eMule 0.44d with Unicode support - using xml-lang
Binary:
ed2k://|file|emule0.44d[SF-IOM]-v0.4....ath.cx:2762|/
Source:
ed2k://|file|emule0.44d[SF-IOM]-v0.4....ath.cx:2762|/
Features:
[1] Share with subdirectories v2.5(Tag: "SLUGFILLER: shareSubdir"):
* When a directory is shared, all of it's subdirectories are shared as well.
* Only the root directory is saved in the dat files, the subdirectories are rescanned every time the shared files are reloaded or refreshed. As a result, the dat file is smaller than one where all the subdirectories are shared manually, and if a shared directory's subdirectories change(renamed, created, deleted, etc), the change will be detected the next time the shared files are refreshed.
* v2: To share a directory with subdirectories hold the ctrl key, otherwise the directory is shared without it's subdirectories.
* v2: Directories shared with subdirectories are now saved in a seperate dat file. The subdirectories themselves are still not saved.
* v2: Once a directory is shared with subdirectories you cannot unshare/reshare any of it's subdirectories, and the checkbox next to them disappears.
* v2: You can now share files from network shares without having to map them to a drive first.
* v2.1: Local drives appear before network drives.
* v2.2: Network drives load in another thread.
* v2.3: The incoming directory is shared without subdirectories by default and marking it causes it to be shared with subdirectories.
* v2.4: Directory listing for view shared directories request is now calculated according to the paths of the files shared, instead of the directories shared. This means that directories without shared files won't be sent, and subdirectories with shared files will be.
* The UNC shares box in the preferences can be used to add shared directories, but it doesn't show UNC directories already shared, and it can't be used to remove shared directories.
* v2.5: Added an option that allows configuring eMule to reload the shared files every set number of minutes, or 0 to disable(Off by default).
[2] Transfer whole chunk v1.1(Tag: "VQB: fullChunk"):
* Upload slot cycling is set to cycle only after 9.28MB(the size of a complete chunk) were sent, so that anyone downloading will get at least one chunk complete and be able to hash it and reshare.
* v1.1: A downloader getting a slot with the small-file boost will only download according to the size of the file used for the boost, and not a complete chunk.
* v1.1: No longer counts compressed packets according to their compressed size.
[3] Release slots(Tag: "SLUGFILLER: slotRelease"):
* You can set files to be release files. As long as there isn't a release file currently uploading, any request for a release file is auto-accepted. This ensures that at least one release file will be uploaded to one user at any given time, provided that there's at least one user requesting a release file.
* If a release upload is available, at least one of the two fastest slots in slot focus will be a release upload. If neither of the two upload slots with the highest score are release uploads, the release upload with the highest score will automatically be pushed up to be the second fastest slot.
[4] Detailed downloads:
* Confirmed download bar(Tag: "xrmb:confirmedDownload") - xrmb patch for showing in a download's progress bar how much of what was downloaded was already completed and hashed. Slightly modified code.
* See the needed chunks(Tag: "xrmb:seeTheNeed") - xrmb patch for seeing which chunks do sources need from you in the sources status bar.
[5] Spread bars v1.2(Tag: "SLUGFILLER: Spreadbars"):
* There is now a "progress bar" in the shared files list showing how many times was each part of a file uploaded.
* Uses black and blue colors, like the download progress bar. Black means never uploaded, light blue means uploaded a little, dark blue means uploaded alot.
* These statistics are saved in the known.met file, using a similar format to the saving of gaps in a part.met file.
* v1.1: You can now sort the files according to the spread bar. Uses a special sorting formula by VQB.
* v1.1: New column - File UL(Part): Estimates how many times a file was uploaded with consideration to how balanced the spread between different parts is.
* v1.1: New column - File UL(Simple): Estimates how many times a file was uploaded on average.
* v1.2: New column - File UL(Full): Estimates how many times a file was uploaded from start to end.
[6] Show comments(Tag: "SLUGFILLER: showComments"):
* Added option to indicate which files you set comments for in the Shared Files tab and in Transfers tab with icons.
* Recieved comments are now stored in a comment list for each file, instead of being stored in a single comment per user. As a result, a user can now send a comment for more than one file, and when the user disconnects the comments remain.
* Recieved comments can be viewed in the Shared Files tab, and are indicated with an icon.
* Comments and ratings for downloading files can be edited directly from the Transfers tab.
* New protocol extension allows downloading users to send comments to their sources, so users can now recieve comments for files they have complete.
[7] Bandwidth Throttler(Tag: "SLUGFILLER: BandwidthThrottler"):
* Bandwidth for upload slots is now assigned in a different manner, which makes the bandwidth limiting more accurate, and reduces packet overhead.
* There's a new option to also apply the upload limit to overhead packets, including packets sent to servers, instead of just to data packets.
* There's a new option to focus as much of the upload bandwidth as possible on as few slot as possible. Makes each individual slot finish uploading faster. The slots are sorted by score as an extension of the waiting queue, the slot with the most score getting the most bandwidth.
* Added a score column to the upload list.
* When the upload bandwidth is maximized, eMule now stops opening upload slots.
* A new option to display the total upload bandwidth measured with or without overhead.
* Adds socket-level software buffering to reduce TCP overhead caused by small packets.
[8] Advanced shares browsing(Tag: "itsonlyme: viewSharedFiles"):
* When browsing another user's shared files and directories, they are shown in a directory in the client details dialog.
* File lists of shared directories are only requested from the other user when you try to view their contents, rather than all directories being requested right away.
* Results from shared files requests are cached, so that the same directory or the list of directories aren't requested twice from the same user. They can, however, be requested again by right clicking on the directory you wish request again, or on the root if you wish to request the list of directories again, and then clicking on "Refresh".
* Option to browse own shared files as other users would see them.
[9] Virtual shared directories(Tag: "itsonlyme: virtualDirs"):
* It's possible to change the directory structure other users see the browsed files in by changing file paths to virtual directories, which are sent to other users in place of the real file paths.
* There are 3 forms of virtual directory mappings: Per-file - changing a file's path into a virtual one. Per-directory - changing the paths of all files in the directory to a virtual one. Per-directory with subdirectories - changing the paths of all files in the directory to a virtual one, and recursively converting all subdirectories into virtual subdirectories of the virtual directory. In case of multiple forms of mapping used on the same file, the most accurate applies(file, then directory, then closest parent directory).
* The virtual directories can be set through the mapping manager in the preferences.
[10] Safe Hash(Tag: "SLUGFILLER: SafeHash"):
* The ultimate fix against sharing corrupt downloads, or missing or having corrupt hashlists. See details below.
* Part file completion is done regardless of currently hashing known files.
* Temp files and their backups can't be shared, even if the temp directory is shared. Only temp files actually used by eMule and their backups are filtered, so other files in the directory can still be shared.
* Config files can't be shared, even if the config directory is shared. Only config files actually used by eMule are filtered, so other files in the directory can still be shared.
* Only complete chunks of part files are rehashed at startup, instead of the entire part file.
* If eMule is closed while a part file is hashing, it will now rehash at startup, instead of assuming it's been hashed.
* All part files hashing, including part finishing and ICH, are now done in another thread.
* Even though multiple files can be hashed simultaniously, only one chunk is hashed at the same time.
* Only hashed and verified chunks are shared. Completed chunks are shared only after they are fully hashed. File previewing also checks that the chunks are hashed, and not just complete.
* When a hashlist is recieved the part file is instantly hashed with it. Each already completed chunk is shared as soon as they are hashed.
* A part file doesn't wait for the initial hashing to complete before looking for sources and starting to download. It's only shared, though, after it's hashed.
* Only blocks which are currently gaps can be written to, data that has already been downloaded is discarded. This prevents finished blocks from being corrupted by overflowing data.
* Better handling of part files with less than one chunk. Prevents alot of bugs, including a bug which could allow such a file to finish without it's hash being checked.
* The shared files are loaded last, so that the part files are already loaded and can be shared when the shared files first load. Also, when the shared files are sent to the server, the part files are sent in the same packet, instead of being sent one by one afterwards.
* All directories can be shared. Unsharing of eMule-used files is done per-file.
* When loading met files, the type of the tags are now checked, rather than just the tag names, to prevent errors caused by tag type mismatch.
* A known file without a filesize tag, or with a filesize tag set to 0 is no longer loaded, and is considered as an invalid entry.
* Fixed a bug which could cause a part file to remain without a hashset. Now the hashset requests are monitored and have timeouts.
* Fixed a bug when loading a backed up part file which would cause several errors during hashing and other operations.
* The download queue will now only load one part file instance per part.met filename. Prevents a backup from colliding with a valid or recovered met file.
* Fixed a bug caused by the first time wizard opening before eMule is fully loaded.
* Fixed a bug where eMule might start working before it finished loading.
* Reloads shared files whenever a requested files found in the shared files is not found on the harddrive.
[11] Modeless dialogs(Tag: "SLUGFILLER: modelessDialogs"):
* Multiple dialogs in eMule are now modeless, meaning you can open a dialog, and continue working with eMule behind the dialog with the dialog still open, instead of having to first close the dialog, then work with eMule.
* The client details dialog is modeless. You can open one dialog per client. Trying to open the client details twice for the same client will bring the previously opened dialog to the front.
* All three file details dialogs, for downloads, search results, and shared files, are modeless. You can open one dialog per file. Trying to open the file details twice for the same file will bring the previously opened dialog to the front. If a file is removed, its dialog will automatically close.
* The preferences dialog is now modeless. Clicking on preferences while the preferences dialog is already opened will bring it to the front.
* The dialog for browsing the shared files as other users would see them is modeless. Trying to re-open it while it's already open will bring it to the front.
[12] Advantage RatingTag: "SLUGFILLER: AdvantageRating")
* Attempts to find the best users to upload to for optimal download.
* Uses upload and download history through the entire session to create per-user advantage estimates.
* Only displays estimates in score columns. Actual use of estimates is disabled for now.
[13] New Settings:
* Reconnect on LowID(Tag: "SLUGFILLER: lowIdRetry") - How many retries before accepting a low id(Default: 3).
* Hide overshares(Tag: "SLUGFILLER: hideOS") - This feature attempts to balance the amount of time different parts of each file are uploaded, by not revealing to other users parts that have been uploaded a certain amount of times more than others, making them only download the parts that have been uploaded less. It uses the data from the spreadbars to decide how many times each part was uploaded. It ignores, of course, any parts that either you don't have, or that the other user already has, so that at least one part that can be uploaded is always revealed to the other user. You can set the amount of times a part has to be uploaded more than others before it's hidden, or 0 to disable(Default: 5).
* Selective chunk sharing(Tag: "SLUGFILLER: hideOS") - You can choose to make hide overshares stricter by only revealing one chunk to each user, starting with the least uploaded chunks, and considering the chunks that were already offered when choosing the next. Hide overshares must not be disabled for this to work(Off by default).
* Share All(Tag: "SLUGFILLER: preferShareAll") - Tries to connect to servers which can index all of your shared files first, even if they have a lower priority compared to servers which can't(On by default).
* Upload Speed Sense(Tag: "ZZ:UploadSpeedSense") - Automatically tries to discover the available upload bandwidth and limit upload to that bandwidth(In addition to the manually set upload limit, not instead of). Bases the limit on desired ping. ICMP and UDP pinging supported, with auto-detection. Can be turned on or off, as well as configured in several ways.
* LanCast(Tag: "moosetea: LanCast") - You can choose broadcasts your shared files over LAN multicast port 5000, allowing other clients on your LAN to receive them and download them from you. LAN transfer is uncapped, and isn't counted in the session transfer(On by default). Note: Support for multi-homed servers is limited at this time, and may cause unnecessary overhead.
* Probabilistic queue(Tag: "SLUGFILLER: randQueue") - Instead of using wait time to determine the next upload slot, uses a weighted random. Puts more immediate emphasis on upload priorities, rather than wait time, and obsoletes SUQWT. Excellent for releasers(Off by default).
* Queue per file push(Tag: "SLUGFILLER: QPFpush") - Gives a file boost inverse to the file's popularity, to ensure less popular files are uploaded just as much as popular ones(On by default).
[14] New Display options(Tag: "itsonlyme:displayOptions"):
* Display options introduced in SF-IOM have their own branch in the Extended Settings tree.
* Chunk mark dots(Tag: "SLUGFILLER: chunkDots") - The incomplete side of the progress bar has marks for where chunks start and end(On by default).
* Progress percentage(Tag: "HoaX_69: progressPercent") - The progress of a download in percents can be seen on top of the progress bar. Improvement of the one seen in official(On by default).
* Option to turn file system icons in shared files tab on or off(On by default).
* Added difference display to queue rank column. Whenever the queue rank for a source changes, the difference from the previous one is shown in brackets.
[15] General Bugfixes and Tweaks:
* Support for crashrpt.dll, if available. Provides useful info if eMule crashs(Tag: "gnaddelwarz: crashRpt").
* File requests and reasks from sources now have an added random delay of up to 2 minutes to prevent connection peaks caused by all requests and reasks occuring all at the same time(Tag: "SLUGFILLER: spreadReask").
* You can set the queue size limit to infinite(No limit) by moving the slider all the way to the right. This is also the default setting now(Tag: "SLUGFILLER: infiniteQueue").
* Multi-layer sorting. If you sort a list by one column, then by another, the order of the sorting will be remembered, and when the items change it will fit the same order of sorting instead of just the last. Also, the sorting order is now saved in the preferences, so it's remembered even if you restart eMule(Tag: "SLUGFILLER: multiSort").
* Revamped multiple aspects of downloadlist sorting. Also, you can now sort sources without sorting the downloads by holding the ctrl key while clicking on a column(Tag: "SLUGFILLER: DLsortFix").
* You can now see your own UL/DL modifier in the client details dialog, next to the client's UL/DL modifier(In brackets). Also, in the download queue, sources that would see you in their upload queue with a credits mark are now shown with a credits mark(Tag: "VQB: ownCredits").
* Files under 1 chunk get a priority boost in inverse ratio to their size. A 1 chunk file(or above) gets no boost, and a 9.28k(1/1000 chunk) file(and below) gets the maximal boost of times 1000(Tag: "VQB: SFpush").
* eMule now keeps index of all current downloads. If one of the download files becomes corrupt, or is unexpectedly deleted, or doesn't match the index, eMule offers to restore the download from the indexed backup. The index is saved only when it's changed, to reduce chances of it becoming corrupt(Tag: "SLUGFILLER: indexPartFiles").
* The statistics of part files are now saved in the known.met. Also, known files not shared in over 5 months are deleted from the known.met(Tag: "SLUGFILLER: mergeKnown").
* When finishing downloading the last known chunk of a source, the source is set as on queue rather than as a no needed source, in case that source completed a new chunk in the mean time(Tag: "SLUGFILLER: noNeededRequeue").
* Downloads can take sources from search results and browsed user files(Tag: "SLUGFILLER: searchCatch").
* Servers which return a file as a search result get cached, and are later on asked for sources for the file first if the file is downloaded. Also, if a server returns as a search result a file already being downloaded, than that server is asked for sources for the file(Tag: "itsonlyme: cacheUDPsearchResults").
* If multiple files are selected while entering a new comment, the new comment is applied to all of them(Tag: "SLUGFILLER: batchComment").
* Added checks to startup timer, so that if the controls aren't yet initialized, even after the delay, it waits for another timer cycle until they are before trying to initialize(Tag: "SLUGFILLER: doubleLucas").
* Supports the mod-ID protocol. Also, client version usage in statistics can be expanded to show which mods are used by how many users for each eMule version(Tag: "SLUGFILLER: modID").
* Mod name and version is shown properly after eMule and it's version where-ever it's shown(Tag: "itsonlyme: modname").
* You can right-click a user in any list and select to view a list of all the files the user is a source of in a dialog(Tag: "itsonlyme:reqFiles").
* Requested files, browsed shares and client details now appear in one dialog with tabs("itsonlyme:clientDetails").
* A column was added to the upload list and queue list showing the client software of the users(Tag: "itsonlyme: clientSoft").
* Up to 10 sources for a download are saved in the part.met, so if eMule crashs or it's restarted these sources stay, but only if the part.met was saved less than 24 hours before eMule was started again(Tag: "SLUGFILLER: saveSources").
* Users that haven't changed their default names will now be given new random names based on their userhashs(Tag: "xrmb:funnynick").
* Added an estimate to how much users on the upload list have to download before they complete a chunk and are cycled in a new column, along with a time estimate on how long it will take for them to download this much. Also added a new statistic showing a total of the remaining upload for users on premature disconnection, and the average per session of remaining upload(Tag: "SLUGFILLER: upRemain").
* Download is now limited not by the set upload cap, but by the session's upload, not including friend slots. When download exceeds 3 times the session's upload, it's reduced to 1k/s. This maintains a steady 1:3 limit on the session UL
L ratio(Tag: "SLUGFILLER: sessionRatioLimit").
* Requested blocks are now clipped to chunk limits and maximal allowed block size. This prevents any exploits regarding block requests, and enables certain Hybrid versions to download from eMule where they previously couldn't(Tag: "SLUGFILLER: reqBlocksClipping").
* Moving the mouse over links in the messages tab no longer disables accelerator keys(Tag: "SLUGFILLER: hoverCaptureFix").
* Fixed clicking with the middle button on uploads/queue/client list. Now opens the client's details(Tag: "SLUGFILLER: middleButtonFix").
* You can now choose permissions for browsing shared files on a per-file basis, rather than just for all files(Tag: "xMule_MOD: showSharePermissions").
* Added option to automatically check and notify for newer versions of the mod(Tag: "itsonlyme: versionCheck").
* Changed the credits file format into an extensible met format, allowing extensions to the credit records(Tag: "SLUGFILLER: metCredits").
* If a user is removed from the queue without being uploaded to, the user's queue wait time is saved, and is restored when the user returns(Tag: "Moonlight: SUQWT").
* Lan IP filtering now filters all reserved IPs(Tag: "itsonlyme: ipFiltering").
* You can run two or more eMules at the same time provided that each is ran from a different directory(Tag: "Elandal: multipleInstance").
* Removed bad coding and irresponsible use of non-standard IsKindOf(Tag: "SLUGFILLER: removeKindOf").
* Added proper "Source from" values for all possible options, and fixed incorrect values(Tag: "SLUGFILLER: sourceFrom").
* The message tab now flashs when a new message is received(Tag: "SLUGFILLER: MessageFlash").
* Added country flags and names display for clients and servers, based on webhosting.info's ip to country table(Tag: "AndCycle: IP2Country").
* A client sending over 16 filtered messages is now banned for spamming(Tag: "SLUGFILLER: spamBan").
* Download file names dialog now includes columns for complete and incomplete sources count per name(Tag: "SLUGFILLER: completeNameCount").
* Pop-up menu icons and directory tree icons now work in all operating systems(Tag: "SLUGFILLER: 9xIcons").
* Added estimated time until download start from source based on Lagrange interpolation of received QRs(Tag: "SLUGFILLER: QRETA").
* You can now set multiple friend slots. Remember that friend slot upload isn't counted for session ratio, and may cause your download to be capped(Tag: "SLUGFILLER: MultiFriendSlot").
* You can now set upload priorities and release status for downloads from within the downloads list(Tag: "SLUGFILLER: DLCUpPrio").
Officially Implemented Features: We stopped implementing these features because the official team either adopted them or came up with their own(better) versions. Don't worry, they're still in, the official versions of them, that is. [1] Adjustable connections per five seconds(fixed, eMule 0.24):
* eMule 0.23 introduced a features which limits how many connections can be made every 5 seconds, so routers aren't flooded due to too many connections in too little time. However, the official client doesn't allow changing the limit. Now you can set whichever limit you choose.
[2] Check diskspace v1.2(adapted, eMule 0.30):
* Verifies all non-paused downloads have enough room in the temp partition to finish.
* If there isn't enough room, downloads are paused so that the remaining downloads do have enough room. Files with lower priority are more likely to be paused in favor of higher priority files. Files paused this way have a status of "Insufficient diskspace".
* Whenever a download is paused, resumed, stopped, or has it's priority changed, the free disk space is rechecked to see if previously paused files can be resumed, or new ones paused because of the current non-manually-paused downloads changing.
* v1.1: Rechecks the free diskspace every 15 minutes, just in case the free disk space on the temp partition has changed(files copyed, created, deleted, etc).
* v1.2: Can be turned on or off in the preferences(On by default).
[3] Detailed downloads:
* Gray paused downloads(adapted, eMule 0.30) - Inactive downloads(Paused, error, etc...) have gray-faded status bars.
[4] General Bugfixes and Tweaks:
* Shared file list is only flushed to the control itself after eMule has fully initialized. Prevents a crash at startup with Win9X. Based on the patch by Lucas(fixed, eMule 0.25).
* Server.met only read after the Servers tab has fully initialized. Extention of the patch by Lucas(fixed, eMule 0.25).
* Fixed a possible crash if the gap information in a part.met is corrupted, or simply not in a very specific order. Now uses more effecient code for reading an detecting errors in the gap tags(fixed, eMule 0.25).
* Fixed source exchange sending IDs instead of IPs. Now only sources with a valid IP are sent by IP(obsoleted, eMule 0.25).
* Part files without a hashlist are no longer shared as complete sources(fixed, eMule 0.26).
* CPU optimizations by Maella(fixed, eMule 0.26).
* NT/2K/XP users without a C drive couldn't see the directories control(fixed, eMule 0.27).
* When eMule starts the next upload it skips low-id users that aren't currently connected. If a low-id user should have gotten the slot, he is marked, and is automatically given a slot when he next connects(fixed, eMule 0.27).
* Files written to are now commited to disk before being closed(fixed, eMule 0.29).
* Known.met is saved after every upload is complete to preserve statistics in case of crash(fixed, eMule 0.29).
* Prevented crash bug caused by a failed connection attempt deleting the client object when starting an upload(fixed, eMule 0.29).
* Supports the completed sources protocol for showing the estimated amount of complete sources for shared files(adapted, eMule 0.30)
* Download links can contain hostname sources, instead of just ip(adapted, eMule 0.30).
* You can set your own hostname in preferences, and create eD2K links with sources with your chosen hostname instead of your IP(adapted, eMule 0.30).
* Estimated completed sources uses heap-sort instead of quick-sort, making it faster(adapted, eMule 0.30).
* Speed improvements made to the bar shader, making it display much faster than before(adapted, eMule 0.30).
* Fixed a bug causing low-id sources not to be counted properly(fixed, eMule 0.30).
* Fixed a bug in the obtained parts bar causing the last chunk to appear bigger than it is, and that it's non-existent end is never transferred(fixed, eMule 0.30).
* You can now rename shared files from the shared file tab. Priority settings, statistics, and the such are automatically assigned to the new filename(adapted, eMule 0.42).
* Fixed bug in operations on multiple selected files, which sometimes caused not all files to be effected(fixed, eMule 0.42).
* Current permissions and upload priorities in context menus are now marked by check-marks(implemented, eMule 0.42).
* Fixed bug when adding a user to friends where the user's icon wasn't updated to show that the user was now a friend(fixed, eMule 0.42).
* The statistics of duplicate known files are now merged(fixed, eMule 0.42).
* Fixed a bug with array initialization which effected the available parts display and the estimated complete sources(fixed, eMule 0.42).
[5] Safe Hash:
* Gaps are clipped to the file size when loaded. If the part file size is smaller than the expected size then the gap in the end is added in the case it's not already there(Can be caused by crash while flushing the buffer, or by outside modifying if the part file). Gaps are also added in a more controlled manner, which completely prevents gap overlapping(fixed, eMule 0.29).
* Fixed possible bug that only checks the first chunk of each written block for completion, even in the unlikely(but possible) case that two chunks are written to and completed at once(fixed, eMule 0.29).
* Added check when loading the part file to make sure the part file size doesn't exceed the desired size(In case it was enlarged by outside modifying). Prevents bug with both file completing and initial hashing(fixed, eMule 0.29).
* Loaded hashlists are not assumed to be valid, and are checked against the file hash. Prevents a case of using a corrupt hashlist due to part met file corruption(fixed, eMule 0.30).
* Closing eMule while files are still hashing no longer causes any crashes, and all threads exit quickly and safely(fixed, eMule 0.30).
* Only one known file is hashed at a time(fixed, eMule 0.30).
* Refreshing the shared files while files are hashing no longer causes these files to be hashed twice(fixed, eMule 0.30).
* Fixed handling of files which divide evenly into chunks, meaning the last chunk is 0-sized, to be compatible with eDonkey's protocol(fixed, eMule 0.30).
[6] New Preferences Tab(obsoleted, eMule 0.29):
* A new preferences tab for settings specific to this mod. No longer necessary with the new tree-options dialog.