summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2010-12-01 13:28:26 +0000
committerRichard W.M. Jones <rjones@redhat.com>2010-12-01 13:35:32 +0000
commit7e523077d650cfb71044d5e74aa8fe1f91c019ae (patch)
treeffeca25cbd2acb721905e899268d813fffebd158 /src
parent3aa8182c3cc478bf723205f1a4dd84e160768448 (diff)
downloadlibguestfs-7e523077d650cfb71044d5e74aa8fe1f91c019ae.tar.gz
libguestfs-7e523077d650cfb71044d5e74aa8fe1f91c019ae.tar.xz
libguestfs-7e523077d650cfb71044d5e74aa8fe1f91c019ae.zip
protocol: Send progress_hint in header.
For actions that have FileIn arguments, count the size of all the input files and send that in the progress_hint field of the request header.
Diffstat (limited to 'src')
-rw-r--r--src/guestfs-internal.h2
-rw-r--r--src/proto.c5
2 files changed, 4 insertions, 3 deletions
diff --git a/src/guestfs-internal.h b/src/guestfs-internal.h
index d12e345c..e4e198b1 100644
--- a/src/guestfs-internal.h
+++ b/src/guestfs-internal.h
@@ -250,7 +250,7 @@ extern void guestfs___print_timestamped_message (guestfs_h *g, const char *fs, .
extern void guestfs___free_inspect_info (guestfs_h *g);
extern int guestfs___set_busy (guestfs_h *g);
extern int guestfs___end_busy (guestfs_h *g);
-extern int guestfs___send (guestfs_h *g, int proc_nr, xdrproc_t xdrp, char *args);
+extern int guestfs___send (guestfs_h *g, int proc_nr, uint64_t progress_hint, xdrproc_t xdrp, char *args);
extern int guestfs___recv (guestfs_h *g, const char *fn, struct guestfs_message_header *hdr, struct guestfs_message_error *err, xdrproc_t xdrp, char *ret);
extern int guestfs___send_file (guestfs_h *g, const char *filename);
extern int guestfs___recv_file (guestfs_h *g, const char *filename);
diff --git a/src/proto.c b/src/proto.c
index 5c22e3d6..a2a5a15a 100644
--- a/src/proto.c
+++ b/src/proto.c
@@ -627,7 +627,8 @@ guestfs___accept_from_daemon (guestfs_h *g)
}
int
-guestfs___send (guestfs_h *g, int proc_nr, xdrproc_t xdrp, char *args)
+guestfs___send (guestfs_h *g, int proc_nr, uint64_t progress_hint,
+ xdrproc_t xdrp, char *args)
{
struct guestfs_message_header hdr;
XDR xdr;
@@ -658,7 +659,7 @@ guestfs___send (guestfs_h *g, int proc_nr, xdrproc_t xdrp, char *args)
hdr.direction = GUESTFS_DIRECTION_CALL;
hdr.serial = serial;
hdr.status = GUESTFS_STATUS_OK;
- hdr.progress_hint = 0;
+ hdr.progress_hint = progress_hint;
hdr.optargs_bitmask = 0;
if (!xdr_guestfs_message_header (&xdr, &hdr)) {