createUdpConnect function

Future<ConnectionI> createUdpConnect(
  1. UdpEndpoint endpoint
)

Implementation

Future<ConnectionI> createUdpConnect(UdpEndpoint endpoint) async {
  final c = Completer<ConnectionI>();
  //
  void Function(UdpEndpoint) doConnect = (endpoint) {
    RawDatagramSocket.bind(endpoint.addressList[0], 0, ttl: endpoint.ttl)
        .then((socket) {
      final uc = UdpConnection(endpoint: endpoint, socket: socket)..init();
      c.complete(uc);
    });
  };

  if (endpoint.addressList.isEmpty) {
    endpoint.resolve().then((x) {
      doConnect(endpoint);
    });
  } else {
    doConnect(endpoint);
  }

  return c.future;
}