Skip to content

Tags: avwarez/eMule

Tags

v0.72a-build-20260716-200239

Toggle v0.72a-build-20260716-200239's commit message
Bump mbedtls submodule from v4.0.0 to v4.2.0

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

v0.72a-build-20260716-132151

Toggle v0.72a-build-20260716-132151's commit message
CI: pin the release tag to the actual build commit, not the default b…

…ranch

The release job has no checkout step, so gh release create had no local
git context and, without an explicit --target, silently pointed the new
tag at the repo's default branch (master) instead of the v0.72a-build
commit that was actually built - master's one commit dates back to
2016-04-10, which is why the release's auto-generated "Source code"
archive showed that date instead of today's.

eMule_v0.70c_build8

Toggle eMule_v0.70c_build8's commit message
 Restore WSAAsyncSelect and parallelize upload disk reads (0.70.2.8)

  - AsyncSocketEx: revert the custom CSocketDispatchThread introduced in
    7eb5665. Its WSAEventSelect-based loop enumerated every socket on each
    event (100% CPU under load) and re-implemented machinery WSAAsyncSelect
    already provides reliably under Wine. Re-register sockets via
    WSAAsyncSelect directly, restoring O(1) per-event dispatch.
  - UploadDiskIOThread: add a 2-thread worker pool draining a shared queue;
    ReadFile remains synchronous and is invoked with an OVERLAPPED struct
    only to carry a per-call offset (handle stays without
    FILE_FLAG_OVERLAPPED, mapping to pread() on Wine). Concurrency lives in
    userspace, not in the kernel async path that 0.70c was avoiding.
  - UploadDiskIOThread: round-robin block collection across clients
    (StartCreateNextBlockPackage gains bSinglePass) so workers do not drain
    one client to zero before touching the others, preserving per-slot
    fairness.
  - UploadDiskIOThread: m_bSignalThrottler is now std::atomic<bool>;
    workers signal the throttler per-read and the coordinator does a
    defensive end-of-batch signal to close the last-read race window.
  - emule.vcxproj: add ZLIB_WINAPI to the remaining build configuration
    so zlib.h (stdcall) matches zlibwapi.lib across all targets.
  - Version bump to 0.70.2.8

eMule_v0.70c_build7

Toggle eMule_v0.70c_build7's commit message
 Fix thread-safety races in DNS/disk-I/O and enable Win32 Release bui…

…ld (0.70.2.7)

  - AsyncSocketEx: DnsChannel mutex eliminates TOCTOU on helper HWND;
    monotonic uint64 sentinel replaces reusable heap address
  - PartFileWriteThread / UploadDiskIOThread: dedicated m_bStop flag
    ends join() deadlock caused by worker overwriting m_Run
  - PartFileWriteThread: init m_Run=RUN_IDLE before thread start;
    AddFile() error path uses _SetStatus() (no cross-thread UI call);
    destructor guarded against std::terminate on joinable thread
  - UploadDiskIOThread: fix buffer-allocation leak via unique_ptr
  - KnownFile::nInUse made std::atomic<int> (racy decrement in
    ReadCompletionRoutine)
  - PartFileBufferedData::flushed made std::atomic<uint8_t> with
    proper initialising ctor
  - emule.vcxproj Release|Win32: fix lib paths to new ..\..\ layout
    and add ZLIB_WINAPI so zlib.h (stdcall) matches zlibwapi.lib
  - Version bump to 0.70.2.7

eMule_v0.70c_build6

Toggle eMule_v0.70c_build6's commit message
Revert "refactor(crypto): replace Crypto++ with mbedTLS and add MD4 i…

…mplementation"

This reverts commit cc24886.

eMule_v0.70c_build5

Toggle eMule_v0.70c_build5's commit message
 Fix threading, timer, Wine I/O and disk-full bugs (0.70.2.5)

  - AICHSyncThread: replace direct MFC UI calls with PostMessage (thread-safety)
  - CreditsThread: replace IOPL-0 VGA inline asm with Sleep(1) (Wine/x64 crash fix)
  - GDIThread: boost worker thread priority (not caller) and cap wait to 5 s
  - FrameGrabThread: RAII for bitmap array and COM init (leak on exception)
  - SetTimer: replace SetTimer(NULL,0,...) with explicit non-zero IDs throughout
    (EmuleDlg, ServerConnect, QueueListCtrl, UploadQueue) to prevent timer aliasing
  - ServerConnect: use GetTickCount64()/ULONGLONG map key to fix 49-day wraparound
  - PartFileWriteThread: replace OVERLAPPED writes with SetFilePointerEx+WriteFile;
    Wine ignores OVERLAPPED offset on sync handles, causing all chunks to land at
    offset 0 and corrupt the part file (hash check → PS_ERROR)
  - PartFileWriteThread: pre-allocate via m_hWrite/SetEndOfFile instead of
    cross-thread m_hpartfile.SetLength()
  - PartFile: proactive per-file disk-space check before SetLength using
    (m_nFileSize - cursize) so a single large download is paused before the disk
    fills; other downloads continue unaffected
  - PartFile: FlushBuffersExceptionHandler always pauses gracefully on diskFull
    instead of conditionally calling CheckDiskspace

eMule_v0.72a-community

Toggle eMule_v0.72a-community's commit message
Added ARM64 platform.

Updated some older code, fixed a number of issues and regressions.
Libraries: updated MbedTLS to version 4.0, removed CxImage and libpng.

eMule_v0.70b-community

Toggle eMule_v0.70b-community's commit message
Added TLS 1.3 support

PeerCache removed
Redesigned Options->Directories and UNC shares handling
A few minor changes and fixed regressions.

eMule_v0.70a-community

Toggle eMule_v0.70a-community's commit message
Using I/O completion ports for disk operations

Improve handling of UNC paths
Minor GUI enhancements

eMule_v0.60d-community

Toggle eMule_v0.60d-community's commit message
Fix crash in part file conversion

Compacted files might get unacked
Allow MediaInfo dll 21.09