Win10 MiniUPnP works, but fails after ~24 hours

Asked by Chaz Antonelli on 2017-07-07

Forgive me if this has been asked elsewhere and I couldn't find it, but recently I migrated to Windows 10 for the server running my DC++ instance and I've run into an interesting situation:

I allow DC++ to utilise MiniUPnP to set up port-forwarding on my router and auto-config. I've verified that this works and upon start-up I can search and get results and people can download from me just fine.

After about 24 hours passes, my ability to search stops --- it will show a blank search screen and never populate with anything (even obvious searches like "the"). In addition, although files are being uploaded to others, it seems new requests are ignored? I've had at least one complaint from someone about this. I check the router and the port forwarding and DC++ settings match.

If I shut down DC++ and restart it, following a set of fresh ports, the problem vanishes for another ~24 hours.

So... I either need to know what's wrong, or how to set up DC++ to restart every 24 hours on it's own.

I am running the latest version of DC++ and Windows 10 (64 Pro).

Any useful advice is welcomed.

Question information

Language:
English Edit question
Status:
Solved
For:
DC++ Edit question
Assignee:
No assignee Edit question
Solved by:
poy
Solved:
2017-07-20
Last query:
2017-07-20
Last reply:
2017-07-20
eMTee (realprogger) said : #1

It's most probably either your local or external IP address is changing in every 24 hours for some reason. The Troubleshooting part of the port forwarding FAQ in the DC++ built-in help can give you explanations and ideas how to solve this. An online version is available here: http://dcplusplus.sourceforge.net/webhelp/faq_portforward.html

Chaz Antonelli (mc4bbs) said : #2

My external address only changes about once every three years. I track it closely.

Chaz Antonelli (mc4bbs) said : #3

Okay -- there's been no answer. If this problem continues, I'll stop running DC++ and let people go without my huge library... after all, I have an FTP server they can use instead! I'm quite frustrated with this.

poy (poy) said : #4

would be interesting to know whether Win 10 is the issue: could you try running the program in Win 7 compatibility mode?

also, do you have access to an admin interface on your router? usually routers provide one such interface, where one can see current UPnP leases. I would check there when UPnP leases are set to expire, or maybe empty the list if it is overflowing (I've had that with one router...).

another thing to try: the next time this happens, instead of completely restarting DC++, simply open settings > connectivity tab > click on "Detect now". this should remove previous UPnP mappings and create new ones. when you do this, can you paste the log here (View > System log)?

Chaz Antonelli (mc4bbs) said : #5

I have been experimenting with the information you provided.

I have run in normal Win10, but as Administrator (no effect)
I have run in Win7 compatibility mode (no effect)

I started exploring the UPnP leases -- finding it odd that they might time out -- then I saw it...

The standard "Transfers" port was there, but the "Encrypted transfers" and "Search" transfers were no longer there!

I performed the "Detect now" function and _presto_ the new UPnP port forwarding was there and working -- I could search again, and others could download from me without issue.

So, it appears I will need to put PERMANENT port forward instructions in the router as well as in DC++, rather than allowing DC++ to configure itself. Perhaps this is a "keep-alive" issue? Some people could still download from me even with the other two ports released, but others would complain that they could see my directory but not download (perhaps the encrypted channel!)

What do you advise at this point? Go with a manual configuration or request a keep-alive "ping" be sent on all three channels one an hour to prevent releasing the UPnP leases in the next version of DC++?

Thanks for steering me in the right direction!

Best poy (poy) said : #6

if you can configure manual port forwarding on your router, go ahead; I definitely prefer it over UPnP.

UPnP mappings DC++ asks for are supposed to be infinite (no explicit lease duration), but to work around problems such as this one, regular renewal could certainly be thought of. it is in fact the advice of the miniupnp author (see linked bug report).

to answer your other questions: port mappings only help initiate connections; once they have been established, a port mapping being removed won't stop ongoing connections.

Chaz Antonelli (mc4bbs) said : #7

I have manually configured DC++ and set up appropriate Port Forwarding on my router (non UPnP).

24 hours later, I can still search and everything appears to be functioning normally.

Considering the advice of the miniupnp author, I think a change to DC++ would be in order to prevent this issue in the future for others who might not have the technical skills (or admin access) to set up Port Forwarding manually.

I shall mark this as solved and I thank you for your diligence with this issue.

Chaz Antonelli (mc4bbs) said : #8

Thanks poy, that solved my question.