Different fixes
This commit is contained in:
parent
4c45ad3e67
commit
67d535362f
@ -92,7 +92,7 @@ func (s *syncTreeHandler) handleMessage(ctx context.Context, senderId string) (e
|
||||
case content.GetHeadUpdate() != nil:
|
||||
var syncReq *treechangeproto.TreeSyncMessage
|
||||
syncReq, err = s.syncProtocol.HeadUpdate(ctx, senderId, content.GetHeadUpdate())
|
||||
if err != nil {
|
||||
if err != nil || syncReq == nil {
|
||||
return
|
||||
}
|
||||
return s.syncClient.QueueRequest(senderId, treeId, syncReq)
|
||||
|
||||
@ -214,14 +214,15 @@ func validateSpaceStorageCreatePayload(payload spacestorage.SpaceStorageCreatePa
|
||||
}
|
||||
|
||||
func ValidateSpaceHeader(rawHeaderWithId *spacesyncproto.RawSpaceHeaderWithId, identity crypto.PubKey) (err error) {
|
||||
if rawHeaderWithId == nil {
|
||||
return spacestorage.ErrIncorrectSpaceHeader
|
||||
}
|
||||
sepIdx := strings.Index(rawHeaderWithId.Id, ".")
|
||||
if sepIdx == -1 {
|
||||
err = spacestorage.ErrIncorrectSpaceHeader
|
||||
return
|
||||
return spacestorage.ErrIncorrectSpaceHeader
|
||||
}
|
||||
if !cidutil.VerifyCid(rawHeaderWithId.RawHeader, rawHeaderWithId.Id[:sepIdx]) {
|
||||
err = objecttree.ErrIncorrectCid
|
||||
return
|
||||
return objecttree.ErrIncorrectCid
|
||||
}
|
||||
var rawSpaceHeader spacesyncproto.RawSpaceHeader
|
||||
err = proto.Unmarshal(rawHeaderWithId.RawHeader, &rawSpaceHeader)
|
||||
@ -239,19 +240,16 @@ func ValidateSpaceHeader(rawHeaderWithId *spacesyncproto.RawSpaceHeaderWithId, i
|
||||
}
|
||||
res, err := payloadIdentity.Verify(rawSpaceHeader.SpaceHeader, rawSpaceHeader.Signature)
|
||||
if err != nil || !res {
|
||||
err = spacestorage.ErrIncorrectSpaceHeader
|
||||
return
|
||||
return spacestorage.ErrIncorrectSpaceHeader
|
||||
}
|
||||
if rawHeaderWithId.Id[sepIdx+1:] != strconv.FormatUint(header.ReplicationKey, 36) {
|
||||
err = spacestorage.ErrIncorrectSpaceHeader
|
||||
return
|
||||
return spacestorage.ErrIncorrectSpaceHeader
|
||||
}
|
||||
if identity == nil {
|
||||
return
|
||||
}
|
||||
if !payloadIdentity.Equals(identity) {
|
||||
err = ErrIncorrectIdentity
|
||||
return
|
||||
return ErrIncorrectIdentity
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@ -82,8 +82,9 @@ func (r *requestManager) QueueRequest(peerId string, req *spacesyncproto.ObjectS
|
||||
defer r.Unlock()
|
||||
pl, exists := r.pools[peerId]
|
||||
if !exists {
|
||||
pl := streampool.NewExecPool(r.workers, r.queueSize)
|
||||
pl = streampool.NewExecPool(r.workers, r.queueSize)
|
||||
r.pools[peerId] = pl
|
||||
pl.Run()
|
||||
}
|
||||
// TODO: for later think when many clients are there,
|
||||
// we need to close pools for inactive clients
|
||||
|
||||
@ -169,7 +169,8 @@ func (s *space) Init(ctx context.Context) (err error) {
|
||||
s.objectSync = s.app.MustComponent(objectsync.CName).(objectsync.ObjectSync)
|
||||
s.storage = s.app.MustComponent(spacestorage.CName).(spacestorage.SpaceStorage)
|
||||
s.aclList = s.app.MustComponent(syncacl.CName).(list.AclList)
|
||||
return nil
|
||||
s.header, err = s.storage.SpaceHeader()
|
||||
return
|
||||
}
|
||||
|
||||
func (s *space) SyncStatus() syncstatus.StatusUpdater {
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package spacestorage
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/anyproto/any-sync/app"
|
||||
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
|
||||
"github.com/anyproto/any-sync/commonspace/object/acl/liststorage"
|
||||
@ -22,6 +23,14 @@ type InMemorySpaceStorage struct {
|
||||
sync.Mutex
|
||||
}
|
||||
|
||||
func (i *InMemorySpaceStorage) Run(ctx context.Context) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (i *InMemorySpaceStorage) Close(ctx context.Context) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (i *InMemorySpaceStorage) Init(a *app.App) (err error) {
|
||||
return nil
|
||||
}
|
||||
@ -157,10 +166,6 @@ func (i *InMemorySpaceStorage) ReadSpaceHash() (hash string, err error) {
|
||||
return i.spaceHash, nil
|
||||
}
|
||||
|
||||
func (i *InMemorySpaceStorage) Close() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (i *InMemorySpaceStorage) AllTrees() map[string]treestorage.TreeStorage {
|
||||
i.Lock()
|
||||
defer i.Unlock()
|
||||
|
||||
@ -28,7 +28,7 @@ const (
|
||||
)
|
||||
|
||||
type SpaceStorage interface {
|
||||
app.Component
|
||||
app.ComponentRunnable
|
||||
Id() string
|
||||
SetSpaceDeleted() error
|
||||
IsSpaceDeleted() (bool, error)
|
||||
@ -44,8 +44,6 @@ type SpaceStorage interface {
|
||||
CreateTreeStorage(payload treestorage.TreeStorageCreatePayload) (treestorage.TreeStorage, error)
|
||||
WriteSpaceHash(hash string) error
|
||||
ReadSpaceHash() (hash string, err error)
|
||||
|
||||
Close() error
|
||||
}
|
||||
|
||||
type SpaceStorageCreatePayload struct {
|
||||
|
||||
@ -250,6 +250,8 @@ func (s *streamPool) openStream(ctx context.Context, p peer.Peer) *openingProces
|
||||
close(op.ch)
|
||||
delete(s.opening, p.Id())
|
||||
}()
|
||||
// in case there was no peerId in context
|
||||
ctx := peer.CtxWithPeerId(ctx, p.Id())
|
||||
// open new stream and add to pool
|
||||
st, tags, err := s.handler.OpenStream(ctx, p)
|
||||
if err != nil {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user