}
-void swift::AddProgressCallback (int transfer, TransferProgressCallback cb) {
+void swift::AddProgressCallback (int transfer,ProgressCallback cb,uint8_t agg) {
FileTransfer* trans = FileTransfer::file(transfer);
if (!trans)
return;
- trans->callbacks[trans->cb_installed++] = cb;
+ trans->cb_agg[trans->cb_installed] = agg;
+ trans->callbacks[trans->cb_installed] = cb;
+ trans->cb_installed++;
}
-void swift::RemoveProgressCallback (int transfer, TransferProgressCallback cb) {
+void swift::ExternallyRetrieved (int transfer,bin64_t piece) {
+ FileTransfer* trans = FileTransfer::file(transfer);
+ if (!trans)
+ return;
+ trans->ack_out().set(piece); // that easy
+}
+
+
+void swift::RemoveProgressCallback (int transfer, ProgressCallback cb) {
FileTransfer* trans = FileTransfer::file(transfer);
if (!trans)
return;
return; // already connected
}
if (hs_in_.size()<20) {
- new Channel(this,Channel::default_socket(),addr);
+ new Channel(this,Datagram::default_socket(),addr);
} else {
pex_in_.push_back(addr);
if (pex_in_.size()>1000)