Migration Guide : Migrating from Version 8.6.2 : Changed representation of socket address in OSSocketAddrInet and SciSocketAddress
Changed representation of socket address in OSSocketAddrInet and SciSocketAddress
Reason for change
Adding support for IPv6 in SocketCommunicationsInterface required changing the existing IPv4 socket address representation (an integer in host order) to one compatible (polymorphic) with the IPv6 socket address representation.
Change
OSSocketAddrInet now holds its socket address as a 4-byte ByteArray making it polymorphic with OSSocketAddrInet6 which holds its socket address as a 16-byte ByteArray. SciSocketAddress (since it can hold either an IPv4 or IPv6 socket address) also holds its socket address as a ByteArray.
To conform to the new address representation, the socket constant INADDRANY is changed from 0 to #[0 0 0 0] and the socket constant INADDRNONE is changed from 4294967295 to #[255 255 255 255].
Action required
Find all locations sending SciSocketAddress>>#address or OSSocketAddrInet>>#addr. These methods now return a 4-byte ByteArray for IPv4 addresses or a 16-byte ByteArray for IPv6 addresses. If you need the integer form of the IPv4 address, you can get it using aByteArray ntoh32At: 0.
 
Find all references to INADDRANY and INADDRNONE. Verify that the usage is valid for addresses represented as ByteArrays.
Last modified date: 07/01/2019