+ if (result) {
+ fprintf(stderr, "%s/ftp: %s\n",
+ host, gai_strerror(result));
+ return NOTOK;
+ }
+
+ if ((ftp_fd = start_tcp_client(res)) == NOTOK) {
+ perror(host);
+ freeaddrinfo(res);
+ return NOTOK;
+ }
+ if (join_tcp_server(ftp_fd, res->ai_addr, res->ai_addrlen)
+ == NOTOK) {
+ perror(host);
+ freeaddrinfo(res);
+ close_tcp_socket(ftp_fd), ftp_fd = NOTOK;
+ return NOTOK;
+ }
+ freeaddrinfo(res);
+ getreply(1, 0);
+
+ if (v_verbose) {
+ fprintf(stdout, "Connected to %s\n", host);
+ fflush(stdout);
+ }
+
+ if (user) {
+ if ((result = command (0, "USER %s", user))
+ == CONTINUE)
+ result = command(1, "PASS %s", password);
+ if (result != COMPLETE) {
+ result = NOTOK;
+ goto out;
+ }
+ }
+
+ if (remote == NULL)
+ return OK;