Optimisitcally verify downloads in engine
continuous-integration/drone/pr Build is passing
Details
continuous-integration/drone/pr Build is passing
Details
This commit is contained in:
parent
cbfead7455
commit
221c55868e
|
@ -265,12 +265,21 @@ func (e *engine) eventHandler() {
|
||||||
serializedManifest := ev.Data[event.SerializedManifest]
|
serializedManifest := ev.Data[event.SerializedManifest]
|
||||||
tempFile := ev.Data[event.TempFile]
|
tempFile := ev.Data[event.TempFile]
|
||||||
title := ev.Data[event.NameSuggestion]
|
title := ev.Data[event.NameSuggestion]
|
||||||
// NOTE: for now there will probably only ever be a single chunk request. When we enable group
|
|
||||||
// sharing and rehosting then this loop will serve as a a way of splitting the request among multiple
|
// Another optimistic check here. Technically Cwtch profile should not request manifest on a download files
|
||||||
// contacts
|
// but if they do then we should check if it exists up front. If it does then announce that the download
|
||||||
for _, message := range e.filesharingSubSystem.CompileChunkRequests(key, serializedManifest, tempFile, title) {
|
// is complete.
|
||||||
if err := e.sendPeerMessage(handle, message); err != nil {
|
if _, filePath, success := e.filesharingSubSystem.VerifyFile(key); success {
|
||||||
e.eventManager.Publish(event.NewEvent(event.SendMessageToPeerError, map[event.Field]string{event.RemotePeer: ev.Data[event.RemotePeer], event.EventID: ev.EventID, event.Error: err.Error()}))
|
log.Debugf("file verified and downloaded!")
|
||||||
|
e.eventManager.Publish(event.NewEvent(event.FileDownloaded, map[event.Field]string{event.FileKey: key, event.FilePath: filePath, event.TempFile: tempFile}))
|
||||||
|
} else {
|
||||||
|
// NOTE: for now there will probably only ever be a single chunk request. When we enable group
|
||||||
|
// sharing and rehosting then this loop will serve as a a way of splitting the request among multiple
|
||||||
|
// contacts
|
||||||
|
for _, message := range e.filesharingSubSystem.CompileChunkRequests(key, serializedManifest, tempFile, title) {
|
||||||
|
if err := e.sendPeerMessage(handle, message); err != nil {
|
||||||
|
e.eventManager.Publish(event.NewEvent(event.SendMessageToPeerError, map[event.Field]string{event.RemotePeer: ev.Data[event.RemotePeer], event.EventID: ev.EventID, event.Error: err.Error()}))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case event.ProtocolEngineShutdown:
|
case event.ProtocolEngineShutdown:
|
||||||
|
|
Loading…
Reference in New Issue