Hub (server) for Direct Connect
This protocol extension is used by client when he connect to hub with IPv6 and it is supporting IPv4.
Client sending in $Supports IPv4 and hub will check his IPv4 connection availability.
Hub must get client IPv4 address to be able to check if client is sending correct IPv4 address in commands, without checking will be DDOS possible as in old dark dc times when hubs don't check IP in ConnectToMe.
When check for IPv4 success then hub will enable IPv4 bit in client $MyINFO (see IP64 extension for details) and client is allowed to use active mode as normal IPv4 client.
Example how it works in CzDC and PtokaX:
Hub: [[::1]:411] « $Lock EXTENDEDPROTOCOLK<HaR:i@^9Ehud<Nr5JG`iuyQbYws6 Pk=PtokaX|
Hub: [[::1]:411] » $Supports UserCommand NoGetINFO NoHello UserIP2 QuickList ZPipe IP64 IPv4|
Hub: [[::1]:411] « $Supports QuickList IP64 IPv4|
Hub: [[::1]:411] » $MyINFO $ALL PPK $ $Cable;$$0$|
Hub: [[::1]:411] » $GetNickList|
Hub: [[::1]:411] « $ConnectToMe PPK 127.0.0.1:1209|
Client: [127.0.0.1:1209] » $MyNick PPK|
Two last lines is IPv4 support in action.
Hub requested IPv4 connection from client, client connected and send his nick using normal client to client connection.
After that hub disconnected that IPv4 connection, address was checked and that is all what hub need.