Home | History | Annotate | Download | only in libfetch

Lines Matching refs:conn

142 _ftp_chkerr(conn_t *conn)
144 if (_fetch_getln(conn) == -1) {
148 if (isftpinfo(conn->buf)) {
149 while (conn->buflen && !isftpreply(conn->buf)) {
150 if (_fetch_getln(conn) == -1) {
157 while (conn->buflen && isspace((unsigned)conn->buf[conn->buflen - 1]))
158 conn->buflen--;
159 conn->buf[conn->buflen] = '\0';
161 if (!isftpreply(conn->buf)) {
166 conn->err = (conn->buf[0] - '0') * 100
167 + (conn->buf[1] - '0') * 10
168 + (conn->buf[2] - '0');
170 return (conn->err);
177 _ftp_cmd(conn_t *conn, const char *fmt, ...)
194 r = _fetch_putln(conn, msg, len);
202 return (_ftp_chkerr(conn));
232 _ftp_pwd(conn_t *conn, char *pwd, size_t pwdlen)
237 if (conn->err != FTP_WORKING_DIRECTORY &&
238 conn->err != FTP_FILE_ACTION_OK)
240 end = conn->buf + conn->buflen;
241 src = conn->buf + 4;
268 _ftp_cwd(conn_t *conn, const char *file)
277 if ((e = _ftp_cmd(conn, "PWD")) != FTP_WORKING_DIRECTORY ||
278 (e = _ftp_pwd(conn, pwd, sizeof(pwd))) != FTP_OK) {
296 if ((e = _ftp_cmd(conn, "CDUP")) != FTP_FILE_ACTION_OK ||
297 (e = _ftp_cmd(conn, "PWD")) != FTP_WORKING_DIRECTORY ||
298 (e = _ftp_pwd(conn, pwd, sizeof(pwd))) != FTP_OK) {
314 e = _ftp_cmd(conn, "CWD %.*s", (int)(end - beg), beg);
325 e = _ftp_cmd(conn, "CWD %.*s", file + i - beg, beg);
338 _ftp_mode_type(conn_t *conn, int mode, int type)
352 if ((e = _ftp_cmd(conn, "MODE %c", mode)) != FTP_OK) {
391 if ((e = _ftp_cmd(conn, "TYPE %c", type)) != FTP_OK)
401 _ftp_stat(conn_t *conn, const char *file, struct url_stat *us)
415 if ((e = _ftp_mode_type(conn, 0, type)) != FTP_OK) {
420 e = _ftp_cmd(conn, "SIZE %.*s", filenamelen, filename);
425 for (ln = conn->buf + 4; *ln && isspace((unsigned)*ln); ln++)
438 e = _ftp_cmd(conn, "MDTM %.*s", filenamelen, filename);
443 for (ln = conn->buf + 4; *ln && isspace((unsigned)*ln); ln++)
622 _ftp_transfer(conn_t *conn, const char *oper, const char *file,
651 if ((e = _ftp_mode_type(conn, 0, type)) != FTP_OK)
656 if (getsockname(conn->sd, (struct sockaddr *)(void *)&sa, &l) == -1)
678 if ((e = _ftp_cmd(conn, "PASV")) != FTP_PASSIVE_MODE)
682 if ((e = _ftp_cmd(conn, "EPSV")) != FTP_EPASSIVE_MODE) {
685 if ((e = _ftp_cmd(conn, "LPSV")) !=
699 ln = conn->buf;
737 if (_ftp_cmd(conn, "REST %lu", (u_long)offset) != FTP_FILE_OK)
742 if (getpeername(conn->sd, (struct sockaddr *)(void *)&sa, &l) == -1)
783 e = _ftp_cmd(conn, "%s %.*s", oper, filenamelen, filename);
827 e = _ftp_cmd(conn, "PORT %d,%d,%d,%d,%d,%d",
841 e = _ftp_cmd(conn, "EPRT |%d|%s|%d|", 2, hname,
848 e = _ftp_cmd(conn,
869 if (_ftp_cmd(conn, "REST %ju", (uintmax_t)offset) != FTP_FILE_OK)
875 e = _ftp_cmd(conn, "%s %.*s", oper, filenamelen, filename);
886 if ((df = _ftp_setup(conn, _fetch_reopen(sd), mode)) == NULL)
908 _ftp_authenticate(conn_t *conn, struct url *url, struct url *purl)
925 e = _ftp_cmd(conn, "USER %s@%s", user, url->host);
927 e = _ftp_cmd(conn, "USER %s@%s@%d", user, url->host, url->port);
929 e = _ftp_cmd(conn, "USER %s", user);
946 e = _ftp_cmd(conn, "PASS %s", pwd);
958 conn_t *conn;
979 conn = _fetch_connect(purl->host, purl->port, af, verbose);
982 conn = _fetch_connect(url->host, url->port, af, verbose);
987 if (conn == NULL)
992 if ((e = _ftp_chkerr(conn)) != FTP_SERVICE_READY)
996 if ((e = _ftp_authenticate(conn, url, purl)) != FTP_LOGGED_IN)
1002 return (conn);
1007 _fetch_close(conn);
1015 _ftp_disconnect(conn_t *conn)
1017 (void)_ftp_cmd(conn, "QUIT");
1018 if (conn == cached_connection && conn->ref == 1)
1020 _fetch_close(conn);
1042 conn_t *conn;
1057 if ((conn = _ftp_connect(url, purl, flags)) == NULL)
1061 cached_connection = _fetch_ref(conn);
1063 return (conn);
1103 conn_t *conn;
1119 conn = _ftp_cached_connect(url, purl, flags);
1122 if (conn == NULL)
1126 if (_ftp_cwd(conn, url->doc) == -1)
1130 if (us && _ftp_stat(conn, url->doc, us) == -1
1144 return (_ftp_transfer(conn, op, url->doc, oflag, url->offset, flags));