- /* find out what port was actually used */
-
- len = sizeof(claddr);
- if(getsockname(client_socket, (struct sockaddr *)&claddr, &len) == -1) {
- save_errno = errno;
- dbprintf(("%s: %s: getsockname() failed: %s\n",
- debug_prefix(NULL),
- f,
- strerror(save_errno)));
- aclose(client_socket);
- errno = save_errno;
- return -1;
- }
-
- if (nonblock)
- fcntl(client_socket, F_SETFL,
- fcntl(client_socket, F_GETFL, 0)|O_NONBLOCK);
-
- if(connect(client_socket, (struct sockaddr *)&svaddr, sizeof(svaddr))
- == -1 && !nonblock) {
- save_errno = errno;
- dbprintf(("%s: %s: connect to %s.%d failed: %s\n",
- debug_prefix_time(NULL),
- f,
- inet_ntoa(svaddr.sin_addr),
- ntohs(svaddr.sin_port),
- strerror(save_errno)));
- aclose(client_socket);
- errno = save_errno;
- return -1;
- }
-
- dbprintf(("%s: %s: connected to %s.%d\n",
- debug_prefix_time(NULL),
- f,
- inet_ntoa(svaddr.sin_addr),
- ntohs(svaddr.sin_port)));
- dbprintf(("%s: %s: our side is %s.%d\n",
- debug_prefix(NULL),
- f,
- inet_ntoa(claddr.sin_addr),
- ntohs(claddr.sin_port)));
-
- if(sendsize >= 0)
- try_socksize(client_socket, SO_SNDBUF, sendsize);
- if(recvsize >= 0)
- try_socksize(client_socket, SO_RCVBUF, recvsize);