func (o SessionInvitation) EncodeXDRInto(xw *xdr.Writer) (int, error) {
	if l := len(o.From); l > 32 {
		return xw.Tot(), xdr.ElementSizeExceeded("From", l, 32)
	}
	xw.WriteBytes(o.From)
	if l := len(o.Key); l > 32 {
		return xw.Tot(), xdr.ElementSizeExceeded("Key", l, 32)
	}
	xw.WriteBytes(o.Key)
	if l := len(o.Address); l > 32 {
		return xw.Tot(), xdr.ElementSizeExceeded("Address", l, 32)
	}
	xw.WriteBytes(o.Address)
	xw.WriteUint16(o.Port)
	xw.WriteBool(o.ServerSocket)
	return xw.Tot(), xw.Error()
}