18.104.22.168 Receiving a TopologyClientRequest
When receiving a TopologyClientRequest (section 2.2.2) packet, the protocol MUST perform the following steps:
If the length of the data packet received is less than the length of a TopologyClientRequest packet, including the IPXNetworkCount field and at least one IPXNetworkNumberArray field entry, the TopologyClientRequest packet's IPXNetworkCount and IPXNetworkNumberArray fields are considered as not present and MUST be ignored.
The protocol MUST create a new TopologyServerReply (section 2.2.3) packet.
The protocol MUST set the TopologyServerReply.CorrelationID field to the TopologyClientRequest.RequestID field.
The protocol MUST copy all elements of LocalQueueManager.ConnectedNetworkIdentifierList to the TopologyServerReply.ConnectedNetworkArray field and MUST set the TopologyServerReply.ConnectedNetworkCount field to the number of entries in the TopologyServerReply.ConnectedNetworkArray field.
If the TopologyClientRequest received is an IP packet, the protocol MUST set the TopologyServerReply.ConnectedNetworkMask field to 0x00000000.
If the TopologyClientRequest received is an IPX packet, the protocol MUST set an individual bit of the TopologyServerReply.ConnectedNetworkMask field to 1 for every entry that is placed in the TopologyServerReply.ConnectedNetworkArray field. The number of bits set to 1 MUST be equal to the value of the TopologyServerReply.ConnectedNetworkCount field.
If Site.Identifier equals the TopologyClientRequest.SiteID field, the protocol MUST set the TopologyServerReply.DirectoryServiceServerSize field to 0x00000000. The protocol MUST NOT set the TopologyServerReply.RespondingSiteID field or the TopologyServerReply.DirectoryServiceServerArray field.
If Site.Identifier does not equal the TopologyClientRequest.SiteID field, the protocol MUST set the TopologyServerReply.RespondingSiteID field to Site.Identifier, MUST copy all entries of LocalQueueManager.DirectoryServerList to the TopologyServerReply.DirectoryServiceServerArray field and MUST set the TopologyServerReply.DirectoryServiceServerSize field to the number of bytes contained in the TopologyServerReply.DirectoryServiceServerArray field.
The protocol MUST send the TopologyServerReply packet to the sender of the TopologyClientRequest packet.