syncthing/discover/packets_xdr.go

313 lines
8.2 KiB
Go
Raw Normal View History

2014-07-13 07:24:25 +00:00
// Copyright (C) 2014 Jakob Borg and Contributors (see the CONTRIBUTORS file).
// All rights reserved. Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file.
// ************************************************************
// This file is automatically generated by genxdr. Do not edit.
// ************************************************************
2014-02-20 16:40:15 +00:00
package discover
import (
"bytes"
"io"
"github.com/calmh/syncthing/xdr"
)
2014-07-13 07:24:25 +00:00
/*
Query Structure:
2014-07-13 07:24:25 +00:00
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Magic |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length of Node ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
\ Node ID (variable length) \
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
struct Query {
2014-07-13 07:24:25 +00:00
unsigned int Magic;
opaque NodeID<32>;
}
*/
func (o Query) EncodeXDR(w io.Writer) (int, error) {
2014-02-20 16:40:15 +00:00
var xw = xdr.NewWriter(w)
return o.encodeXDR(xw)
}
func (o Query) MarshalXDR() []byte {
return o.AppendXDR(make([]byte, 0, 128))
}
func (o Query) AppendXDR(bs []byte) []byte {
var aw = xdr.AppendWriter(bs)
2014-06-30 11:33:52 +00:00
var xw = xdr.NewWriter(&aw)
2014-02-20 16:40:15 +00:00
o.encodeXDR(xw)
2014-06-30 11:33:52 +00:00
return []byte(aw)
2014-02-20 16:40:15 +00:00
}
func (o Query) encodeXDR(xw *xdr.Writer) (int, error) {
2014-02-20 16:40:15 +00:00
xw.WriteUint32(o.Magic)
if len(o.NodeID) > 32 {
2014-02-20 16:40:15 +00:00
return xw.Tot(), xdr.ErrElementSizeExceeded
}
xw.WriteBytes(o.NodeID)
2014-02-20 16:40:15 +00:00
return xw.Tot(), xw.Error()
}
func (o *Query) DecodeXDR(r io.Reader) error {
2014-02-20 16:40:15 +00:00
xr := xdr.NewReader(r)
return o.decodeXDR(xr)
}
func (o *Query) UnmarshalXDR(bs []byte) error {
2014-06-30 11:33:52 +00:00
var br = bytes.NewReader(bs)
var xr = xdr.NewReader(br)
2014-02-20 16:40:15 +00:00
return o.decodeXDR(xr)
}
func (o *Query) decodeXDR(xr *xdr.Reader) error {
2014-02-20 16:40:15 +00:00
o.Magic = xr.ReadUint32()
o.NodeID = xr.ReadBytesMax(32)
2014-02-20 16:40:15 +00:00
return xr.Error()
}
2014-07-13 07:24:25 +00:00
/*
Announce Structure:
2014-07-13 07:24:25 +00:00
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Magic |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Node |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of Extra |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
\ Zero or more Node Structures \
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
struct Announce {
2014-07-13 07:24:25 +00:00
unsigned int Magic;
Node This;
Node Extra<16>;
}
*/
func (o Announce) EncodeXDR(w io.Writer) (int, error) {
2014-02-20 16:40:15 +00:00
var xw = xdr.NewWriter(w)
return o.encodeXDR(xw)
}
func (o Announce) MarshalXDR() []byte {
return o.AppendXDR(make([]byte, 0, 128))
}
func (o Announce) AppendXDR(bs []byte) []byte {
var aw = xdr.AppendWriter(bs)
2014-06-30 11:33:52 +00:00
var xw = xdr.NewWriter(&aw)
2014-02-20 16:40:15 +00:00
o.encodeXDR(xw)
2014-06-30 11:33:52 +00:00
return []byte(aw)
2014-02-20 16:40:15 +00:00
}
func (o Announce) encodeXDR(xw *xdr.Writer) (int, error) {
2014-02-20 16:40:15 +00:00
xw.WriteUint32(o.Magic)
2014-05-11 22:55:43 +00:00
o.This.encodeXDR(xw)
if len(o.Extra) > 16 {
2014-02-20 16:40:15 +00:00
return xw.Tot(), xdr.ErrElementSizeExceeded
}
2014-05-11 22:55:43 +00:00
xw.WriteUint32(uint32(len(o.Extra)))
for i := range o.Extra {
o.Extra[i].encodeXDR(xw)
}
return xw.Tot(), xw.Error()
}
func (o *Announce) DecodeXDR(r io.Reader) error {
2014-05-11 22:55:43 +00:00
xr := xdr.NewReader(r)
return o.decodeXDR(xr)
}
func (o *Announce) UnmarshalXDR(bs []byte) error {
2014-06-30 11:33:52 +00:00
var br = bytes.NewReader(bs)
var xr = xdr.NewReader(br)
2014-05-11 22:55:43 +00:00
return o.decodeXDR(xr)
}
func (o *Announce) decodeXDR(xr *xdr.Reader) error {
2014-05-11 22:55:43 +00:00
o.Magic = xr.ReadUint32()
(&o.This).decodeXDR(xr)
_ExtraSize := int(xr.ReadUint32())
if _ExtraSize > 16 {
return xdr.ErrElementSizeExceeded
}
o.Extra = make([]Node, _ExtraSize)
for i := range o.Extra {
(&o.Extra[i]).decodeXDR(xr)
}
return xr.Error()
}
2014-07-13 07:24:25 +00:00
/*
Node Structure:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length of ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
\ ID (variable length) \
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Number of Addresses |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
\ Zero or more Address Structures \
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
struct Node {
opaque ID<32>;
Address Addresses<16>;
}
*/
2014-05-11 22:55:43 +00:00
func (o Node) EncodeXDR(w io.Writer) (int, error) {
var xw = xdr.NewWriter(w)
return o.encodeXDR(xw)
}
func (o Node) MarshalXDR() []byte {
return o.AppendXDR(make([]byte, 0, 128))
}
func (o Node) AppendXDR(bs []byte) []byte {
var aw = xdr.AppendWriter(bs)
2014-06-30 11:33:52 +00:00
var xw = xdr.NewWriter(&aw)
2014-05-11 22:55:43 +00:00
o.encodeXDR(xw)
2014-06-30 11:33:52 +00:00
return []byte(aw)
2014-05-11 22:55:43 +00:00
}
func (o Node) encodeXDR(xw *xdr.Writer) (int, error) {
if len(o.ID) > 32 {
2014-05-11 22:55:43 +00:00
return xw.Tot(), xdr.ErrElementSizeExceeded
}
xw.WriteBytes(o.ID)
2014-02-20 16:40:15 +00:00
if len(o.Addresses) > 16 {
return xw.Tot(), xdr.ErrElementSizeExceeded
}
xw.WriteUint32(uint32(len(o.Addresses)))
for i := range o.Addresses {
o.Addresses[i].encodeXDR(xw)
}
return xw.Tot(), xw.Error()
}
2014-05-11 22:55:43 +00:00
func (o *Node) DecodeXDR(r io.Reader) error {
2014-02-20 16:40:15 +00:00
xr := xdr.NewReader(r)
return o.decodeXDR(xr)
}
2014-05-11 22:55:43 +00:00
func (o *Node) UnmarshalXDR(bs []byte) error {
2014-06-30 11:33:52 +00:00
var br = bytes.NewReader(bs)
var xr = xdr.NewReader(br)
2014-02-20 16:40:15 +00:00
return o.decodeXDR(xr)
}
2014-05-11 22:55:43 +00:00
func (o *Node) decodeXDR(xr *xdr.Reader) error {
o.ID = xr.ReadBytesMax(32)
2014-02-20 16:40:15 +00:00
_AddressesSize := int(xr.ReadUint32())
if _AddressesSize > 16 {
return xdr.ErrElementSizeExceeded
}
o.Addresses = make([]Address, _AddressesSize)
for i := range o.Addresses {
(&o.Addresses[i]).decodeXDR(xr)
}
return xr.Error()
}
2014-07-13 07:24:25 +00:00
/*
Address Structure:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length of IP |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
/ /
\ IP (variable length) \
/ /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x0000 | Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
struct Address {
opaque IP<16>;
unsigned int Port;
}
*/
2014-02-20 16:40:15 +00:00
func (o Address) EncodeXDR(w io.Writer) (int, error) {
var xw = xdr.NewWriter(w)
return o.encodeXDR(xw)
}
func (o Address) MarshalXDR() []byte {
return o.AppendXDR(make([]byte, 0, 128))
}
func (o Address) AppendXDR(bs []byte) []byte {
var aw = xdr.AppendWriter(bs)
2014-06-30 11:33:52 +00:00
var xw = xdr.NewWriter(&aw)
2014-02-20 16:40:15 +00:00
o.encodeXDR(xw)
2014-06-30 11:33:52 +00:00
return []byte(aw)
2014-02-20 16:40:15 +00:00
}
func (o Address) encodeXDR(xw *xdr.Writer) (int, error) {
if len(o.IP) > 16 {
return xw.Tot(), xdr.ErrElementSizeExceeded
}
xw.WriteBytes(o.IP)
xw.WriteUint16(o.Port)
return xw.Tot(), xw.Error()
}
func (o *Address) DecodeXDR(r io.Reader) error {
xr := xdr.NewReader(r)
return o.decodeXDR(xr)
}
func (o *Address) UnmarshalXDR(bs []byte) error {
2014-06-30 11:33:52 +00:00
var br = bytes.NewReader(bs)
var xr = xdr.NewReader(br)
2014-02-20 16:40:15 +00:00
return o.decodeXDR(xr)
}
func (o *Address) decodeXDR(xr *xdr.Reader) error {
o.IP = xr.ReadBytesMax(16)
o.Port = xr.ReadUint16()
return xr.Error()
}