diff --git a/carddav/carddav.go b/carddav/carddav.go index 68d3244..6a52400 100644 --- a/carddav/carddav.go +++ b/carddav/carddav.go @@ -100,10 +100,11 @@ type AddressBookMultiGet struct { } type AddressObject struct { - Path string - ModTime time.Time - ETag string - Card vcard.Card + Path string + ModTime time.Time + ContentLength int64 + ETag string + Card vcard.Card } //SyncQuery is the query struct represents a sync-collection request diff --git a/carddav/server.go b/carddav/server.go index ea474d6..93bf5f4 100644 --- a/carddav/server.go +++ b/carddav/server.go @@ -441,6 +441,11 @@ func (b *backend) propfindAddressObject(ctx context.Context, propfind *internal. }, } + if ao.ContentLength > 0 { + props[internal.GetContentLengthName] = func(*internal.RawXMLValue) (interface{}, error) { + return &internal.GetContentLength{Length: ao.ContentLength}, nil + } + } if !ao.ModTime.IsZero() { props[internal.GetLastModifiedName] = func(*internal.RawXMLValue) (interface{}, error) { return &internal.GetLastModified{LastModified: internal.Time(ao.ModTime)}, nil