## eMule 48a. TK4 Mod 2.1d

Thanks for taking the time to read this. :o)
Please forgive (m)any typos & grammatical errors.
The TK4 Mod is essentially a set of features I want in my own eMule.
Main Features:
KAD Keyword input enhancements Adds separate KAD Keyword field for search, plus auto derive. 2.1d
Fixed and reworked ToolTipCtrlX The Devs wrote tooltips with icon support, now it works under windows 2000. 2.1b
Safe KAD + KAD Optimizes Netfinity's Safe Kad + Kad optimizes and function inline for improved performance. 2.1a
Auto MTU/MSS Determines the highest usable and fair ATM efficient value for MSS and uses it for uploads. 2.0e
Header View+ Allows Viewing of the Header of a downloading or completed file and attempts identification. 1.5e bug fix 2.0b
Statistics Functionality Enhancements Additional display options and functionality 1.5b
Permanent search filters Added in version 1.4g. Updated to be more server/bandwidth friendly. 2.0d
IRC Colour and text formatting Adopted in Official eMule from version 47b
IP Filter update Updates you IPFilter using it's own thread, Monthly Auto update option New Ver 2.0a
Slot Focus Basic Slot Focus. Concentrates bandwidth on the slot(s) that can best use it 1.4c
Download improvements Prevent slower client's locking out faster clients + Netfinity's Dynamic Block Requests 1.5b
Upload improvements Added no sleep for uploadthrottler thread, Code by lupzz 1.4g
Virus scan Comodo antivirus support added 2.1d
Forceshare *Re-evaluated and redesigned version 1.3a Bug fix stats collection code, file deletion crash. 2.0d
Credit Systems + Credit systems and Anti-leech, Added Fine credit system - Created by CiccioBastardo. 2.0b
Hidden Hides/unhides eMule via user defined hot keys
Simple Compressibility Evaluation Saves wasting CPU cycles. Bug fixes! 1.5b Important note
Filename Disparity Check (FDC) Indicates when a file has a very different name. *Improved* 1.5a.
IP2Country Shows country flags from IP for clients and servers,(code from Eastshare/Morph/eXtreme) Added uses 2.0b
Minor Features:
Enhanced Client Recognition Recognize and displays more clients. Coded by Famerlor from Spike2 Mod.
Redesigned Client Details dialog *updated 1.4a* protocol extension(s) display added.
Client mod version display
Faster re-ask for MLDonkey clients Idea Spike2, WiZaRd, Eng123 (suggested by spiralvoice - mlDonkey-DevTeam). New Ver 2.0a
Don't remove static servers option option 1.4g bug fixed 1.5f
Don't log filtered messages option 1.5e
Display files never seen complete as red in downloads list 1.4c
Display non-trivial files with excessive compression as purple in downloads list 2.1a
Highlight Search entries with mismatched extensions
Stats Colour(color) reset button
Warn & prompt on deletion of possibly rare completed files
Statistics, use old style graphs option
Incidentals
TK4 Changelog
Virus scan:
There is a whole load of malicious code out there, viruses, worms and trojans. I, during the course of implementing this mod, have seen trojans that were detected by some scanners but not all, even though all of the scanners had their latest signatures and were reputable. The threat is real. One scanner even with resident protection may not provide adequate protection. My mod is NOT indented as a solution to this. It is merely a method of insuring the *minimum* level of virus checking is automatically carried out on every file you download. My suggestion is use one virus scanner to automatically scan files as they complete and another, your primary anti-virus program, to manually scan files before you run them or to protect your system via auto protect/resident protection. No matter how many scanners you use there is always the chance that you will be the first person to download a new virus/worm/trojan that no one has a signature for yet. Being cautious in what you download and execute on your system is a key element in protecting your system!
Multiple virus scanners.
Having good anti-virus protect need not cost you anything. Below are three really good free,(for personal use); scanners. The first two of which have command line scanning capabilities. AntiVir is particularly suited to use with eMule TK4 as its command line scanner is feature packed and pauses after a scan so you can see what it has detected. It is also easy to install without its auto-protection enabled, making it a good choice as a second scanner. Don't make the mistake of discounting Antivir just because it's free!
AntiVir(r) PersonalEdition Classic
http://www.free-av.com/
BitDefender Free Edition v7
http://www.bitdefender.com/site/Download/downloadFile/56/EN/
Free avast! 4 Home Edition
http://www.avast.com/eng/avast_4_home.html
Comodo antivirus Free for ever, currently Beta
http://www.comodo.com/products/free_products.html
With virus scan enable, on most supported Anti-virus products you can choose from:
Report only or Prompt
Disinfect or Delete
Delete
As the default action your virus scanner will take upon detecting a threat.
All downloaded files will be scanned on completion and if a threat is found it will be dealt with accordingly. You can also manually invoke a scan from the context menu's of your downloads and share files lists.
The TK4 Mod currently has built in support for the following virus scanners installed in their default locations.

- AntiVir
- AVG6
- AVG7
- Avast! home
- Avast! pro
- BitDefender
- Comodo
- Eset NOD32
- eTrust EZ
- F-Prot (windows version)
- Kaspersky personal / personal pro
- Norman
- Norton
- McAfee - (Untested McAffee does not install with other AV products!)
- Sophos
- Zone Alarm

And of course you can configure any anti-virus scanner with command line support via the 'Other' option. Examples:
F-Prot install in C:\F-Prot
Scanner & Path: C:\F-Prot\fpcmd.exe
Pre-File switches:
Post-File switches: -archive=10 -packed -disinf -auto
Giving:
C:\F-Prot\fpcmd.exe <file> -archive=10 -packed -disinf -auto
AntiVir install in C:\AntiVir\
Scanner & Path: C:\AntiVir\AVNT.EXE
Pre-File switches: -allfiles -z -e -noboot
Post-File switches:
Giving:
C:\AntiVir\AVNT.EXE -allfiles -z -e -noboot <file>
Summary:
Path\Virusscanner <Pre-file switches option> <file> <Post-file switches option>
Note: Most command line virus scanners will list their options with the switch(es) /? or -? or /help or -help
Back to top of page
Forceshare:(*re-evaluated and redesigned: version 1.3a)
Forceshare is available as two additional upload priority settings for *completed files. Any file that is Forceshared will be shared before all other non-forceshared files in slots available to forceshare. The only exception will be files requested by a friend with a friend slot. Forceshared files will start uploading immediately even if non-forceshared files are uploading and 'transfer full chunks' is enabled. Slots available to Forceshare varies depending of whether there are active downloads. Thus:
If there are no active downloads slots available to forceshare will be "slot count"/5 * 4 4/5th of slots.
If there are active downloads slots available to forceshare will be 1 + "slot count"/7 if more than 1 slot is open.
Forceshare has graphical statistics available for it. In the uploads graph you can see both current and session throughput for Forceshare. Session throughput is also available in the transfer stats tree under Transfers->Uploads->Session
Back to top of page
Download speed improvements:
eMule requests data in 180Kb blocks, 3 blocks at a time. If 3 blocks have been requested of a slow source they cannot then be requested of a fast(er) source. To try to tackle this potential problem the official client uses a fix speed comparison to detect slow sources and then makes 1 one block request, but it can only do this if the source is an eMule client! This means for 80% of the network. This also only occurs in the last 4 parts or files less than 4 parts in size 38Mb. In the TK4 mod the comparison code uses a relative comparison with a fix speed fall back for single source parts,(improved for 1.5b code here), it works for the whole file, and the 1 block request is converted in a 3 block request to give 100% compatibility, (for non-eMule clients only from 1.5a to prevent additional overhead).At the end of a file if a faster source runs out of blocks and there are no free blocks it would be dropped leaving a slower source to complete the file. The to deal with this the TK4 mod employs Netfinity's Dynamic Block Requests which reduces the size of the requested blocks at the end of a download to maintain a higher cumulative download speed by retaining more sources. From 1.5b additional code reduces first requests(idea put forward by SiRoB in ESD thread) and slow sources (below 400b/s) outside of the DBR effective range,(above 105Mb). This should increase part completion speed in some cases.
Back to top of page
Upload improvements:
This code was posted to code snippets by lupzz. I have added only the "No Sleep" code. This should improve the uploadthrottler's efficiency especially at high speeds.
See the original thread here
Back to top of page
Safe KAD + KAD Optimizes
The version of Safe KAD in the current TK4 MOD is take from NetF WARP 0.3a.6
Safe KAD slows the spread of bad nodes. Netfinity has just released an improved version in NetF WARP 0.3a.9 which will be merged in the next version of the TK4 MOD and a big thanks to Netfinity for all the great work on Safe KAD.
Back to top of page
KAD Keyword input enhancements
With the official eMule client, when you do a server, global (server) or file donkey search it is purely a <search string> but a KAD search is of the form <KAD keyword> <search string>. It is my opinion that is is counter intuitive and the KAD keyword should have its own input field, making it easier to switch between search types as the "Name" field will now be uniform.
There are some characters that are not allow in a KAD keyword, if you enter one of these characters the official client will give you an error dialog and you will have to fix the keyword. The KAD Keyword input enhancements feature will clean these characters and if the remaining keyword in long enough it will use it. Further more, if you have just performed an ED2K search you can switch to KAD search and hit start! This is because if the KAD keyword is omitted or too short the KAD Keyword input enhancements feature will derive it from the search string,(Name field). To Derive the keyword, first a comparison is carried out with all words from a cleaned version of the the search string and all keywords generated from your shared files, using the longest match, failing that the first largest word in the cleaned search string will be used. If more than one word is entered in the keyword field the first word is used. Before the search is carried out, the KAD keyword field is updated to display the keyword to be used.
Tagged in the source code [KS]
Back to top of page
Auto MTU/MSS:
*Firstly a big thanks to SiRoB, Enig123 and Leuk_he pointing out my (stupid) error of using MTU directly thus not allowing for headers and other overhead and also not setting an upper limit in the interests of fairness and keeping the network fragment free. This thanks does not and should not be taken as implying they indorse or support this feature in any way! :)
The MTU value is the Maximum Transmission Unit, the large packet that can be sent across a network without fragmenting,(being broken into smaller packets for later reassembly). Fragmentation is undesirable, it increase the overhead in terms of headers etc, taking more bandwidth and increasing the time it takes the data to arrive at its destination. To find your system's/network's MTU manually you could start->run->cmd
type ping -f -l <size> <destination> eg: ping -f -l 1492 www.google.com
Were -f = don't fragment -l packet data size.
The larger the packet size we can use the more efficient use of bandwidth we make considering every packet will have an overhead,(cost) in terms of a TCP/IP headers. A final consideration, many ISP/Telco use ATM,(Asynchronous Transfer Mode) backbones for DSL. these break data down into 53 byte cells these are comprised of 48 data bytes and a 5 byte header, with the last cell being 40 bytes of data terminated with 8 bytes SAR,(Segmentation and Reassembly). Therefore it make sense that the MTU size we use should be equally divisible by 48 allowing for SAR etc.
However this is not truly possible one can only try as headers vary in size. Auto MTU will try to find the IP address of your DNS server and use this address to find your system's/network's MTU value. If this value for is above 1423 the default maximum ATM optimized value for MSS - maximum segment size (the maximum size for data after the headers) will be used 1384. Increasing data per packet over the default by 84 bytes, saving network bandwidth and hopefully increasing ATM throughput / efficiency. If however this does not work well for you for whatever reason, Auto MTU/MSS can be disabled in Options -> Extended.
Tagged in the source code [FMTU]
Back to top of page
IRC Colour and text formatting:- Adopted in the Official since 47b
This feature was suggested by Masta2002 who also can be thanked for the idea of tooltips for the iconized buttons!
I have added colour and text formatting display and send features to the IRC window. The IRC window will now interpret tags which set foreground and background colours, bold, underlined and reverse. It will still show links as links. In addition there are four new buttons to the left of the text input edit control. From left to right they are:
Colour selection: Click this button and a palette will appear from which you can choose a colour. When you select a colour the appropriate colour tag will be added to your text. if you select red the tag “Ctrl C“ 04 (“Ctrl C“=0x03,0=0x30,4=0x34) will be added to your cursor location, or “Ctrl C 04“ selected text “Ctrl C“ 01 around a selection. If you use the button at your current cursor position,(not a selection), you can click it again to choose a background colour.
example: you click the colour button and select red, the colour tags are added, then you click the colour button again and select another colour, say, blue its value will be appended to the tag thus “Ctrl C“ 04,02 giving red text on a blue background
In addition to colour swatches on the colour palette popup there is a “Default“ button, this sets black for foreground colour and if you click it again white for background colour.
Underline: Click it it sets underline, click it again and it will add the same tag which has the effect of turning underlining off. On a selection it will enclose that selection with underline tags.
Bold: The same functionality as underline but sets bold text.
Reset: The reset button adds a tag which resets all preceding formatting. This button's value is with one tag you can reset text formatting to black on white normal text. If you just wanted to reset background colour it would be two button clicks using the colour select button.
The IRC window itself processes and displays the effects of all the above tags in addition to which it will display the 'reverse' tag which sets white on black text. It does this whilst retaining full hyperlink functionality.
The channels list is now in blue the channel names are bold and the number of users are displayed in three different levels of blue.
Tagged in the source code [IRC+]
Back to top of page
Fixed and reworked ToolTipCtrlX:
In version 48a tooltips in file views included a mysterious <br_head> tag. On investigating I found the Devs had implemented a custom draw function for tooltips. But the CDRF_SKIPDEFAULT return value they used was always ignored in the CDDS_PREPAINT drawstage, and tooltips only uses CDDS_PREPAINT. I have put in a couple of function overrides, added a little code and alter the positioning code. But the elegance of the new tooltip's is all the Devs work!
The new tooltip control can display a files icon and bold text in a nice clean layout.
Under XP and above the original code DID WORK and did acknowledge CDRF_SKIPDEFAULT! My altered code would NOT run under XP and above therefore version 2.1a was broken! Version 2.1b works on XP as it uses the Dev's original code, while for 2000 and all non-NT versions it uses my code 2000 works, 98,Me etc have not been tested....
Not Tagged in the source code! Just copy ToolTipCtrlX.cpp & ToolTipCtrlX.h
Back to top of page
Statistics Functionality Enhancements:
Most of these features were suggested by Masta2002 who also can be thanked for testing and feedback on pre-release code! On the standard eMule if you double click a statistics scope you would invoke the statistics options page. In the TK4 Mod the double clicked scope will resize to full height all horizontal splitter bars will be hidden double click again and the layout will be restored to its original positions.
Right click on any 'scope and a new context menu will appear, using this you can hide/restore the statistics tree view. You can hide the 'scopes view, which can be restored from a new option in the statistics tree context menu! You have the options to set any of the 'scopes to full height, or to reset the spacing of all 'scopes. Finally you have the option of invoking the statistics options page, which now has an additional option checkbox: Main/Current stats plots solid: which will display current stats and connection graphs in solid colour rather than a line.
I have retained this code entirely in 48A as opposed to the official solid plot code.
Tagged in the source code [SFE]
Back to top of page
Credit Systems +:
There is a new credit dialog in the options page to allow you to select between five credit systems. Using a credit system rewards good clients and protects you from leecher clients. I have implemented four additional credit systems for you to choose from. Lovelace and Eastshare being two popular systems, my own (TK4) which unlike the previous two does not punish clients that take without giving if they are downloading *completed* files and hence are unlikely to have anything to give. However if a client is downloading a file you are trying to download those who take without giving will be punished. Those who give in either case will always be rewarded. See the accompanying TK4_Creditsystem.htm file for more details. From version 2.0b CiccioBastardo's Fine system has been added a true sharing system which punishes leechers but does not reward givers, hence not creating trading.
You can also still use the official credit system, but it is very exploitable...
Anti-Leecher/Anti-BadMod
I have incorporated Wizard's excellent Anti-NickThief and Anti-Mod thief code/Anti-Leech class, as well as implementing GhostMod detection and protocol extension display code.
Nick Thief - A client with Nick Thief will send you back your own nickname rather than that of its user.
Mod Thief - A client with Mod Thief will sent you back your client's Mod name. (only working properly from 1.5f onward!)
Why are they so bad? Because it shows the client is lying about what it is and who is using it, it is probably a bad client, probably a leecher,(one that takes from you but does not give). Wizard's code detects nick thieves and many mod thieves and bans them.
Ghost Mods are eMule clients that don't send a Mod-ID but do send protocol extensions not supported by the standard eMule. They may be leechers, but there again they may just be someone's private mod, hence the removal of Ghost bad - Anti-Ghost mod. They could be a valuable source or a leech, but either way we should be able to see them for what they are, so TK4 mod will detect them and show them as -> No ModID <- also as it's just as easy for a leecher to send some good mod's ModID, the TK4 mod will store and display unsupported protocol extensions from any client in the form [tag count decimal] tag value hex.tag value hex eg: [1].5a From 1.4a TK4 Mod always bans Mod thieves that send non-standard tags.
Some features can be individually disabled from Options -> Credit Systems +
Back to top of page
Simple Compressibility Evaluation:
With the current,(46c) standard eMule all data is compressed prior to being uploaded unless it comes from certain archives .rar .zip etc. If the data fails to compress it is discarded, wasting the time spent attempting compression. This is compounded by the fact that eMule uses zlib's maximum compression setting, the slowest and most CPU intensive setting. So files that are not in the limited don't compress list and are uncompressible waste CPU cycles and slow your system. Therefore the TK4 Mod tests all completed files to evaluate their compressibility. It also uses two compression levels 1 the fastest and 9 the slowest in addition to no compression. It also has a new compressibility column in shared files list, so you can see each file's setting.
Evaluation.
When a file completes, 3 180Kb blocks [thanks SF],(eMule's block size) are tested from the ¼ ½ ¾ points in the file. If the sum of the compressed size of these blocks equals or exceeds the uncompressed size then 10 more 180Kb blocks are tested from the middle half of the file. If the sum of all of these blocks meets or exceeds the uncompressed size then compression is turned off for that file. If the original test or the second test results in a reduction of less than 3% fast compression is used. Otherwise normal full compression is used. For incomplete files the original list is used with the addition of 7z,gz and lzh. The list is also moved to the partfile constructor where it sets a flag so it is evaluated once, saving CPU cycles.
Note: From version 1.3e If the SCE code is unable to evaluate a file due to file read errors etc, on three separate occasions it's compressibility will be set as per partfiles to prevent continuous rehashing of a problem file on startup,(this feature fixed and as well as other bugs in 1.5b).
Important note: As evaluation occurs on completion, after hashing, on first run this code will rehash and evaluate all completed files. This will reset stats for these files.
Tagged in the source code [SCE]
Back to top of page
TK4 eXtras: (Options->TK4 eXtras)
Hidden:
When you click the "Enable 'Hidden' HotKeys" check box, the keys represented by the four buttons and drop list will become a HotKey sequence that when pressed will hide and unhide the eMule window, hiding eMule from the casual observer. If eMule is minimized to the systray it will disappear from there and reappear there. If minimule is open it will disappear and be restored. Default keys are [Ctrl] + [Alt] + [Y]. Be sure to check any sequence is not already assigned to something before you use it, such as [windows] + [E] for explorer. Test the key sequence before you assign it.
A word of warning: Please do not think this feature makes it safe to run eMule on systems you do not have the right to run eMule on! If you disregard this warning and run eMule at work say, you may find yourself unemployed really fast! eMule can easily be detected by its network activity or remote auditing software to name but two, you have been warned!
Back to top of page
Filename Disparity Check (FDC):
This feature is implemented until the official client implements a fix. It is designed to help prevent the downloading of undesired content. When you search for something, the filenames returned are only the names that match your search. So if you search for a file named 'Ghost' and you click on 'Ghost trial version.zip' and start downloading it, this file may have other names such as 'unwanted_video.mpg' but with the standard client you won't know unless you check in file details->filename. Filename Disparity Check compares filenames and if the difference between them is excessive a red question mark will be displayed next to the filename for the duration of the session. This feature can be turned off in Options->Extended->Disable filename disparity check. You can also get to a file's filenames quickly from the new context menu->filename. If FDC has been triggered, the alert can be reset using the 'Reset FDC' button located on in the file details->filename window. If you find FDC is too sensitive or not sensitive enough for your needs, you can adjust FDC sensitivity in Options->TK4 eXtras. If you still get too many false positives you can enable "Require 2 bad names before alert" which as it says will not display an alert until 2 bad file names have been see. From version 1.5 FDC will support Unicode and attempt to work with other character sets: Arabic ,Chinese, CJK Unified Ideographs ,Cyrillic, Greek , Hebrew ,Indic (Devanagari(Hindi),Bengali,Gujarati,Gurmukhi), Japanese and Thai. In addition some accented Latin characters are converted to their none accented counterparts so an omitted accent won't cause a false disparity. Web links are removed from the filename a client sends before comparison. Small one word filenames shorter than 'ours' will not be compared, to prevent false disparity from run-on filenames. Finally, the sensitivity range has been extended slightly in the Low end and other small tweaks added.
Tagged in the source code [FDC]
Back to top of page
Header View+:
As the name suggests this function allows you to view the header,(the beginning of a file where important identifying data is often stored), of a file you are downloading or have downloaded. It also tries to identify common file types:
EXE, RAR - detect password, ZIP - detect password, ACE - detect password, MP3, JPG, JP2, .GZ, OGG, WMV/WMA - Warn!
PNG, CAB (MS) - ID, CUE, CAB (IS) - ID, DOC, TIF, .7Z, RTF, PDF, AVI, WAV, .RM, MPG, MOV, MP4, GIF, BMP, MID, SIT,
LZH, VOB, CHM, confirmation only on DMG, TGA,REG
So if you are downloading a .rar archive and you look at the header details and see you are really downloading an .avi you know the file is a fake. The code will try to warn of password protection in some archive types, but it's not guaranteed.
Tagged in the source code [HV]
Back to top of page
Slot Focus:
Slot Focus in the TK4 mod is the basic slot focus, which is achieved by not running the share bandwidth evenly part of the upload bandwidth throttler code. Added to this in the TK4 mod, the bandwidth is offer to the upload slots in an alternating top to bottom, bottom to top manner in the hope of ensuring faster slots get their chance at using more of the bandwidth. So as you can easily see when Slot Focus is enabled, the upload list items will turn green when Slot Focus is enabled. Slot Focus can be enabled in Options->TK4 eXtras-> via a check box.
Tagged in the source code [SF]
Back to top of page
IP Filter update:
In the IP Filter dialog there is an additional button "Download and load a new IPFilter.dat". This button will be greyed out until you enter your update source address in Options->TK4 eXtras->IP Filter Update Source. Once you enter a valid source address of the form http:\\www.webaddress\path\ipfilter.dat and click apply, the update button in the IP Filter dialog will become available. When you click this button you will be prompted to confirm your intention to update you IP Filter. Once you click 'yes' on this confirmation dialog, both it and the IP Filter dialog will close. The IP Filter dialog will be unavailable for the duration of the update and server list control functions will be locked out. The update runs in its own thread. When it has downloaded and if necessary unpacked the new IPFilter.dat file eMule will stop accept new connections,(isfiltered() will always return true), while the old IP Filter list is deleted and the new list is loaded from the new IPFilter.dat file. *If the new list loads zero addresses, the old list will be restored. With this done all eMule functions will return to normal, connections will be *filtered by the new list, the IP Filters dialog will open again if desired and the update thread will end.
As suggested above the update system processes .zip files containing IPFilter.dat and IPFilter.dat.gz files.
Note From version 2.0a there is a option enabled by default of automatically updating the IP Filter list once per month, So if you are busy and forget your Mule won't! Any more frequent an update could result in an abuse of the filter providers bandwidth.
Note .gz files such as nipfilter.dat will be extracted to ipfilter.dat from 1.4g
Tagged in the source code [IPUP]
Back to top of page
Permanent search filters:
In the search window under the search entry edit field is a new check box, "Preset Filters" it is un-checked,(changed for 2.0d) by default and will be greyed out if no filters are set. You can set preset filter terms,(such as NOT wmv); in Options->TK4 eXtras->Search Filter Presets you can also hide the filter expression entry field, by clicking the "Hide Filters" checkbox. Once you have set your filter terms, they will be add to all searches when the "Preset Filters" checkbox is checked. However the preset filters will not show on the search tab or be recorded in you search history! Once you click the Preset Filters checkbox to enable it it will remain enabled until you edit your search phrases, when you will need to click it again if you wish to continue using the Search Filter Presets; this is to prevent the waste of server CPU time and bandwidth sending non-relevant presets,(added for 2.0d).
Tagged in the source code [PSF]
Back to top of page
IP to Country:
IP to Country displays the country flags for clients and servers so you can see who is from where! You will need to copy countryflag.dll countryflag32.dll and ip-to-country.csv to your eMule config folder. IP to Country feature, originally code by AndCycle of EastShare ? part of the code is from Morph Mod - SirRob and as I merged the code from eXtreme some fixes by XMan1. I don't like doing 'cut & paste' coding but this feature is to pretty to be without! The only code I've written for this was to put the country flag in TK4 client details and a small fix in ServerListCtrl.cpp. All you need to do is keep the ip-to-country.csv file up-to-date for most accurate results. Updates are here from the http://ip-to-country.webhosting.info/ site.
From version 2.0b the IP to Country code has been used to add country fields to the IP Filter dialog and to tooltips in downloads, uploading, downloading, on queue, known clients lists and server lists. In client lists, if the country cannot be identified the first 3 octets of the client's IP address will be displayed to allow you to look-up the country.
Additional code tagged in the source code [ADIP2C]
Back to top of page
Don't remove static servers option:
This option in Options->Servers will prevent static servers being removed if they are "dead".
Back to top of page
Don't log filtered messages
An option in Options->Extended->Disable Filtered Message logging; use verbose log instead if enabled
When selected filtered messages will not be logged in the log and will be logged in the verbose log when verbose logging is enabled.
Back to top of page
Enhanced Client Recognition:
Identifies and displays the names and versions of additional clients. Recognizes every Shareaza and MLdonkey. Recognize eMule+, Hydranode and TrustyFiles.
Back to top of page
Faster re-ask for MLDonkey clients:
Reciprocal Faster re-ask for queue less MLDonkey clients. Increases your chance of getting something from them.
Back to top of page
Client mod version display:
The Mod version of any of known clients is now displayed in the 'Known clients' and 'Downloading' windows. It is also an added field in the 'Client details' dialog.
Back to top of page
Highlight Search entries with mismatched extensions:
When searching if filenames are returned with mismatched 3 char extensions e.g.: eicar.com & eicar.txt (being the same file). This file Will be highlighted as this may sometimes be a clue to an invalid file.
Back to top of page
Stats Colour(color) reset button:
In options->statistics you can alter all of the graphs colours, but if you mess up how do you get it all back to default? In the TK4 Mod version you just click the 'reset' button then click apply, two clicks so you can accidentally click 'reset' and wipe out all of your work. I have also grouped the three 'color' tools together.
Back to top of page
Redesigned Client Details dialog:
The Client Details dialog now has a clearer,(IMHO) layout and has five graphic icons on the left hand side, the user icon will change to friend icon if the client is a friend, below is the country flag if IP2Country is in use. The network icon will change to show five different connection possibilities, of these the yellow arrows of course indicate a client with LowID,(replacing the HighID/LowID of the standard dialog). The Transfer icon has four states indicating uploading/downloading and different colours indicating obfuscated connection . The info icon is just static.
Back to top of page
Display files never seen complete as red in downloads list:
Displays files never seen complete in red text in downloads list, so you can see files that may never complete.
Back to top of page
Display non-trival files with excessive compression as purple in downloads list:
An Anti-fake measure, which displays files that have very high compress gain and are not small with purple text in downloads list. Because real non-trivial files are very unlikely to exhibit massive compression gains, but say, a 1Gb file containing nothing but zeros will transfer very quickly due to compression. If you don't spot such a file you become another complete source for this fake file, making the fake look more 'real' to people serching for the real file it's pretending to be.
Back to top of page
Warn & prompt on deletion of possibly rare completed files:
Gives an additional per file warning if you are trying to delete a completed file which has been shared for more than 24 hours, has a low number of complete sources and a resonable number of requests.
Back to top of page
Statistics, use old style graphs option:
The code for this option already exists in the standard eMule, I just enabled it. Allows you to use the old style statistics Oscopes or the new 48A style, default is new.
Back to top of page
Incidentals:
Session time shown in Shared files statistics.
Update Server list from clients default changed to false. Due to the rise in fake servers.
Fix to prevent filename cleanup mangling DVD video filenames.
Back to top of page
Code changes and improvements.
Code changes not related to features, eMule bug fixes or changes for increased efficiency etc are listed in a brief technical manner in the accompanying TK4_Mod_Changelog.htm.
Thank you for reading...
The TK4 Mod is brought to you by bluesonicboy of the unstoppable TK4.