Remove 64 folder limit

This commit is contained in:
Audrius Butkevicius 2015-03-08 16:55:01 +00:00
parent 2e2d479103
commit a10c621e33
2 changed files with 5 additions and 14 deletions

View File

@ -7,7 +7,7 @@ package protocol
import "fmt" import "fmt"
type IndexMessage struct { type IndexMessage struct {
Folder string // max:64 Folder string
Files []FileInfo Files []FileInfo
Flags uint32 Flags uint32
Options []Option // max:64 Options []Option // max:64
@ -85,7 +85,7 @@ type ResponseMessage struct {
type ClusterConfigMessage struct { type ClusterConfigMessage struct {
ClientName string // max:64 ClientName string // max:64
ClientVersion string // max:64 ClientVersion string // max:64
Folders []Folder // max:64 Folders []Folder
Options []Option // max:64 Options []Option // max:64
} }

View File

@ -41,7 +41,7 @@ IndexMessage Structure:
struct IndexMessage { struct IndexMessage {
string Folder<64>; string Folder<>;
FileInfo Files<>; FileInfo Files<>;
unsigned int Flags; unsigned int Flags;
Option Options<64>; Option Options<64>;
@ -74,9 +74,6 @@ func (o IndexMessage) AppendXDR(bs []byte) ([]byte, error) {
} }
func (o IndexMessage) encodeXDR(xw *xdr.Writer) (int, error) { func (o IndexMessage) encodeXDR(xw *xdr.Writer) (int, error) {
if l := len(o.Folder); l > 64 {
return xw.Tot(), xdr.ElementSizeExceeded("Folder", l, 64)
}
xw.WriteString(o.Folder) xw.WriteString(o.Folder)
xw.WriteUint32(uint32(len(o.Files))) xw.WriteUint32(uint32(len(o.Files)))
for i := range o.Files { for i := range o.Files {
@ -111,7 +108,7 @@ func (o *IndexMessage) UnmarshalXDR(bs []byte) error {
} }
func (o *IndexMessage) decodeXDR(xr *xdr.Reader) error { func (o *IndexMessage) decodeXDR(xr *xdr.Reader) error {
o.Folder = xr.ReadStringMax(64) o.Folder = xr.ReadString()
_FilesSize := int(xr.ReadUint32()) _FilesSize := int(xr.ReadUint32())
o.Files = make([]FileInfo, _FilesSize) o.Files = make([]FileInfo, _FilesSize)
for i := range o.Files { for i := range o.Files {
@ -559,7 +556,7 @@ ClusterConfigMessage Structure:
struct ClusterConfigMessage { struct ClusterConfigMessage {
string ClientName<64>; string ClientName<64>;
string ClientVersion<64>; string ClientVersion<64>;
Folder Folders<64>; Folder Folders<>;
Option Options<64>; Option Options<64>;
} }
@ -598,9 +595,6 @@ func (o ClusterConfigMessage) encodeXDR(xw *xdr.Writer) (int, error) {
return xw.Tot(), xdr.ElementSizeExceeded("ClientVersion", l, 64) return xw.Tot(), xdr.ElementSizeExceeded("ClientVersion", l, 64)
} }
xw.WriteString(o.ClientVersion) xw.WriteString(o.ClientVersion)
if l := len(o.Folders); l > 64 {
return xw.Tot(), xdr.ElementSizeExceeded("Folders", l, 64)
}
xw.WriteUint32(uint32(len(o.Folders))) xw.WriteUint32(uint32(len(o.Folders)))
for i := range o.Folders { for i := range o.Folders {
_, err := o.Folders[i].encodeXDR(xw) _, err := o.Folders[i].encodeXDR(xw)
@ -636,9 +630,6 @@ func (o *ClusterConfigMessage) decodeXDR(xr *xdr.Reader) error {
o.ClientName = xr.ReadStringMax(64) o.ClientName = xr.ReadStringMax(64)
o.ClientVersion = xr.ReadStringMax(64) o.ClientVersion = xr.ReadStringMax(64)
_FoldersSize := int(xr.ReadUint32()) _FoldersSize := int(xr.ReadUint32())
if _FoldersSize > 64 {
return xdr.ElementSizeExceeded("Folders", _FoldersSize, 64)
}
o.Folders = make([]Folder, _FoldersSize) o.Folders = make([]Folder, _FoldersSize)
for i := range o.Folders { for i := range o.Folders {
(&o.Folders[i]).decodeXDR(xr) (&o.Folders[i]).decodeXDR(xr)