예제 #1
0
 def _doBlock():
     dt = time.time()
     src = self.currentBlockData.getvalue()
     block = dhnblock.dhnblock(
         misc.getLocalID(),
         self.backupID,
         self.blockNumber,
         dhncrypto.NewSessionKey(),
         dhncrypto.SessionKeyType(),
         self.stateEOF,
         src,)
     del src
     dhnio.Dprint(12, 'backup.doBlock blockNumber=%d size=%d atEOF=%s dt=%s' % (self.blockNumber, self.currentBlockSize, self.stateEOF, str(time.time()-dt)))
     return block
예제 #2
0
 def doSuppliersSendDBInfo(self, arg):
     # dhnio.Dprint(4, 'backup_db_keeper.doSuppliersSendDBInfo')
     # packetID = settings.BackupInfoEncryptedFileName()
     packetID = settings.BackupIndexFileName()
     for supplierId in contacts.getSupplierIDs():
         if supplierId:
             transport_control.RemoveInterest(supplierId, packetID)
     self.sentSuppliers.clear()
     # src = dhnio.ReadBinaryFile(settings.BackupInfoFileFullPath())
     src = dhnio.ReadBinaryFile(settings.BackupIndexFilePath())
     localID = misc.getLocalID()
     block = dhnblock.dhnblock(localID, packetID, 0, dhncrypto.NewSessionKey(), dhncrypto.SessionKeyType(), True, src)
     Payload = block.Serialize() 
     for supplierId in contacts.getSupplierIDs():
         if not supplierId:
             continue
         if not contact_status.isOnline(supplierId):
             continue
         newpacket = dhnpacket.dhnpacket(commands.Data(), localID, localID, packetID, Payload, supplierId)
         transport_control.outboxAck(newpacket)
         transport_control.RegisterInterest(self.SupplierAcked, supplierId, packetID)
         self.sentSuppliers.add(supplierId)