code: func setUDPRecvBuf(c *net.UDPConn) error {
  	size := udpRecvBufSize
  	var err error
  	for size > 0 {
  		if err = c.SetReadBuffer(size); err == nil {
  			return nil
  		}
  		size = size / 2
  	}
  	return err
  }
docs: // setUDPRecvBuf is used to resize the UDP receive window. The function
  // attempts to set the read buffer to `udpRecvBuf` but backs off until
  // the read buffer can be set.