Currently I made one breaking change that IMO cannot be prevented without
tons of workaround code.
That is type change of TCustomWSocket public field/property "sin" from
TSockAddrIn to TSockAddrIn6. TSockAddrIn6 can be passed to all old
functions by typ casting it to TSockAddrIn and passing the size of TSockAddrIn. However if anybody has an idea how to easily avoid this breaking change please
let me know.

Keep the current property as it is and use it for anything related to IPv4.
Create a new property sin6 : TSockAddrIn6 and use if for IPv6.

Anyone recompiling an existing program with IPv4 will have no change to do in his code. Anyone willing to support IPv6 will have to do some changes, including this one.

Instead of creating two variables, maybe only create one, the one being the largest. Then map the properties sin and sin6 to the same location using getter and setter. Propably the variable could be a variant record with both types to makes the code clearer because this would remove most typecasts.

The author of the freeware multi-tier middleware MidWare
The author of the freeware Internet Component Suite (ICS)

To unsubscribe or change your settings for TWSocket mailing list
please goto
Visit our website at

Reply via email to