Skip to content

Improve NAT logging#21611

Merged
Mailaender merged 2 commits intoOpenRA:bleedfrom
MasterMind2k:improve-nat-logging
Oct 7, 2024
Merged

Improve NAT logging#21611
Mailaender merged 2 commits intoOpenRA:bleedfrom
MasterMind2k:improve-nat-logging

Conversation

@MasterMind2k
Copy link
Copy Markdown
Contributor

@MasterMind2k MasterMind2k commented Oct 4, 2024

Ordinary people usually do not run game from terminal. If an NAT error occurs, user does not see the root cause from logs. Unfortunately, stack traces do not report the issue of failure.

If change is worthy of mentioning, I would add following ChangeLog entry under General improvements:

  • Improve NAT troubleshooting log messages

Log before change:

Device found: 192.168.1.1:2828
Type: Upnp
   at Mono.Nat.Upnp.ResponseMessage.Decode(UpnpNatDevice device, String message)
   at Mono.Nat.Upnp.UpnpNatDevice.DecodeMessageFromResponse(Stream s, Int32 length)
   at Mono.Nat.Upnp.UpnpNatDevice.SendMessageAsync(RequestMessage message)
   at Mono.Nat.Upnp.UpnpNatDevice.CreatePortMapAsync(Mapping mapping)
   at Mono.Nat.NatDeviceExtensions.CreatePortMap(INatDevice device, Mapping mapping)
   at OpenRA.Network.Nat.TryForwardPort(Int32 listen, Int32 external) in /home/mastermind/Apps/OpenRA/OpenRA.Game/Network/Nat.cs:line 70
   at Mono.Nat.Upnp.ResponseMessage.Decode(UpnpNatDevice device, String message)
   at Mono.Nat.Upnp.UpnpNatDevice.DecodeMessageFromResponse(Stream s, Int32 length)
   at Mono.Nat.Upnp.UpnpNatDevice.SendMessageAsync(RequestMessage message)
   at Mono.Nat.Upnp.UpnpNatDevice.DeletePortMapAsync(Mapping mapping)
   at Mono.Nat.NatDeviceExtensions.DeletePortMap(INatDevice device, Mapping mapping)
   at OpenRA.Network.Nat.TryRemovePortForward() in /home/mastermind/Apps/OpenRA/OpenRA.Game/Network/Nat.cs:line 89

Log after change:

Device found: 192.168.1.1:2828
Type: Upnp
Port forwarding failed: Error 725: OnlyPermanentLeasesSupported
   at Mono.Nat.Upnp.ResponseMessage.Decode(UpnpNatDevice device, String message)
   at Mono.Nat.Upnp.UpnpNatDevice.DecodeMessageFromResponse(Stream s, Int32 length)
   at Mono.Nat.Upnp.UpnpNatDevice.SendMessageAsync(RequestMessage message)
   at Mono.Nat.Upnp.UpnpNatDevice.CreatePortMapAsync(Mapping mapping)
   at Mono.Nat.NatDeviceExtensions.CreatePortMap(INatDevice device, Mapping mapping)
   at OpenRA.Network.Nat.TryForwardPort(Int32 listen, Int32 external) in /home/mastermind/Apps/OpenRA/OpenRA.Game/Network/Nat.cs:line 70
Port removal failed: Error 714: NoSuchEntryInArray
   at Mono.Nat.Upnp.ResponseMessage.Decode(UpnpNatDevice device, String message)
   at Mono.Nat.Upnp.UpnpNatDevice.DecodeMessageFromResponse(Stream s, Int32 length)
   at Mono.Nat.Upnp.UpnpNatDevice.SendMessageAsync(RequestMessage message)
   at Mono.Nat.Upnp.UpnpNatDevice.DeletePortMapAsync(Mapping mapping)
   at Mono.Nat.NatDeviceExtensions.DeletePortMap(INatDevice device, Mapping mapping)
   at OpenRA.Network.Nat.TryRemovePortForward() in /home/mastermind/Apps/OpenRA/OpenRA.Game/Network/Nat.cs:line 89

@MasterMind2k
Copy link
Copy Markdown
Contributor Author

Pull request improves visibility of underlying NAT problems as reported in #21610

MasterMind2k and others added 2 commits October 7, 2024 20:29
Ordinary people usually do not run game from terminal. If an NAT error
occurs, user does not see the root cause from logs. Unfortunately, stack
traces do not report the issue of failure.
Co-authored-by: Matthias Mailänder <Mailaender@users.noreply.github.com>
@Mailaender Mailaender merged commit 6dd076b into OpenRA:bleed Oct 7, 2024
@Mailaender
Copy link
Copy Markdown
Member

Changelog

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants