[Top] / [eMule] / [light] / [0.29c Light.3]

MetMedic
eMule cleanup
eMule Light

0.29a Light.2
0.29b Light.3
0.29c Light.6

0.29c Light.1
0.29c Light.2
0.29c Light.3
0.29c Light.4
0.29c Light.5
0.29c Light.6
0.29c Light.7

0.29c Light.3 - File Comment protocol removal

[2003-07-22 17:00]

Light.3 is based on Light.2

The main point in this release is:
File Comments protocol is removed. This means that the client doesn't send nor does it handle ET_COMMENT tag. In mule info packet it doesn't include comment support tag, so hopefully no other client tries to send comments. Also, when it receives comment support tag, it lets it pass through unhandled.

So I guess I'll look into ZZUL. Of course promises subject to my whims, so if something more interesting comes my way, these might not happen next.


User documentation:

How to switch from another client to this mod?

Simple: download the executable, put that to your eMule application directory, and run it. You can rename it to emule.exe if you want to.

IMPORTANT!

As Light removes features, it also removes respective preferences options. It does not read nor write to preferences.ini the options it has removed. Therefore, if you decide to switch to official client or another mod from Light, the options that weren't used by Light will revert to default values.

Features added:

Known files list is checked for duplicate when a file is added to shared files list. Duplicated files' stats are merged, and the duplicate entries removed. Originally from eMule 0.29a[SF-VQB]-v0.33 (Tag: "SLUGFILLER: mergeKnown").

Packet refragmentation was removed, hopefully providing better upload performance. Originally from eMule 0.29a[SF-VQB]-v0.33 (Tag: "SLUGFILLER: noRefrag"). FIXED in 29c-Light.2

Multiple instances are supported. This is a dangerous feature, as no checkes are added to lock and/or synchronise eg. file access. This is useful if you want to run multiple clients from separate install dirs, with separate temp/incoming dirs. Shared files directories can be shared. If it crashes and corrupts your harddrive, it's not my problem. I do use multiple clients all the time, and needed this badly. (define: WITH_MULTIPLE_INSTANCES)

Multiple instances client no longer registers, responds to, or sends "AreYouEmule" message. This means that it can't take ED2k links, except (for now still) via clipboard or search-screen ed2k-linkbox. Removed ED2k-links button from General Preferences and "Take links only during runtime" checkbox from Extended Preferences. Removed related preferences items and resources, too. Run single-instance client instead for download purposes - I definitely will continue removing download-related features from multiple instances version.

Multiple instances client now create mutex named by it's application directory. This means that You shouldn't be able to run multiple multiple instances clients from one directory, and that it doesn't interfere with running single-instance clients using the same GUID.

Features removed:

Webserver (define: WITH_WEBSERVER)

Scheduler (define: WITH_SCHEDULER)

IP Filtering (define: WITH_IPFILTER)

Webservices (links & webservices menu items) (define: WITH_WEBSERVICES)

Preview, Archive recovery and open file in shared files list (define: WITH_PREVIEW)

Splash-screen (define: WITH_SPLASH)

About-box and menuitem (define: WITH_CREDITS)

IRC client (define: WITH_IRC)

First run / Connection Wizard (define: WITH_WIZARD)

Clipboard watching (define: WITH_WATCH_CLIPBOARD). Undefined only in WITH_MULTIPLE_INSTANCES build. It's still useful for single instance clients.

Version check (define: WITH_VERSIONCHECK). Undefined only in WITH_MULTIPLE_INSTANCES build. It's still useful for single instance clients.

File Comments (define: WITH_FILE_COMMENTS). Actually consists of three separate parts: UI (define: WITH_FILE_COMMENTS_UI), Engine (define: WITH_FILE_COMMENTS_ENGINE), and Protocol (define: WITH_FILE_COMMENTS_PROTOCOL).

Developer documentation:

All defines are found in config.h. Using normal eMule Debug/Release build configurations the configuration is as per standard mule, excepting the features I borrowed from SF-VQB (which I consider highly desireable, not excludable). Additional build configurations are Debug Light, Release Light, Release Light MC and Release Light IPF. Debug Light/Release Light build configurations exclude all features. Release Light MC includes multiple instances in addition, and Release Light IPF includes IP Filtering while excluding the rest.

Such resources that were removed using compile time directives have been moved to their own resource files, included into emule.rc using normal resource include directives but wrapped within #ifdef ... #endif to only include it in build configurations where it's needed. It's important to put compile time directives not just in build configuration's compiling options, but also in resource tool options, so that correct resources are used.

Where only parts of a dialog were removed using compile time directives, those dialogs were moved to res/emule.rc2, which is not editable using APS. I regret this, but didn't see other good ways to remove just single buttons or labels from dialog using compile time directives. Respective resource identifier symbols were moved from resource.h to emule_rc2.h.

Rest of the documentation you can find from cleanup-tree. It's not much, but the changes aren't really that big.