Documentation ¶
Index ¶
Constants ¶
View Source
const ( // ZIP packets FunctionQuery = 1 FunctionReply = 2 FunctionGetNetInfo = 5 FunctionGetNetInfoReply = 6 FunctionNotify = 7 FunctionExtendedReply = 8 // ATP packets FunctionGetMyZone = 7 FunctionGetZoneList = 8 FunctionGetLocalZones = 9 )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type GetNetInfoPacket ¶
type GetNetInfoPacket struct { // Destination socket = 6 // DDP type = 6 // --- // ZIP command = 5 // Flags = 0 (reserved) // Four more bytes of 0 (reserved) // Zone name length (1 byte) ZoneName string }
func UnmarshalGetNetInfoPacket ¶
func UnmarshalGetNetInfoPacket(data []byte) (*GetNetInfoPacket, error)
type GetNetInfoReplyPacket ¶
type GetNetInfoReplyPacket struct { // Source socket = 6 // DDP type = 6 // --- // ZIP command = 6 ZoneInvalid bool // 0x80 - "set if the zone name in the request is invalid for the network from which the request was sent" UseBroadcast bool // 0x40 - "set for data links that do not support multicast" OnlyOneZone bool // 0x20 - "set if the network's zone list contains only one zone name" // Remainder of flags reserved NetStart ddp.Network NetEnd ddp.Network // Zone name length (1 byte) ZoneName string // Multicast address length (1 byte) MulticastAddr ethernet.Addr // Only if ZoneInvalid flag is set: // Default zone length (1 byte) DefaultZoneName string }
func (*GetNetInfoReplyPacket) Marshal ¶
func (p *GetNetInfoReplyPacket) Marshal() ([]byte, error)
type GetZonesPacket ¶
type GetZonesPacket struct { // "These requests always ask for a single response packet." // TReq = 0b01000000 // Bitmap = 0b00000001 TID uint16 // --- ATP user bytes Function Function // 7, 8, or 9 // Pad uint8 = 0 StartIndex uint16 // always 0 for }
func UnmarshalTReq ¶
func UnmarshalTReq(treq *atp.TReq) (*GetZonesPacket, error)
func (*GetZonesPacket) MarshalTReq ¶
func (p *GetZonesPacket) MarshalTReq() (*atp.TReq, error)
type GetZonesReplyPacket ¶
type GetZonesReplyPacket struct { // TResp = 0b10000000 // Sequence = 0 TID uint16 // --- ATP user bytes LastFlag bool // not used for GetMyZone // Pad uint8 = 0 // ZoneCount uint16 // --- ATP data bytes Zones []string // length-prefixed }
func UnmarshalTResp ¶
func UnmarshalTResp(tresp *atp.TResp) (*GetZonesReplyPacket, error)
func (*GetZonesReplyPacket) MarshalTResp ¶
func (p *GetZonesReplyPacket) MarshalTResp() (*atp.TResp, error)
type QueryPacket ¶
func UnmarshalQueryPacket ¶
func UnmarshalQueryPacket(data []byte) (*QueryPacket, error)
func (*QueryPacket) Marshal ¶
func (p *QueryPacket) Marshal() ([]byte, error)
type ReplyPacket ¶
type ReplyPacket struct { // Function = 2 or 8 Extended bool NetworkCount uint8 // "Replies contain the number of zones lists indicated in the Reply header" // and // "Extended Replies can contain only one zones list. ... // (the network numbers in each pair will all be the same in an Extended // Reply). The network count in the header indicates, not the number of zone // names in the packet, but the number of zone names in the entire zones // list for the requested network, which may span more than one packet." // and // "Note: Extended ZIP Replies may also be used for responding to ZIP // queries with zones lists that all fit in one Reply packet. In this case, // the network count will be equal to the number of zone names in the // packet" Networks map[ddp.Network][]string }
func UnmarshalReplyPacket ¶
func UnmarshalReplyPacket(data []byte) (*ReplyPacket, error)
func (*ReplyPacket) Marshal ¶
func (p *ReplyPacket) Marshal() ([]byte, error)
Click to show internal directories.
Click to hide internal directories.