X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=sftp.h;h=031aea273b23f289b399f23ff4872355ff9f6b9d;hb=550f7b37cb7dbe0dcd68d2ac2c3b529e643599b3;hp=77aa2d907b4c62964314d4be63948a0bba1261a6;hpb=5bd604f53f24f6e4255db8fa9d65acba537229ae;p=PuTTY.git diff --git a/sftp.h b/sftp.h index 77aa2d90..031aea27 100644 --- a/sftp.h +++ b/sftp.h @@ -67,6 +67,11 @@ int sftp_senddata(char *data, int len); int sftp_recvdata(char *data, int len); +/* + * Free sftp_requests + */ +void sftp_cleanup_request(void); + struct fxp_attrs { unsigned long flags; uint64 size; @@ -206,6 +211,12 @@ void fxp_free_names(struct fxp_names *names); struct fxp_name *fxp_dup_name(struct fxp_name *name); void fxp_free_name(struct fxp_name *name); +/* + * Store user data in an sftp_request structure. + */ +void *fxp_get_userdata(struct sftp_request *req); +void fxp_set_userdata(struct sftp_request *req, void *data); + /* * These functions might well be temporary placeholders to be * replaced with more useful similar functions later. They form the @@ -214,3 +225,24 @@ void fxp_free_name(struct fxp_name *name); void sftp_register(struct sftp_request *req); struct sftp_request *sftp_find_request(struct sftp_packet *pktin); struct sftp_packet *sftp_recv(void); + +/* + * A wrapper to go round fxp_read_* and fxp_write_*, which manages + * the queueing of multiple read/write requests. + */ + +struct fxp_xfer; + +struct fxp_xfer *xfer_download_init(struct fxp_handle *fh, uint64 offset); +void xfer_download_queue(struct fxp_xfer *xfer); +int xfer_download_gotpkt(struct fxp_xfer *xfer, struct sftp_packet *pktin); +int xfer_download_data(struct fxp_xfer *xfer, void **buf, int *len); + +struct fxp_xfer *xfer_upload_init(struct fxp_handle *fh, uint64 offset); +int xfer_upload_ready(struct fxp_xfer *xfer); +void xfer_upload_data(struct fxp_xfer *xfer, char *buffer, int len); +int xfer_upload_gotpkt(struct fxp_xfer *xfer, struct sftp_packet *pktin); + +int xfer_done(struct fxp_xfer *xfer); +void xfer_set_error(struct fxp_xfer *xfer); +void xfer_cleanup(struct fxp_xfer *xfer);