- for(i = 0; i < addrCount && i<10 ; i++) {
- if(CallAddr(addresses[i], port, &sd, -1)) {
- (*sock)->sock = sd;
- (*sock)->port = port;
- return no_error;
- }
+ haddr = ((struct in_addr *) (he->h_addr_list)[0]);
+
+ memset(&addr, 0, sizeof(struct sockaddr_in));
+ memcpy (&addr.sin_addr, haddr, sizeof(struct in_addr));
+ addr.sin_family = AF_INET;
+ addr.sin_port = htons (port);
+
+ if (connect (sock->sd, (struct sockaddr*) &addr, sizeof (addr)) < 0) {
+ close(sock->sd);
+ RAISE3(system_error,
+ "Failed to connect socket to %s:%d (%s)",
+ host, port, strerror (errno));