ModernUO/Projects/UOContent/Items/Special
Kamron Batman 4cd668ef61
feat: Moves TcpServer to another thread. Rewrites Firewall (#1660)
## Breaking Changes
* The Firewall and IP Limiter have been rewritten. Please read the notes carefully!
* `TcpServer.Instances` moved back to `NetState.Instances` - sorry - it was stupid to move it to begin with.

> [!Note]
> Sockets that fail the IP Limiter or Firewall will be immediately and forcibly disconnected.
> This means they will be stuck at "Verifying account..." if it was a real client.

### Summary
- Removes firewall wildcard support.
- Removes `AccessRestrictions`.
- Moves Firewall/IPLimiter to the core.
- Moves `TcpServer` to its own thread.
- Removes the `SocketConnect` and `SocketDisconnect` event sinks.
- Moves `Instances` back to `NetState.Instances`.
- Fixes a long standing bug with bad handling of duplicate listener addresses.

#### Firewall
The firewall has been completely rewritten. There is now an "Admin Firewall" which saves to the config file. Secondarily, there is an internal firewall used exclusively by the TcpServer while processing sockets. The Admin firewall mirrors it's additions/deletions to the internal firewall by adding requests to a queue.

> [!IMPORTANT]  
> **Wildcard firewall entries, such as `X`, `*`, `?` are not allowed.**
> **Ranges in between IP classes or sextets are not allowed.**
> **Please make sure to use one of the following:**
> * IP Address - `192.168.1.1`
> * CIDR - `192.168.1.0/24`
> * Range - `192.168.1.1-192.168.1.100`

#### IP Limiter
The IP Limiter has been completely rewritten. The available configurations are:
```json
"ipLimiter.enable": "True",
"ipLimiter.maxConnectionsPerIP": 10,
"ipLimiter.clearConnectionAttemptsDuration": "00:00:00:10",
"ipLimiter.clearThrottledDuration": "00:00:02:00",
```

The IP Limiter is set up to prevent spamming connections from the same IP. Every time an IP connects, it is added to a connection list. After 10 attempts, the IP is added to the throttle list. To keep the system fast, the connection list is entirely wiped every 10 seconds, and the throttle list is entirely wiped every 2 minutes.
2024-01-20 14:25:12 -08:00
..
8th Anniversary Items fix: Codegens promo items (#1355) 2023-02-26 00:48:27 -08:00
11th Year promo fix: Codegens promo items (#1355) 2023-02-26 00:48:27 -08:00
AoS Promotional fix: Codegens promo items (#1355) 2023-02-26 00:48:27 -08:00
Broken Furniture Collection fix: Fixes broken chair (#1356) 2023-02-27 09:01:50 -08:00
Bulk Order Rewards/Blacksmithy fix: Codegens BOD rewards. (#1361) 2023-03-06 19:01:14 -08:00
Community Collection fix: Codegens BOD rewards. (#1361) 2023-03-06 19:01:14 -08:00
Evil Home Decor Collection fix: Codegens evil decor. Fixes trash items (#1362) 2023-03-06 19:28:58 -08:00
Gifts fix: Codegens gifts (#1363) 2023-03-07 21:07:45 -08:00
Heritage Items fix: Fixes scales, heritage items, and codegens holiday items (#1365) 2023-03-07 22:38:35 -08:00
Holiday fix: Fixes scales, heritage items, and codegens holiday items (#1365) 2023-03-07 22:38:35 -08:00
House Raffle feat: Moves TcpServer to another thread. Rewrites Firewall (#1660) 2024-01-20 14:25:12 -08:00
ML fix: Codegens mutation core (#1370) 2023-03-11 17:33:31 -08:00
Mutation Core fix: Fixes serialization and dirty tracking conveniences (#1627) 2023-12-03 15:55:31 -08:00
Rares fix: Codegens rares and solen items (#1371) 2023-03-11 19:25:48 -08:00
Solen Items fix: Fixes hues for Bags of Sending (#1654) 2024-01-06 08:50:36 -08:00
Special Scrolls fix: Fixes special scrolls (#1373) 2023-03-12 13:47:12 -07:00
Valentines/2007 fix: Fixes veteran rewards (#1374) 2023-03-12 17:28:51 -07:00
Veteran Rewards fix: Codegens rest of special items (#1467) 2023-08-23 20:02:46 -07:00
HeritageToken.cs fix: Codegens rest of special items (#1467) 2023-08-23 20:02:46 -07:00
MiniHouses.cs fix: Fixes serialization and dirty tracking conveniences (#1627) 2023-12-03 15:55:31 -08:00
MonsterStatuette.cs fix: Codegens rest of special items (#1467) 2023-08-23 20:02:46 -07:00
RewardCake.cs fix: Codegens rest of special items (#1467) 2023-08-23 20:02:46 -07:00
SoulStone.cs fix: Codegens rest of special items (#1467) 2023-08-23 20:02:46 -07:00