Lines Matching refs:ftp
61 static ssize_t hmcdrv_cache_get(const struct hmcdrv_ftp_cmdspec *ftp) in hmcdrv_cache_get() argument
66 if ((ftp->id != hmcdrv_cache_file.id) || in hmcdrv_cache_get()
67 strcmp(hmcdrv_cache_file.fname, ftp->fname)) in hmcdrv_cache_get()
70 if (ftp->ofs >= hmcdrv_cache_file.fsize) /* EOF ? */ in hmcdrv_cache_get()
80 len = hmcdrv_cache_file.fsize - ftp->ofs; in hmcdrv_cache_get()
82 if (len > ftp->len) in hmcdrv_cache_get()
83 len = ftp->len; in hmcdrv_cache_get()
88 pos = ftp->ofs - hmcdrv_cache_file.ofs; in hmcdrv_cache_get()
93 memcpy(ftp->buf, in hmcdrv_cache_get()
113 static ssize_t hmcdrv_cache_do(const struct hmcdrv_ftp_cmdspec *ftp, in hmcdrv_cache_do() argument
123 if ((ftp->len > 0) && (hmcdrv_cache_file.len >= ftp->len)) { in hmcdrv_cache_do()
129 struct hmcdrv_ftp_cmdspec cftp = *ftp; /* make a copy */ in hmcdrv_cache_do()
137 len, ftp->fname); in hmcdrv_cache_do()
139 if (len > ftp->len) in hmcdrv_cache_do()
140 len = ftp->len; in hmcdrv_cache_do()
142 hmcdrv_cache_file.ofs = ftp->ofs; in hmcdrv_cache_do()
145 memcpy(ftp->buf, hmcdrv_cache_file.content, len); in hmcdrv_cache_do()
148 len = func(ftp, &hmcdrv_cache_file.fsize); in hmcdrv_cache_do()
156 strlcpy(hmcdrv_cache_file.fname, ftp->fname, in hmcdrv_cache_do()
158 hmcdrv_cache_file.id = ftp->id; in hmcdrv_cache_do()
160 ftp->id, hmcdrv_cache_file.fsize, ftp->fname); in hmcdrv_cache_do()
176 ssize_t hmcdrv_cache_cmd(const struct hmcdrv_ftp_cmdspec *ftp, in hmcdrv_cache_cmd() argument
181 if ((ftp->id == HMCDRV_FTP_DIR) || /* read cache */ in hmcdrv_cache_cmd()
182 (ftp->id == HMCDRV_FTP_NLIST) || in hmcdrv_cache_cmd()
183 (ftp->id == HMCDRV_FTP_GET)) { in hmcdrv_cache_cmd()
185 len = hmcdrv_cache_get(ftp); in hmcdrv_cache_cmd()
190 len = hmcdrv_cache_do(ftp, func); in hmcdrv_cache_cmd()
196 len = func(ftp, NULL); /* simply do original command */ in hmcdrv_cache_cmd()