fix(core): Adds IPv6 support (#348)

## Breaking Change
* IP Matching no longer supports `?` (e.g. you cannot do: "192.16?.0.1")
* IP Matching no longer supports `*` and other values in the same section (e.g. you cannot do "192.1\*.0.1")
  * To do "192.1\*.0.1", you should use the range option with three separate entries: "192.100-199.0.1", "192.1.0.1", "192.10-19.0.1"

## Non-Breaking Changes
- [X] Adds IPv6 support (not for servers though, just clients)
- [X] Adds interning support for IPv4 mapped to IPv6
- [X] Updates IPv4ToAddress (don't use this unless you know it is IPv4 or IPv4 mapped to IPv6)

## Note:
UO Does not support IPv6 for the server. To support an IPv6 server IP you will need to use CUO or some kind of custom client and probably modify it accordingly.

Bumps release version
This commit is contained in:
Kamron Batman 2020-12-19 00:27:39 -08:00 committed by GitHub
parent baf724ead8
commit 92aae8d482
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 527 additions and 342 deletions

View file

@ -338,7 +338,8 @@ namespace Server.Tests.Network
Stream.WriteAsciiFixed(si.Name, 32);
Stream.Write((byte)si.FullPercent);
Stream.Write((sbyte)si.TimeZone);
Stream.Write(Utility.GetAddressValue(si.Address.Address));
// UO Doesn't support IPv6
Stream.Write(si.RawAddress);
}
}
}
@ -347,7 +348,7 @@ namespace Server.Tests.Network
{
public PlayServerAck(ServerInfo si, int authId) : base(0x8C, 11)
{
var addr = Utility.GetAddressValue(si.Address.Address);
var addr = si.RawAddress;
Stream.Write((byte)addr);
Stream.Write((byte)(addr >> 8));