Lines Matching defs:conn

105                               struct connectdata *conn,
107 static CURLcode ftp_quit(struct Curl_easy *data, struct connectdata *conn);
121 struct connectdata *conn,
123 static int ftp_need_type(struct connectdata *conn,
130 struct connectdata *conn, bool dead_connection);
133 static int ftp_getsock(struct Curl_easy *data, struct connectdata *conn,
136 struct connectdata *conn, curl_socket_t *socks);
140 struct connectdata *conn);
214 struct connectdata *conn)
217 Curl_conn_cf_discard_all(data, conn, SECONDARYSOCKET);
260 struct connectdata *conn = data->conn;
261 curl_socket_t sock = conn->sock[SECONDARYSOCKET];
284 conn->bits.do_more = FALSE;
288 result = Curl_conn_tcp_accepted_set(data, conn, SECONDARYSOCKET, &s);
303 close_secondarysocket(data, conn);
361 struct connectdata *conn = data->conn;
362 curl_socket_t ctrl_sock = conn->sock[FIRSTSOCKET];
363 curl_socket_t data_sock = conn->sock[SECONDARYSOCKET];
364 struct ftp_conn *ftpc = &conn->proto.ftpc;
414 infof(data, "Ctrl conn has data while waiting for data conn");
438 struct connectdata *conn = data->conn;
442 if(conn->bits.ftp_use_data_ssl && data->set.ftp_use_port &&
443 !Curl_conn_is_ssl(conn, SECONDARYSOCKET)) {
444 result = Curl_ssl_cfilter_add(data, conn, SECONDARYSOCKET);
452 if(conn->proto.ftpc.state_saved == FTP_STOR) {
458 Curl_sndbufset(conn->sock[SECONDARYSOCKET]);
465 conn->proto.ftpc.retr_size_saved, FALSE, -1);
468 conn->proto.ftpc.pp.pending_resp = TRUE; /* expect server response */
536 static bool ftp_endofresp(struct Curl_easy *data, struct connectdata *conn,
540 (void)conn;
561 struct connectdata *conn = data->conn;
562 char * const buf = Curl_dyn_ptr(&data->conn->proto.ftpc.pp.recvbuf);
567 code = Curl_sec_read_msg(data, conn, buf, PROT_SAFE);
570 code = Curl_sec_read_msg(data, conn, buf, PROT_PRIVATE);
573 code = Curl_sec_read_msg(data, conn, buf, PROT_CONFIDENTIAL);
623 struct connectdata *conn = data->conn;
624 curl_socket_t sockfd = conn->sock[FIRSTSOCKET];
626 struct ftp_conn *ftpc = &conn->proto.ftpc;
763 struct connectdata *conn = data->conn;
764 struct ftp_conn *ftpc = &conn->proto.ftpc;
782 struct connectdata *conn)
785 &conn->proto.ftpc.pp, "USER %s",
786 conn->user?conn->user:"");
788 struct ftp_conn *ftpc = &conn->proto.ftpc;
796 struct connectdata *conn)
798 CURLcode result = Curl_pp_sendf(data, &conn->proto.ftpc.pp, "%s", "PWD");
807 struct connectdata *conn,
810 return Curl_pp_getsock(data, &conn->proto.ftpc.pp, socks);
815 struct connectdata *conn, curl_socket_t *socks)
817 struct ftp_conn *ftpc = &conn->proto.ftpc;
826 if(conn->cfilter[SECONDARYSOCKET]
827 && !Curl_conn_is_connected(conn, SECONDARYSOCKET))
835 socks[0] = conn->sock[FIRSTSOCKET];
836 if(conn->sock[SECONDARYSOCKET] != CURL_SOCKET_BAD) {
837 socks[1] = conn->sock[SECONDARYSOCKET];
843 return Curl_pp_getsock(data, &conn->proto.ftpc.pp, socks);
853 struct connectdata *conn)
856 struct ftp_conn *ftpc = &conn->proto.ftpc;
868 if(conn->bits.reuse && ftpc->entrypath &&
909 struct connectdata *conn = data->conn;
910 struct ftp_conn *ftpc = &conn->proto.ftpc;
1014 switch(Curl_if2ip(conn->remote_addr->family,
1016 Curl_ipv6_scope(&conn->remote_addr->sa_addr),
1017 conn->scope_id,
1041 if(getsockname(conn->sock[FIRSTSOCKET], sa, &sslen)) {
1086 if(Curl_socket_open(data, ai, NULL, conn->transport, &portsock)) {
1123 if(getsockname(conn->sock[FIRSTSOCKET], sa, &sslen)) {
1176 if(!conn->bits.ftp_use_eprt && conn->bits.ipv6)
1179 conn->bits.ftp_use_eprt = TRUE;
1184 if(!conn->bits.ftp_use_eprt && (EPRT == fcmd))
1256 result = Curl_conn_tcp_listen_set(data, conn, SECONDARYSOCKET, &portsock);
1267 Curl_socket_close(data, conn, portsock);
1272 struct connectdata *conn)
1274 struct ftp_conn *ftpc = &conn->proto.ftpc;
1294 if(!conn->bits.ftp_use_epsv && conn->bits.ipv6)
1297 conn->bits.ftp_use_epsv = TRUE;
1300 modeoff = conn->bits.ftp_use_epsv?0:1;
1322 struct connectdata *conn = data->conn;
1340 struct ftp_conn *ftpc = &conn->proto.ftpc;
1341 if(!conn->proto.ftpc.file)
1348 conn->proto.ftpc.file);
1351 conn->proto.ftpc.file);
1356 result = ftp_state_use_pasv(data, conn);
1362 struct connectdata *conn)
1366 struct ftp_conn *ftpc = &conn->proto.ftpc;
1384 struct connectdata *conn)
1388 struct ftp_conn *ftpc = &conn->proto.ftpc;
1399 result = ftp_state_rest(data, conn);
1408 struct connectdata *conn = data->conn;
1460 result = Curl_pp_sendf(data, &conn->proto.ftpc.pp, "%s", cmd);
1485 struct connectdata *conn = data->conn;
1486 struct ftp_conn *ftpc = &conn->proto.ftpc;
1492 ftp_need_type(conn, data->state.prefer_ascii)) {
1502 result = ftp_nb_type(data, conn, data->state.prefer_ascii, FTP_TYPE);
1507 result = ftp_state_size(data, conn);
1517 struct connectdata *conn = data->conn;
1518 struct ftp_conn *ftpc = &conn->proto.ftpc;
1542 struct connectdata *conn = data->conn;
1544 struct ftp_conn *ftpc = &conn->proto.ftpc;
1575 if(conn->seek_func) {
1577 seekerr = conn->seek_func(conn->seek_client, data->state.resume_from,
1644 struct connectdata *conn = data->conn;
1645 struct ftp_conn *ftpc = &conn->proto.ftpc;
1704 result = ftp_state_cwd(data, conn);
1754 struct connectdata *conn)
1758 if(conn->bits.ipv6
1760 && !(conn->bits.tunnel_proxy || conn->bits.socksproxy)
1770 conn->bits.ftp_use_epsv = FALSE;
1772 Curl_conn_cf_discard_all(data, conn, SECONDARYSOCKET);
1775 result = Curl_pp_sendf(data, &conn->proto.ftpc.pp, "%s", "PASV");
1777 conn->proto.ftpc.count1++;
1785 static char *control_address(struct connectdata *conn)
1792 if(conn->bits.tunnel_proxy || conn->bits.socksproxy)
1793 return conn->host.name;
1795 return conn->primary_ip;
1824 struct connectdata *conn = data->conn;
1825 struct ftp_conn *ftpc = &conn->proto.ftpc;
1859 ftpc->newhost = strdup(control_address(conn));
1903 conn->host.name);
1904 ftpc->newhost = strdup(control_address(conn));
1916 return ftp_epsv_disable(data, conn);
1924 if(conn->bits.proxy) {
1930 const char * const host_name = conn->bits.socksproxy ?
1931 conn->socks_proxy.host.name : conn->http_proxy.host.name;
1932 rc = Curl_resolv(data, host_name, conn->port, FALSE, &addr);
1939 (unsigned short)conn->port; /* we connect to the proxy's port */
1953 if(conn->bits.tcp_fastopen && !conn->bits.reuse && !ftpc->newhost[0]) {
1954 Curl_conn_ev_update_info(data, conn);
1956 ftpc->newhost = strdup(control_address(conn));
1974 result = Curl_conn_setup(data, conn, SECONDARYSOCKET, addr,
1975 conn->bits.ftp_use_data_ssl?
1981 return ftp_epsv_disable(data, conn);
1999 Curl_safefree(conn->secondaryhostname);
2000 conn->secondary_port = ftpc->newport;
2001 conn->secondaryhostname = strdup(ftpc->newhost);
2002 if(!conn->secondaryhostname)
2005 conn->bits.do_more = TRUE;
2014 struct connectdata *conn = data->conn;
2015 struct ftp_conn *ftpc = &conn->proto.ftpc;
2026 conn->bits.ftp_use_eprt = FALSE;
2101 struct connectdata *conn = data->conn;
2102 struct ftp_conn *ftpc = &conn->proto.ftpc;
2208 struct connectdata *conn = data->conn;
2222 result = ftp_state_size(data, conn);
2238 struct connectdata *conn = data->conn;
2239 struct ftp_conn *ftpc = &conn->proto.ftpc;
2323 char *buf = Curl_dyn_ptr(&data->conn->proto.ftpc.pp.recvbuf);
2324 size_t len = data->conn->proto.ftpc.pp.nfinal;
2367 result = ftp_state_rest(data, data->conn);
2382 struct connectdata *conn,
2387 struct ftp_conn *ftpc = &conn->proto.ftpc;
2423 struct connectdata *conn = data->conn;
2432 conn->proto.ftpc.state_saved = instate;
2445 struct ftp_conn *ftpc = &conn->proto.ftpc;
2446 infof(data, "Data conn was not available immediately");
2462 struct connectdata *conn = data->conn;
2507 char *buf = Curl_dyn_ptr(&conn->proto.ftpc.pp.recvbuf);
2548 conn->proto.ftpc.state_saved = instate;
2549 conn->proto.ftpc.retr_size_saved = size;
2559 struct ftp_conn *ftpc = &conn->proto.ftpc;
2560 infof(data, "Data conn was not available immediately");
2589 struct connectdata *conn = data->conn;
2591 if(conn->bits.ftp_use_control_ssl) {
2606 result = Curl_pp_sendf(data, &conn->proto.ftpc.pp, "PBSZ %d", 0);
2611 result = ftp_state_pwd(data, conn);
2621 struct connectdata *conn = data->conn;
2622 struct ftp_conn *ftpc = &conn->proto.ftpc;
2629 conn->passwd?conn->passwd:"");
2692 struct connectdata *conn)
2695 curl_socket_t sock = conn->sock[FIRSTSOCKET];
2697 struct ftp_conn *ftpc = &conn->proto.ftpc;
2716 conn->bits.ftp_use_control_ssl)
2731 Curl_sec_request_prot(conn, "private");
2734 Curl_sec_request_prot(conn, data->set.str[STRING_KRB_LEVEL]);
2736 if(Curl_sec_login(data, conn)) {
2744 if(data->set.use_ssl && !conn->bits.ftp_use_control_ssl) {
2770 result = ftp_state_user(data, conn);
2789 if(!Curl_conn_is_ssl(conn, FIRSTSOCKET)) {
2790 result = Curl_ssl_cfilter_add(data, conn, FIRSTSOCKET);
2798 conn->bits.ftp_use_data_ssl = FALSE; /* clear-text data */
2799 conn->bits.ftp_use_control_ssl = TRUE; /* SSL on control */
2800 result = ftp_state_user(data, conn);
2816 result = ftp_state_user(data, conn);
2840 conn->bits.ftp_use_data_ssl =
2856 result = ftp_state_pwd(data, conn);
2869 result = ftp_state_pwd(data, conn);
3008 ftp_state_pwd(data, conn);
3100 result = ftp_state_rest_resp(data, conn, ftpcode, ftpc->state);
3109 result = ftp_state_use_pasv(data, conn);
3145 struct connectdata *conn = data->conn;
3146 struct ftp_conn *ftpc = &conn->proto.ftpc;
3158 struct connectdata *conn)
3160 struct ftp_conn *ftpc = &conn->proto.ftpc;
3185 struct connectdata *conn = data->conn;
3186 struct ftp_conn *ftpc = &conn->proto.ftpc;
3192 connkeep(conn, "FTP default");
3196 if(conn->handler->flags & PROTOPT_SSL) {
3201 conn->bits.ftp_use_control_ssl = TRUE;
3227 struct connectdata *conn = data->conn;
3229 struct ftp_conn *ftpc = &conn->proto.ftpc;
3267 connclose(conn, "FTP ended with bad error code");
3289 connclose(conn, "FTP: out of memory!"); /* mark for connection closure */
3324 shutdown(conn->sock[SECONDARYSOCKET], 2); /* SD_BOTH */
3327 if(conn->sock[SECONDARYSOCKET] != CURL_SOCKET_BAD) {
3335 connclose(conn, "ABOR command failed"); /* connection closure */
3339 close_secondarysocket(data, conn);
3362 connclose(conn, "Timeout or similar in FTP DONE operation"); /* close */
3374 connclose(conn, "Partial download with no ability to check");
3441 result = ftp_sendquote(data, conn, data->set.postquote);
3458 struct connectdata *conn, struct curl_slist *quote)
3461 struct ftp_conn *ftpc = &conn->proto.ftpc;
3509 static int ftp_need_type(struct connectdata *conn,
3512 return conn->proto.ftpc.transfertype != (ascii_wanted?'A':'I');
3524 struct connectdata *conn,
3527 struct ftp_conn *ftpc = &conn->proto.ftpc;
3581 struct connectdata *conn = data->conn;
3582 struct ftp_conn *ftpc = &conn->proto.ftpc;
3598 if(conn->cfilter[SECONDARYSOCKET]) {
3604 return ftp_epsv_disable(data, conn);
3657 result = ftp_nb_type(data, conn, data->state.prefer_ascii,
3685 result = ftp_nb_type(data, conn, TRUE, FTP_LIST_TYPE);
3692 result = ftp_nb_type(data, conn, data->state.prefer_ascii,
3752 *connected = Curl_conn_is_connected(data->conn, SECONDARYSOCKET);
3868 struct connectdata *conn = data->conn;
3906 struct ftp_conn *ftpc = &conn->proto.ftpc;
4007 struct connectdata *conn = data->conn;
4008 struct ftp_conn *ftpc = &conn->proto.ftpc;
4044 static CURLcode ftp_quit(struct Curl_easy *data, struct connectdata *conn)
4048 if(conn->proto.ftpc.ctl_valid) {
4049 result = Curl_pp_sendf(data, &conn->proto.ftpc.pp, "%s", "QUIT");
4053 conn->proto.ftpc.ctl_valid = FALSE; /* mark control connection as bad */
4054 connclose(conn, "QUIT command failed"); /* mark for connection closure */
4061 result = ftp_block_statemach(data, conn);
4075 struct connectdata *conn,
4078 struct ftp_conn *ftpc = &conn->proto.ftpc;
4092 (void)ftp_quit(data, conn); /* ignore errors on the QUIT */
4107 Curl_sec_end(conn);
4128 struct connectdata *conn = data->conn;
4129 struct ftp_conn *ftpc = &conn->proto.ftpc;
4251 const char *oldPath = conn->bits.reuse ? ftpc->prevpath : "";
4273 struct connectdata *conn = data->conn;
4275 struct ftp_conn *ftpc = &conn->proto.ftpc;
4282 close_secondarysocket(data, conn);
4292 conn->bits.do_more = TRUE;
4333 struct connectdata *conn = data->conn;
4334 struct ftp_conn *ftpc = &conn->proto.ftpc;
4366 struct connectdata *conn)
4371 struct ftp_conn *ftpc = &conn->proto.ftpc;
4403 type = strstr(conn->host.rawalloc, ";type=");