code: func (p Proxy) Lookup(state request.Request, name string, typ uint16) (*dns.Msg, error) {
  	req := new(dns.Msg)
  	req.SetQuestion(name, typ)
  	state.SizeAndDo(req)
  
  	state2 := request.Request{W: state.W, Req: req}
  
  	return p.lookup(state2)
  }
docs: // Lookup will use name and type to forge a new message and will send that upstream. It will
  // set any EDNS0 options correctly so that downstream will be able to process the reply.