message: Announce all blocks that were connected
  In we may connect more than one block at a time and we must
  announce all blocks connected.
diff: @@ -6770,7 +6770,9 @@ bool SendMessages(CNode* pto)
  // The last entry in vBlockHashesToAnnounce was our tip at some point
  // in the past.
  if (!pto->vBlockHashesToAnnounce.empty()) {
  - const uint256 &hashToAnnounce = pto->vBlockHashesToAnnounce.back();
  + BOOST_FOREACH(const uint256 &hashToAnnounce, pto->vBlockHashesToAnnounce) {
  + LogPrintf("trying to announnce block %s\n" ,hashToAnnounce.ToString());
  + //const uint256 &hashToAnnounce = pto->vBlockHashesToAnnounce.back();
  BlockMap::iterator mi = mapBlockIndex.find(hashToAnnounce);
  assert(mi != mapBlockIndex.end());
  CBlockIndex *pindex = mi->second;
  @@ -6786,12 +6788,14 @@ bool SendMessages(CNode* pto)
  // If the peer announced this block to us, don't inv it back.
  // (Since block announcements may not be via inv's, we can't solely rely on
  // setInventoryKnown to track this.)
  - if (!PeerHasHeader(&state, pindex)) {
  + if (!PeerHasHeader(&state, pindex))
  + {
  pto->PushInventory(CInv(MSG_BLOCK, hashToAnnounce));
  LogPrint("net", "%s: sending inv peer=%d hash=%s\n", __func__,
  pto->id, hashToAnnounce.ToString());
  }
  }
  + }
  } else if (!vHeaders.empty()) {
  if (vHeaders.size() > 1) {
  LogPrint("net", "%s: %u headers, range (%s, %s), to peer=%d\n", __func__,
  