Remove Source Exchange v1 branches — deprecated protocol superseded by v2
Summary¶
Source Exchange v2 superseded v1 years ago. The old SX1 advertise, request,
response, and version-tracking branches have now been removed from the live
network path. main is SX2-only for source exchange, while local eD2K-link
source import is preserved via a dedicated non-network helper.
Key Locations¶
| File | Pattern |
|---|---|
srchybrid/BaseClient.cpp |
remove m_bySourceExchange1Ver tracking and stop advertising SX1 in hello/mule-info |
srchybrid/DownloadClient.cpp |
gate requests on SX2 only and always send OP_REQUESTSOURCES2 |
srchybrid/ListenSocket.cpp |
accept only OP_REQUESTSOURCES2 / OP_ANSWERSOURCES2 on the live network path |
srchybrid/KnownFile.cpp |
generate SX2-only source-response packets for shared files |
srchybrid/PartFile.cpp |
generate and parse SX2-only source-response packets for part files |
srchybrid/DownloadQueue.cpp |
keep eD2K-link source import via a dedicated legacy-format helper |
srchybrid/SourceExchangeSeams.h |
seam helpers for SX2 eligibility and response-packet planning |
srchybrid/UpdownClient.h |
remove the obsolete SX1 version member/getter |
Landed Behavior¶
- Hello / mule-info parsing no longer stores or reports SX1 version state.
- Source request eligibility depends on extended protocol plus SX2 support only.
- The live network path only sends/parses
OP_REQUESTSOURCES2andOP_ANSWERSOURCES2. - eD2K-link source import still accepts the old serialized source list via a dedicated helper.
Acceptance Criteria¶
- [x] No
m_bySourceExchange1Vermember or getter remains in client state. - [x] Live source exchange uses only SX2 opcodes and version handling.
- [x]
IsSourceRequestAllowed()gates on SX2 support only. - [x] Local eD2K-link source import still works without reintroducing SX1 on the network path.
- [x] Targeted source-exchange seam/flow coverage exists in
emulebb-build-tests.
Files¶
srchybrid/BaseClient.cppsrchybrid/DownloadClient.cppsrchybrid/DownloadQueue.cppsrchybrid/KnownFile.cppsrchybrid/ListenSocket.cppsrchybrid/PartFile.cppsrchybrid/PartFile.hsrchybrid/SourceExchangeSeams.hsrchybrid/UpdownClient.h