• Home
  • Raw
  • Download

Lines Matching refs:ftpc

233 static void freedirs(struct ftp_conn *ftpc)  in freedirs()  argument
235 if(ftpc->dirs) { in freedirs()
237 for(i = 0; i < ftpc->dirdepth; i++) { in freedirs()
238 free(ftpc->dirs[i]); in freedirs()
239 ftpc->dirs[i] = NULL; in freedirs()
241 free(ftpc->dirs); in freedirs()
242 ftpc->dirs = NULL; in freedirs()
243 ftpc->dirdepth = 0; in freedirs()
245 Curl_safefree(ftpc->file); in freedirs()
248 Curl_safefree(ftpc->newhost); in freedirs()
363 struct ftp_conn *ftpc = &conn->proto.ftpc; in ReceivedServerConnect() local
364 struct pingpong *pp = &ftpc->pp; in ReceivedServerConnect()
443 if(conn->proto.ftpc.state_saved == FTP_STOR) { in InitiateTransfer()
456 conn->proto.ftpc.retr_size_saved, FALSE, -1); in InitiateTransfer()
459 conn->proto.ftpc.pp.pending_resp = TRUE; /* expect server response */ in InitiateTransfer()
614 struct ftp_conn *ftpc = &conn->proto.ftpc; in Curl_GetFTPResponse() local
615 struct pingpong *pp = &ftpc->pp; in Curl_GetFTPResponse()
751 struct ftp_conn *ftpc = &conn->proto.ftpc; in _state() local
758 if(ftpc->state != newstate) in _state()
760 (void *)ftpc, lineno, ftp_state_names[ftpc->state], in _state()
765 ftpc->state = newstate; in _state()
770 CURLcode result = Curl_pp_sendf(&conn->proto.ftpc.pp, "USER %s", in ftp_state_user()
781 CURLcode result = Curl_pp_sendf(&conn->proto.ftpc.pp, "%s", "PWD"); in ftp_state_pwd()
792 return Curl_pp_getsock(&conn->proto.ftpc.pp, socks); in ftp_getsock()
798 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_domore_getsock() local
808 if(FTP_STOP == ftpc->state) { in ftp_domore_getsock()
836 return Curl_pp_getsock(&conn->proto.ftpc.pp, socks); in ftp_domore_getsock()
848 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_cwd() local
850 if(ftpc->cwddone) in ftp_state_cwd()
856 !(ftpc->dirdepth && ftpc->dirs[0][0] == '/')); in ftp_state_cwd()
858 ftpc->count2 = 0; /* count2 counts failed CWDs */ in ftp_state_cwd()
863 ftpc->count3 = (conn->data->set.ftp_create_missing_dirs == 2)?1:0; in ftp_state_cwd()
865 if(conn->bits.reuse && ftpc->entrypath && in ftp_state_cwd()
867 !(ftpc->dirdepth && ftpc->dirs[0][0] == '/')) { in ftp_state_cwd()
871 ftpc->cwdcount = 0; /* we count this as the first path, then we add one in ftp_state_cwd()
873 result = Curl_pp_sendf(&ftpc->pp, "CWD %s", ftpc->entrypath); in ftp_state_cwd()
878 if(ftpc->dirdepth) { in ftp_state_cwd()
879 ftpc->cwdcount = 1; in ftp_state_cwd()
882 result = Curl_pp_sendf(&ftpc->pp, "CWD %s", in ftp_state_cwd()
883 ftpc->dirs[ftpc->cwdcount -1]); in ftp_state_cwd()
907 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_use_port() local
1222 result = Curl_pp_sendf(&ftpc->pp, "%s |%d|%s|%hu|", mode[fcmd], in ftp_state_use_port()
1230 ftpc->count1 = PORT; in ftp_state_use_port()
1255 result = Curl_pp_sendf(&ftpc->pp, "%s %s", mode[fcmd], target); in ftp_state_use_port()
1269 ftpc->count1 = fcmd; in ftp_state_use_port()
1293 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_use_pasv() local
1321 result = Curl_pp_sendf(&ftpc->pp, "%s", mode[modeoff]); in ftp_state_use_pasv()
1323 ftpc->count1 = modeoff; in ftp_state_use_pasv()
1359 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_prepare_transfer() local
1360 if(!conn->proto.ftpc.file) in ftp_state_prepare_transfer()
1361 result = Curl_pp_sendf(&ftpc->pp, "PRET %s", in ftp_state_prepare_transfer()
1366 result = Curl_pp_sendf(&ftpc->pp, "PRET STOR %s", in ftp_state_prepare_transfer()
1367 conn->proto.ftpc.file); in ftp_state_prepare_transfer()
1369 result = Curl_pp_sendf(&ftpc->pp, "PRET RETR %s", in ftp_state_prepare_transfer()
1370 conn->proto.ftpc.file); in ftp_state_prepare_transfer()
1384 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_rest() local
1386 if((ftp->transfer != FTPTRANSFER_BODY) && ftpc->file) { in ftp_state_rest()
1391 result = Curl_pp_sendf(&ftpc->pp, "REST %d", 0); in ftp_state_rest()
1405 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_size() local
1407 if((ftp->transfer == FTPTRANSFER_INFO) && ftpc->file) { in ftp_state_size()
1411 result = Curl_pp_sendf(&ftpc->pp, "SIZE %s", ftpc->file); in ftp_state_size()
1477 result = Curl_pp_sendf(&conn->proto.ftpc.pp, "%s", cmd); in ftp_state_list()
1503 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_type() local
1508 if(data->set.opt_no_body && ftpc->file && in ftp_state_type()
1535 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_mdtm() local
1538 if((data->set.get_filetime || data->set.timecondition) && ftpc->file) { in ftp_state_mdtm()
1542 result = Curl_pp_sendf(&ftpc->pp, "MDTM %s", ftpc->file); in ftp_state_mdtm()
1561 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_ul_setup() local
1581 result = Curl_pp_sendf(&ftpc->pp, "SIZE %s", ftpc->file); in ftp_state_ul_setup()
1645 result = Curl_pp_sendf(&ftpc->pp, data->set.ftp_append?"APPE %s":"STOR %s", in ftp_state_ul_setup()
1646 ftpc->file); in ftp_state_ul_setup()
1660 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_quote() local
1685 ftpc->count1 = 0; in ftp_state_quote()
1687 ftpc->count1++; in ftp_state_quote()
1693 while((i< ftpc->count1) && item) { in ftp_state_quote()
1701 ftpc->count2 = 1; /* the sent command is allowed to fail */ in ftp_state_quote()
1704 ftpc->count2 = 0; /* failure means cancel operation */ in ftp_state_quote()
1706 result = Curl_pp_sendf(&ftpc->pp, "%s", cmd); in ftp_state_quote()
1725 if(ftpc->known_filesize != -1) { in ftp_state_quote()
1726 Curl_pgrsSetDownloadSize(data, ftpc->known_filesize); in ftp_state_quote()
1727 result = ftp_state_retr(conn, ftpc->known_filesize); in ftp_state_quote()
1737 result = Curl_pp_sendf(&ftpc->pp, "RETR %s", ftpc->file); in ftp_state_quote()
1742 result = Curl_pp_sendf(&ftpc->pp, "SIZE %s", ftpc->file); in ftp_state_quote()
1781 result = Curl_pp_sendf(&conn->proto.ftpc.pp, "%s", "PASV"); in ftp_epsv_disable()
1783 conn->proto.ftpc.count1++; in ftp_epsv_disable()
1807 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_pasv_resp() local
1816 Curl_safefree(ftpc->newhost); in ftp_state_pasv_resp()
1818 if((ftpc->count1 == 0) && in ftp_state_pasv_resp()
1848 ftpc->newport = (unsigned short)(num & 0xffff); in ftp_state_pasv_resp()
1849 ftpc->newhost = strdup(control_address(conn)); in ftp_state_pasv_resp()
1850 if(!ftpc->newhost) in ftp_state_pasv_resp()
1862 else if((ftpc->count1 == 1) && in ftp_state_pasv_resp()
1898 ftpc->newhost = strdup(control_address(conn)); in ftp_state_pasv_resp()
1901 ftpc->newhost = aprintf("%u.%u.%u.%u", ip[0], ip[1], ip[2], ip[3]); in ftp_state_pasv_resp()
1903 if(!ftpc->newhost) in ftp_state_pasv_resp()
1906 ftpc->newport = (unsigned short)(((port[0]<<8) + port[1]) & 0xffff); in ftp_state_pasv_resp()
1908 else if(ftpc->count1 == 0) { in ftp_state_pasv_resp()
1944 rc = Curl_resolv(conn, ftpc->newhost, ftpc->newport, FALSE, &addr); in ftp_state_pasv_resp()
1949 connectport = ftpc->newport; /* we connect to the remote port */ in ftp_state_pasv_resp()
1952 failf(data, "Can't resolve new host %s:%hu", ftpc->newhost, connectport); in ftp_state_pasv_resp()
1962 if(ftpc->count1 == 0 && ftpcode == 229) in ftp_state_pasv_resp()
1977 ftp_pasv_verbose(conn, addr->addr, ftpc->newhost, connectport); in ftp_state_pasv_resp()
1982 conn->secondary_port = ftpc->newport; in ftp_state_pasv_resp()
1983 conn->secondaryhostname = strdup(ftpc->newhost); in ftp_state_pasv_resp()
1997 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_port_resp() local
1998 ftpport fcmd = (ftpport)ftpc->count1; in ftp_state_port_resp()
2035 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_mdtm_resp() local
2059 ftpc->file && in ftp_state_mdtm_resp()
2168 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_retr() local
2230 result = Curl_pp_sendf(&ftpc->pp, "REST %" CURL_FORMAT_CURL_OFF_T, in ftp_state_retr()
2237 result = Curl_pp_sendf(&ftpc->pp, "RETR %s", ftpc->file); in ftp_state_retr()
2310 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_rest_resp() local
2332 result = Curl_pp_sendf(&ftpc->pp, "RETR %s", ftpc->file); in ftp_state_rest_resp()
2355 conn->proto.ftpc.state_saved = instate; in ftp_state_stor_resp()
2368 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_stor_resp() local
2370 ftpc->wait_data_conn = TRUE; in ftp_state_stor_resp()
2469 conn->proto.ftpc.state_saved = instate; in ftp_state_get_resp()
2470 conn->proto.ftpc.retr_size_saved = size; in ftp_state_get_resp()
2480 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_get_resp() local
2483 ftpc->wait_data_conn = TRUE; in ftp_state_get_resp()
2526 result = Curl_pp_sendf(&conn->proto.ftpc.pp, "PBSZ %d", 0); in ftp_state_loggedin()
2543 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_state_user_resp() local
2547 if((ftpcode == 331) && (ftpc->state == FTP_USER)) { in ftp_state_user_resp()
2550 result = Curl_pp_sendf(&ftpc->pp, "PASS %s", conn->passwd?conn->passwd:""); in ftp_state_user_resp()
2561 result = Curl_pp_sendf(&ftpc->pp, "ACCT %s", in ftp_state_user_resp()
2581 Curl_pp_sendf(&ftpc->pp, "%s", in ftp_state_user_resp()
2619 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_statemach_act() local
2620 struct pingpong *pp = &ftpc->pp; in ftp_statemach_act()
2633 switch(ftpc->state) { in ftp_statemach_act()
2637 return ftp_state_user_resp(conn, ftpcode, ftpc->state); in ftp_statemach_act()
2666 ftpc->count3 = 0; in ftp_statemach_act()
2670 ftpc->count2 = 1; /* add one to get next */ in ftp_statemach_act()
2671 ftpc->count1 = 0; in ftp_statemach_act()
2674 ftpc->count2 = -1; /* subtract one to get next */ in ftp_statemach_act()
2675 ftpc->count1 = 1; in ftp_statemach_act()
2682 result = Curl_pp_sendf(&ftpc->pp, "AUTH %s", ftpauth[ftpc->count1]); in ftp_statemach_act()
2709 else if(ftpc->count3 < 1) { in ftp_statemach_act()
2710 ftpc->count3++; in ftp_statemach_act()
2711 ftpc->count1 += ftpc->count2; /* get next attempt */ in ftp_statemach_act()
2712 result = Curl_pp_sendf(&ftpc->pp, "AUTH %s", ftpauth[ftpc->count1]); in ftp_statemach_act()
2727 result = ftp_state_user_resp(conn, ftpcode, ftpc->state); in ftp_statemach_act()
2736 Curl_pp_sendf(&ftpc->pp, "PROT %c", in ftp_statemach_act()
2756 result = Curl_pp_sendf(&ftpc->pp, "%s", "CCC"); in ftp_statemach_act()
2839 if(!ftpc->server_os && dir[0] != '/') { in ftp_statemach_act()
2840 result = Curl_pp_sendf(&ftpc->pp, "%s", "SYST"); in ftp_statemach_act()
2845 Curl_safefree(ftpc->entrypath); in ftp_statemach_act()
2846 ftpc->entrypath = dir; /* remember this */ in ftp_statemach_act()
2847 infof(data, "Entry path is '%s'\n", ftpc->entrypath); in ftp_statemach_act()
2849 data->state.most_recent_ftp_entrypath = ftpc->entrypath; in ftp_statemach_act()
2854 Curl_safefree(ftpc->entrypath); in ftp_statemach_act()
2855 ftpc->entrypath = dir; /* remember this */ in ftp_statemach_act()
2856 infof(data, "Entry path is '%s'\n", ftpc->entrypath); in ftp_statemach_act()
2858 data->state.most_recent_ftp_entrypath = ftpc->entrypath; in ftp_statemach_act()
2893 result = Curl_pp_sendf(&ftpc->pp, "%s", "SITE NAMEFMT 1"); in ftp_statemach_act()
2899 Curl_safefree(ftpc->server_os); in ftp_statemach_act()
2900 ftpc->server_os = os; in ftp_statemach_act()
2906 Curl_safefree(ftpc->server_os); in ftp_statemach_act()
2907 ftpc->server_os = os; in ftp_statemach_act()
2932 if((ftpcode >= 400) && !ftpc->count2) { in ftp_statemach_act()
2938 result = ftp_state_quote(conn, FALSE, ftpc->state); in ftp_statemach_act()
2945 ftpc->cwdcount && !ftpc->count2) { in ftp_statemach_act()
2947 ftpc->count2++; /* counter to prevent CWD-MKD loops */ in ftp_statemach_act()
2948 result = Curl_pp_sendf(&ftpc->pp, "MKD %s", in ftp_statemach_act()
2949 ftpc->dirs[ftpc->cwdcount - 1]); in ftp_statemach_act()
2956 ftpc->cwdfail = TRUE; /* don't remember this path as we failed in ftp_statemach_act()
2963 ftpc->count2 = 0; in ftp_statemach_act()
2964 if(++ftpc->cwdcount <= ftpc->dirdepth) in ftp_statemach_act()
2966 result = Curl_pp_sendf(&ftpc->pp, "CWD %s", in ftp_statemach_act()
2967 ftpc->dirs[ftpc->cwdcount - 1]); in ftp_statemach_act()
2974 if((ftpcode/100 != 2) && !ftpc->count3--) { in ftp_statemach_act()
2982 result = Curl_pp_sendf(&ftpc->pp, "CWD %s", in ftp_statemach_act()
2983 ftpc->dirs[ftpc->cwdcount - 1]); in ftp_statemach_act()
2995 result = ftp_state_type_resp(conn, ftpcode, ftpc->state); in ftp_statemach_act()
3001 result = ftp_state_size_resp(conn, ftpcode, ftpc->state); in ftp_statemach_act()
3006 result = ftp_state_rest_resp(conn, ftpcode, ftpc->state); in ftp_statemach_act()
3028 result = ftp_state_get_resp(conn, ftpcode, ftpc->state); in ftp_statemach_act()
3032 result = ftp_state_stor_resp(conn, ftpcode, ftpc->state); in ftp_statemach_act()
3052 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_multi_statemach() local
3053 CURLcode result = Curl_pp_statemach(&ftpc->pp, FALSE, FALSE); in ftp_multi_statemach()
3058 *done = (ftpc->state == FTP_STOP) ? TRUE : FALSE; in ftp_multi_statemach()
3065 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_block_statemach() local
3066 struct pingpong *pp = &ftpc->pp; in ftp_block_statemach()
3069 while(ftpc->state != FTP_STOP) { in ftp_block_statemach()
3090 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_connect() local
3091 struct pingpong *pp = &ftpc->pp; in ftp_connect()
3137 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_done() local
3138 struct pingpong *pp = &ftpc->pp; in ftp_done()
3173 ftpc->ctl_valid = FALSE; in ftp_done()
3174 ftpc->cwdfail = TRUE; /* set this TRUE to prevent us to remember the in ftp_done()
3182 if(data->set.chunk_end && ftpc->file) { in ftp_done()
3187 ftpc->known_filesize = -1; in ftp_done()
3197 ftpc->ctl_valid = FALSE; /* mark control connection as bad */ in ftp_done()
3199 free(ftpc->prevpath); in ftp_done()
3200 ftpc->prevpath = NULL; /* no path remembering */ in ftp_done()
3206 free(ftpc->prevpath); in ftp_done()
3208 if(!ftpc->cwdfail) { in ftp_done()
3212 pathLen -= ftpc->file?strlen(ftpc->file):0; /* file is url-decoded */ in ftp_done()
3215 ftpc->prevpath = rawPath; in ftp_done()
3219 ftpc->prevpath = NULL; /* no path */ in ftp_done()
3223 if(ftpc->prevpath) in ftp_done()
3224 infof(data, "Remembering we are in dir \"%s\"\n", ftpc->prevpath); in ftp_done()
3228 freedirs(ftpc); in ftp_done()
3237 if(!result && ftpc->dont_check && data->req.maxdownload > 0) { in ftp_done()
3243 ftpc->ctl_valid = FALSE; /* mark control connection as bad */ in ftp_done()
3259 if(!result && (ftp->transfer == FTPTRANSFER_BODY) && ftpc->ctl_valid && in ftp_done()
3278 ftpc->ctl_valid = FALSE; /* mark control connection as bad */ in ftp_done()
3285 if(ftpc->dont_check && data->req.maxdownload > 0) { in ftp_done()
3293 if(!ftpc->dont_check) { in ftp_done()
3342 else if(!ftpc->dont_check && in ftp_done()
3352 ftpc->dont_check = FALSE; in ftp_done()
3375 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_sendquote() local
3376 struct pingpong *pp = &ftpc->pp; in ftp_sendquote()
3397 result = Curl_pp_sendf(&ftpc->pp, "%s", cmd); in ftp_sendquote()
3426 return conn->proto.ftpc.transfertype != (ascii_wanted?'A':'I'); in ftp_need_type()
3440 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_nb_type() local
3444 if(ftpc->transfertype == want) { in ftp_nb_type()
3449 result = Curl_pp_sendf(&ftpc->pp, "TYPE %c", want); in ftp_nb_type()
3454 ftpc->transfertype = want; in ftp_nb_type()
3495 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_do_more() local
3520 if(result && (ftpc->count1 == 0)) { in ftp_do_more()
3542 if(ftpc->state) { in ftp_do_more()
3551 if(result || !ftpc->wait_data_conn) in ftp_do_more()
3564 if(ftpc->wait_data_conn == TRUE) { in ftp_do_more()
3574 ftpc->wait_data_conn = FALSE; in ftp_do_more()
3602 ftpc->dont_check = TRUE; in ftp_do_more()
3607 else if(data->set.ftp_list_only || !ftpc->file) { in ftp_do_more()
3635 if(!ftpc->wait_data_conn) { in ftp_do_more()
3833 struct ftp_conn *ftpc = &conn->proto.ftpc; in wc_statemach() local
3869 ftpc->known_filesize = finfo->size; in wc_statemach()
3930 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_do() local
3933 ftpc->wait_data_conn = FALSE; /* default to no such wait */ in ftp_do()
3970 if(conn->proto.ftpc.ctl_valid) { in ftp_quit()
3971 result = Curl_pp_sendf(&conn->proto.ftpc.pp, "%s", "QUIT"); in ftp_quit()
3975 conn->proto.ftpc.ctl_valid = FALSE; /* mark control connection as bad */ in ftp_quit()
3998 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_disconnect() local
3999 struct pingpong *pp = &ftpc->pp; in ftp_disconnect()
4009 ftpc->ctl_valid = FALSE; in ftp_disconnect()
4014 if(ftpc->entrypath) { in ftp_disconnect()
4016 if(data->state.most_recent_ftp_entrypath == ftpc->entrypath) { in ftp_disconnect()
4019 Curl_safefree(ftpc->entrypath); in ftp_disconnect()
4022 freedirs(ftpc); in ftp_disconnect()
4023 Curl_safefree(ftpc->prevpath); in ftp_disconnect()
4024 Curl_safefree(ftpc->server_os); in ftp_disconnect()
4043 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_parse_url_path() local
4050 ftpc->ctl_valid = FALSE; in ftp_parse_url_path()
4051 ftpc->cwdfail = FALSE; in ftp_parse_url_path()
4079 ftpc->dirs = calloc(1, sizeof(ftpc->dirs[0])); in ftp_parse_url_path()
4080 if(!ftpc->dirs) { in ftp_parse_url_path()
4085 ftpc->dirs[0] = calloc(1, dirlen + 1); in ftp_parse_url_path()
4086 if(!ftpc->dirs[0]) { in ftp_parse_url_path()
4091 strncpy(ftpc->dirs[0], rawPath, dirlen); in ftp_parse_url_path()
4092 ftpc->dirdepth = 1; /* we consider it to be a single dir */ in ftp_parse_url_path()
4111 ftpc->dirs = calloc(dirAlloc, sizeof(ftpc->dirs[0])); in ftp_parse_url_path()
4112 if(!ftpc->dirs) { in ftp_parse_url_path()
4122 if((compLen == 0) && (ftpc->dirdepth == 0)) in ftp_parse_url_path()
4135 ftpc->dirs[ftpc->dirdepth++] = comp; in ftp_parse_url_path()
4140 DEBUGASSERT(ftpc->dirdepth <= dirAlloc); in ftp_parse_url_path()
4147 ftpc->file = strdup(fileName); in ftp_parse_url_path()
4149 ftpc->file = NULL; /* instead of point to a zero byte, in ftp_parse_url_path()
4152 if(data->set.upload && !ftpc->file && (ftp->transfer == FTPTRANSFER_BODY)) { in ftp_parse_url_path()
4159 ftpc->cwddone = FALSE; /* default to not done */ in ftp_parse_url_path()
4162 ftpc->cwddone = TRUE; /* skip CWD for absolute paths */ in ftp_parse_url_path()
4164 const char *oldPath = conn->bits.reuse ? ftpc->prevpath : ""; in ftp_parse_url_path()
4170 n -= ftpc->file?strlen(ftpc->file):0; in ftp_parse_url_path()
4174 ftpc->cwddone = TRUE; in ftp_parse_url_path()
4188 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_dophase_done() local
4207 ftpc->ctl_valid = TRUE; /* seems good */ in ftp_dophase_done()
4247 struct ftp_conn *ftpc = &conn->proto.ftpc; in ftp_regular_transfer() local
4255 ftpc->ctl_valid = TRUE; /* starts good */ in ftp_regular_transfer()
4273 freedirs(ftpc); in ftp_regular_transfer()
4322 conn->proto.ftpc.known_filesize = -1; /* unknown size for now */ in ftp_setup_connection()