My suggestion is that a new opcode 'OP_MODEXTENSION' is created where modders can register sub-opcodes under, via the eMule devs. The same also goes for tags; a new tag 'ET_MODFEATURES' should be created and a modder registers one or a set bits.
The benefit of this would be better control of what tags are used and reduce the waste and overhead.
As for myself I would like to register the following;
Quote
Feature flags:
ETMODF_UNSOLICITEDPARTSTATUS
Tell client we accept and can make use of OP_PARTSTATUS messages sent at any time for files we are asking for or that the client asks from us. Can be used to tell a source that we are now also a complete source and can be spread via source exchange. Note! Clients supporting this tag is not allowed to forget part-status information when going A4AF. (Will post full spec. if accepted)
ETMODF_SUBCHUNKTRANSFER
Tell client we support and understand AICH sized sub-part maps (OPMOD_SUBCHUNKMAPS) for incomplete blocks, being sent to us.
OP-codes:
OPMOD_SUBCHUNKMAPS
Used to send small sets (upto 5 parts) of AICH sized sub-part maps, for incomplete blocks, when the client doesn't need any of our complete blocks. There will be certain quarantine times before blocks will published to a client this way in order to avoid unnecessary overhead and spreading of possibly corrupt data.
ETMODF_UNSOLICITEDPARTSTATUS
Tell client we accept and can make use of OP_PARTSTATUS messages sent at any time for files we are asking for or that the client asks from us. Can be used to tell a source that we are now also a complete source and can be spread via source exchange. Note! Clients supporting this tag is not allowed to forget part-status information when going A4AF. (Will post full spec. if accepted)
ETMODF_SUBCHUNKTRANSFER
Tell client we support and understand AICH sized sub-part maps (OPMOD_SUBCHUNKMAPS) for incomplete blocks, being sent to us.
OP-codes:
OPMOD_SUBCHUNKMAPS
Used to send small sets (upto 5 parts) of AICH sized sub-part maps, for incomplete blocks, when the client doesn't need any of our complete blocks. There will be certain quarantine times before blocks will published to a client this way in order to avoid unnecessary overhead and spreading of possibly corrupt data.
Regards,
netfinity