upstream: factor out a structure duplicated between downloading

and crossloading; ok markus@

OpenBSD-Commit-ID: 96eede24d520569232086a129febe342e4765d39
This commit is contained in:
djm@openbsd.org 2021-08-07 00:07:18 +00:00 committed by Damien Miller
parent 318c06bb04
commit 48cd39b7a4

View File

@ -1,4 +1,4 @@
/* $OpenBSD: sftp-client.c,v 1.145 2021/08/07 00:02:41 djm Exp $ */ /* $OpenBSD: sftp-client.c,v 1.146 2021/08/07 00:07:18 djm Exp $ */
/* /*
* Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
* *
@ -100,6 +100,15 @@ struct sftp_conn {
struct bwlimit bwlimit_in, bwlimit_out; struct bwlimit bwlimit_in, bwlimit_out;
}; };
/* Tracks in-progress requests during file transfers */
struct request {
u_int id;
size_t len;
u_int64_t offset;
TAILQ_ENTRY(request) tq;
};
TAILQ_HEAD(requests, request);
static u_char * static u_char *
get_handle(struct sftp_conn *conn, u_int expected_id, size_t *len, get_handle(struct sftp_conn *conn, u_int expected_id, size_t *len,
const char *errfmt, ...) __attribute__((format(printf, 4, 5))); const char *errfmt, ...) __attribute__((format(printf, 4, 5)));
@ -1339,13 +1348,7 @@ do_download(struct sftp_conn *conn, const char *remote_path,
off_t progress_counter; off_t progress_counter;
size_t handle_len; size_t handle_len;
struct stat st; struct stat st;
struct request { struct requests requests;
u_int id;
size_t len;
u_int64_t offset;
TAILQ_ENTRY(request) tq;
};
TAILQ_HEAD(reqhead, request) requests;
struct request *req; struct request *req;
u_char type; u_char type;
@ -2127,13 +2130,7 @@ do_crossload(struct sftp_conn *from, struct sftp_conn *to,
off_t progress_counter; off_t progress_counter;
u_char *from_handle, *to_handle; u_char *from_handle, *to_handle;
size_t from_handle_len, to_handle_len; size_t from_handle_len, to_handle_len;
struct request { struct requests requests;
u_int id;
size_t len;
u_int64_t offset;
TAILQ_ENTRY(request) tq;
};
TAILQ_HEAD(reqhead, request) requests;
struct request *req; struct request *req;
u_char type; u_char type;