Hello,
     I've pretty much been able to finish my IBRDTN router, and now I am testing it to find functional flaws and polish it up.  One thing I noticed is that when a node I am using goes out of range and a TransferAbortedEvent occurs, the source continues to try and send bundles to that node unsuccessfully until the node returns.  I made my router based off of the FloodRouter and EpidemicRouter that you included with your source code so the code looks like this:

const dtn::net::TransferAbortedEvent &aborted = dynamic_cast<const dtn::net::TransferAbortedEvent&>(*evt);

// transfer the next bundle to this destination
_taskqueue.push( new SearchNextBundleTask( aborted.getPeer() ) );
return;

I assume this was intentional, correct?  I know that there are other reasons why a bundle transfer should fail, but in my case, at least 99% of the time it is because nodes come and go out of range fairly quickly.  Should I just comment out the taskqueue line to stop it from continuing to send packets unsuccesfully and just wait until a connection event continues bundle transmissions?

Thanks,
Carson