Secure connection to NMDC hub (nmdcs://)

Asked by RoLex

Does DC++ still not support secure connection to NMDC hubs via nmdcs:// URI? All other clients have support for this.

Question information

Language:
English Edit question
Status:
Solved
For:
DC++ Edit question
Assignee:
No assignee Edit question
Solved by:
RoLex
Solved:
Last query:
Last reply:
Revision history for this message
eMTee (realprogger) said :
#1

No and it has never been an objective to do so since ADC has developed into a working shape. NMDC is considered legacy and the related code have had minimal to no changes in the last 10+ years.

Revision history for this message
RoLex (hundrambit) said :
#2

Mmm. What about majority of all users and hubs still using NMDC protocol? Anyway, I'm not going to argue about NMDC vs ADC, this question remains since the beginning of everything and most developers say no more than "use ADC" - like you just did.

Back to my question. The point of creating such encrypted traffic between a client and a hub is to avoid getting filtered by ISP, which is a huge problem today. If you are interested in keeping DC alive, then such a small change would help thousands of users worldwide. DC++ is after all client #2 by amount of users.

Revision history for this message
eMTee (realprogger) said :
#3

DC++, been a hobby porject of its author and lead developers, had sometimes went against the userbase's will with adding, removing or omitting features. ADC is developed by the most prominent people worked on DC++, they made it for the community to have a secure DC then it's not surprise they didn't want to fiddle with the legacy stuff.
But the real problem is not that, but the fact that these people aren't working on DC++ anymore. DC++ is stalling, rather dead development wise. Even there would be a will to add nmdcs, there aren't any active people with the project anymore who have the time, determination and/or capability to add a feature of this magnitude.
There may be security or small bug fixes in the future but I don't see DC++ getting any significant new features unless someone with the capability level, will, vision or determination of the original author or the few significant lead devs worked on DC++ along the way taking over the project.

Revision history for this message
RoLex (hundrambit) said :
#4

Yes, I noticed that with lower interest with each year passing.

So maybe I could help the project. I'm still having trouble compiling DC++ though. Looking mostly at alternative compilers, Microsoft Visual Studio specifically. The compilation steps written @ https://dcplusplus.sourceforge.io/webhelp/compile.html are for MSVS 2013, which is no longer supported. I use version 2019, so the manual doesn't work really. Could you/someone provide more recent information about building with new compiler and components?

Revision history for this message
eMTee (realprogger) said :
#5

The people remaining with the project don't use MSVC so this would be one of the many tasks for the one who fits the criteria of being the leading dev of DC++, should he want to use MSVC himself.

Revision history for this message
RoLex (hundrambit) said :
#6

 @ eMTee

I didn't mean that developers must use MSVS for compilation. I only need this in order to test my own code. Once it is done, DC++ can be compiled how ever you like.

According to Compile.txt this is possible. So can anyone please help me?

Revision history for this message
RoLex (hundrambit) said :
#7

Nevermind, after several hours I managed to do this. Few MinGW (both 32 and 64 bit) executables has to be renamed in order to compile OpenSSL. Also SCons needs to be downgraded to version 3, else all configuration scripts are incompatible.

Revision history for this message
RoLex (hundrambit) said :
#8

NMDCS is now implemented in DC++. What's next, patch?

Revision history for this message
RoLex (hundrambit) said :
#9
Revision history for this message
RoLex (hundrambit) said :
#10

And one more for secure hub address detection on public hublist XML (currently supported by Team Elite hublist): https://github.com/RoLex/dcpp/commit/ec88e91991440ed8624ddcec7d444d64b29010af

Revision history for this message
RoLex (hundrambit) said :
#11

And finally secure client to client connections: https://github.com/RoLex/dcpp/commit/504e97409d97ba9f5b17620496a6332eb885145d

To mention about TLS 1.0 vs 1.3 incompatibility. I recently added filtering for such connections in Verlihub, and PtokaX already disables C-C TLS in any case. So this functionality if safe to go, if we don't consider very old clients, which are being notified about upgrading/replacing their client (atleast in Verlihub).