code: func (r *Request) Scrub(reply *dns.Msg) (*dns.Msg, Result) {
  	size := r.Size()
  	l := reply.Len()
  	if size >= l {
  		return reply, ScrubIgnored
  	}
  	// TODO(miek): check for delegation
  
  	// If not delegation, drop additional section.
  	reply.Extra = nil
  	r.SizeAndDo(reply)
  	l = reply.Len()
  	if size >= l {
  		return reply, ScrubDone
  	}
  	// Still?!! does not fit.
  	reply.Truncated = true
  	return reply, ScrubDone
  }
docs: // Scrub scrubs the reply message so that it will fit the client's buffer. If even after dropping
  // the additional section, it still does not fit the TC bit will be set on the message. Note,
  // the TC bit will be set regardless of protocol, even TCP message will get the bit, the client
  // should then retry with pigeons.
  // TODO(referral).