+/** \brief Creates socket using particular address family (AF_)
+ \param ai getaddrinfo result
+ \param mask family mask
+ \returns socket or -1 if none could be created
+
+*/
+static int create_socket_family(struct addrinfo *ai, unsigned mask)
+{
+ for (; ai; ai = ai->ai_next)
+ {
+ if ((ai->ai_family & mask) == mask)
+ {
+ int s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
+ if (s != -1)
+ return s;
+ }
+ }
+ return -1;
+}
+