Lines Matching defs:conn

143 ftp_chkerr(conn_t *conn)
145 if (fetch_getln(conn) == -1) {
149 if (isftpinfo(conn->buf)) {
150 while (conn->buflen && !isftpreply(conn->buf)) {
151 if (fetch_getln(conn) == -1) {
158 while (conn->buflen &&
159 isspace((unsigned char)conn->buf[conn->buflen - 1]))
160 conn->buflen--;
161 conn->buf[conn->buflen] = '\0';
163 if (!isftpreply(conn->buf)) {
168 conn->err = (conn->buf[0] - '0') * 100
169 + (conn->buf[1] - '0') * 10
170 + (conn->buf[2] - '0');
172 return (conn->err);
179 ftp_cmd(conn_t *conn, const char *fmt, ...)
196 r = fetch_putln(conn, msg, len);
204 return (ftp_chkerr(conn));
234 ftp_pwd(conn_t *conn, char *pwd, size_t pwdlen)
239 if (conn->err != FTP_WORKING_DIRECTORY &&
240 conn->err != FTP_FILE_ACTION_OK)
242 end = conn->buf + conn->buflen;
243 src = conn->buf + 4;
270 ftp_cwd(conn_t *conn, const char *file)
279 if ((e = ftp_cmd(conn, "PWD")) != FTP_WORKING_DIRECTORY ||
280 (e = ftp_pwd(conn, pwd, sizeof(pwd))) != FTP_OK) {
298 if ((e = ftp_cmd(conn, "CDUP")) != FTP_FILE_ACTION_OK ||
299 (e = ftp_cmd(conn, "PWD")) != FTP_WORKING_DIRECTORY ||
300 (e = ftp_pwd(conn, pwd, sizeof(pwd))) != FTP_OK) {
316 e = ftp_cmd(conn, "CWD %.*s", (int)(end - beg), beg);
327 e = ftp_cmd(conn, "CWD %.*s", file + i - beg, beg);
340 ftp_mode_type(conn_t *conn, int mode, int type)
353 if ((e = ftp_cmd(conn, "MODE %c", mode)) != FTP_OK) {
389 if ((e = ftp_cmd(conn, "TYPE %c", type)) != FTP_OK)
399 ftp_stat(conn_t *conn, const char *file, struct url_stat *us)
413 if ((e = ftp_mode_type(conn, 0, type)) != FTP_OK) {
418 e = ftp_cmd(conn, "SIZE %.*s", filenamelen, filename);
423 for (ln = conn->buf + 4; *ln && isspace((unsigned char)*ln); ln++)
436 e = ftp_cmd(conn, "MDTM %.*s", filenamelen, filename);
441 for (ln = conn->buf + 4; *ln && isspace((unsigned char)*ln); ln++)
619 ftp_transfer(conn_t *conn, const char *oper, const char *file,
647 if ((e = ftp_mode_type(conn, 0, type)) != FTP_OK)
652 if (getsockname(conn->sd, (struct sockaddr *)&sa, &l) == -1)
674 if ((e = ftp_cmd(conn, "PASV")) != FTP_PASSIVE_MODE)
678 if ((e = ftp_cmd(conn, "EPSV")) != FTP_EPASSIVE_MODE) {
681 if ((e = ftp_cmd(conn, "LPSV")) !=
695 ln = conn->buf;
733 if (ftp_cmd(conn, "REST %lu", (u_long)offset) != FTP_FILE_OK)
738 if (getpeername(conn->sd, (struct sockaddr *)&sa, &l) == -1)
779 e = ftp_cmd(conn, "%s %.*s", oper, filenamelen, filename);
823 e = ftp_cmd(conn, "PORT %d,%d,%d,%d,%d,%d",
836 e = ftp_cmd(conn, "EPRT |%d|%s|%d|", 2, hname,
843 e = ftp_cmd(conn,
864 if (ftp_cmd(conn, "REST %ju", (uintmax_t)offset) != FTP_FILE_OK)
870 e = ftp_cmd(conn, "%s %.*s", oper, filenamelen, filename);
881 if ((df = ftp_setup(conn, fetch_reopen(sd), mode)) == NULL)
903 ftp_authenticate(conn_t *conn, struct url *url, struct url *purl)
920 e = ftp_cmd(conn, "USER %s@%s", user, url->host);
922 e = ftp_cmd(conn, "USER %s@%s@%d", user, url->host, url->port);
924 e = ftp_cmd(conn, "USER %s", user);
941 e = ftp_cmd(conn, "PASS %s", pwd);
953 conn_t *conn;
974 conn = fetch_connect(purl->host, purl->port, af, verbose);
977 conn = fetch_connect(url->host, url->port, af, verbose);
982 if (conn == NULL)
987 if ((e = ftp_chkerr(conn)) != FTP_SERVICE_READY)
991 if ((e = ftp_authenticate(conn, url, purl)) != FTP_LOGGED_IN)
997 return (conn);
1002 fetch_close(conn);
1010 ftp_disconnect(conn_t *conn)
1012 (void)ftp_cmd(conn, "QUIT");
1013 if (conn == cached_connection && conn->ref == 1)
1015 fetch_close(conn);
1037 conn_t *conn;
1052 if ((conn = ftp_connect(url, purl, flags)) == NULL)
1056 cached_connection = fetch_ref(conn);
1058 return (conn);
1100 conn_t *conn;
1116 conn = ftp_cached_connect(url, purl, flags);
1119 if (conn == NULL)
1123 if (ftp_cwd(conn, url->doc) == -1)
1127 if (us && ftp_stat(conn, url->doc, us) == -1
1134 --conn->ref;
1135 ftp_disconnect(conn);
1144 return (ftp_transfer(conn, op, url->doc, oflag, url->offset, flags));
1147 ftp_disconnect(conn);