code: func (c *Device) dialDevice() (*wire.Conn, error) {
  	conn, err := c.server.Dial()
  	if err != nil {
  		return nil, err
  	}
  
  	req := fmt.Sprintf("host:%s", c.descriptor.getTransportDescriptor())
  	if err = wire.SendMessageString(conn, req); err != nil {
  		conn.Close()
  		return nil, errors.WrapErrf(err, "error connecting to device '%s'", c.descriptor)
  	}
  
  	if _, err = conn.ReadStatus(req); err != nil {
  		conn.Close()
  		return nil, err
  	}
  
  	return conn, nil
  }
docs: // dialDevice switches the connection to communicate directly with the device
  // by requesting the transport defined by the DeviceDescriptor.