> +int connect_tcp(struct interface *interface, const struct in6_addr *dest) > +{ > + struct sockaddr_in6 dest_addr; > + int sock; > + > + memset(&dest_addr, 0, sizeof(dest_addr)); > + dest_addr.sin6_family = AF_INET6; > + dest_addr.sin6_port = htons(ALFRED_PORT); > + dest_addr.sin6_scope_id = interface->scope_id; > + memcpy(&dest_addr.sin6_addr, dest, sizeof(*dest)); > + > + sock = socket(PF_INET6, SOCK_STREAM, IPPROTO_TCP); > + if (sock < 0) > + return -1; > + > + if (connect(sock, (struct sockaddr *)&dest_addr, > + sizeof(struct sockaddr_in6)) < 0) { > + close(sock); > + return -1; > + } > + > + return sock; > +} > + Wouldn't this hang for a while and make the alfred server "unresponsive" when the remote is not reachable at this moment?. Kind regards, Sven