Fix mkdir-p if directory exists (RHBZ#503133).
[libguestfs.git] / src / guestfs_protocol.c
index 86a338f..2838d95 100644 (file)
@@ -1187,6 +1187,658 @@ xdr_guestfs_blockdev_rereadpt_args (XDR *xdrs, guestfs_blockdev_rereadpt_args *o
 }
 
 bool_t
+xdr_guestfs_upload_args (XDR *xdrs, guestfs_upload_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->remotefilename, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_download_args (XDR *xdrs, guestfs_download_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->remotefilename, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_checksum_args (XDR *xdrs, guestfs_checksum_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->csumtype, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->path, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_checksum_ret (XDR *xdrs, guestfs_checksum_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->checksum, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_tar_in_args (XDR *xdrs, guestfs_tar_in_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->directory, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_tar_out_args (XDR *xdrs, guestfs_tar_out_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->directory, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_tgz_in_args (XDR *xdrs, guestfs_tgz_in_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->directory, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_tgz_out_args (XDR *xdrs, guestfs_tgz_out_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->directory, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_mount_ro_args (XDR *xdrs, guestfs_mount_ro_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->mountpoint, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_mount_options_args (XDR *xdrs, guestfs_mount_options_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->options, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->mountpoint, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_mount_vfs_args (XDR *xdrs, guestfs_mount_vfs_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->options, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->vfstype, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->mountpoint, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_debug_args (XDR *xdrs, guestfs_debug_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->subcmd, ~0))
+                return FALSE;
+        if (!xdr_array (xdrs, (char **)&objp->extraargs.extraargs_val, (u_int *) &objp->extraargs.extraargs_len, ~0,
+               sizeof (str), (xdrproc_t) xdr_str))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_debug_ret (XDR *xdrs, guestfs_debug_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->result, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_lvremove_args (XDR *xdrs, guestfs_lvremove_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_vgremove_args (XDR *xdrs, guestfs_vgremove_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->vgname, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_pvremove_args (XDR *xdrs, guestfs_pvremove_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_set_e2label_args (XDR *xdrs, guestfs_set_e2label_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->label, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_get_e2label_args (XDR *xdrs, guestfs_get_e2label_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_get_e2label_ret (XDR *xdrs, guestfs_get_e2label_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->label, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_set_e2uuid_args (XDR *xdrs, guestfs_set_e2uuid_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->uuid, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_get_e2uuid_args (XDR *xdrs, guestfs_get_e2uuid_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_get_e2uuid_ret (XDR *xdrs, guestfs_get_e2uuid_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->uuid, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_fsck_args (XDR *xdrs, guestfs_fsck_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->fstype, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_fsck_ret (XDR *xdrs, guestfs_fsck_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_int (xdrs, &objp->status))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_zero_args (XDR *xdrs, guestfs_zero_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_grub_install_args (XDR *xdrs, guestfs_grub_install_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->root, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_cp_args (XDR *xdrs, guestfs_cp_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->src, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->dest, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_cp_a_args (XDR *xdrs, guestfs_cp_a_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->src, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->dest, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_mv_args (XDR *xdrs, guestfs_mv_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->src, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->dest, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_drop_caches_args (XDR *xdrs, guestfs_drop_caches_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_int (xdrs, &objp->whattodrop))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_dmesg_ret (XDR *xdrs, guestfs_dmesg_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->kmsgs, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_equal_args (XDR *xdrs, guestfs_equal_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->file1, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->file2, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_equal_ret (XDR *xdrs, guestfs_equal_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_bool (xdrs, &objp->equality))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_strings_args (XDR *xdrs, guestfs_strings_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->path, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_strings_ret (XDR *xdrs, guestfs_strings_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_array (xdrs, (char **)&objp->stringsout.stringsout_val, (u_int *) &objp->stringsout.stringsout_len, ~0,
+               sizeof (str), (xdrproc_t) xdr_str))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_strings_e_args (XDR *xdrs, guestfs_strings_e_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->encoding, ~0))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->path, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_strings_e_ret (XDR *xdrs, guestfs_strings_e_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_array (xdrs, (char **)&objp->stringsout.stringsout_val, (u_int *) &objp->stringsout.stringsout_len, ~0,
+               sizeof (str), (xdrproc_t) xdr_str))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_hexdump_args (XDR *xdrs, guestfs_hexdump_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->path, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_hexdump_ret (XDR *xdrs, guestfs_hexdump_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->dump, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_zerofree_args (XDR *xdrs, guestfs_zerofree_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_pvresize_args (XDR *xdrs, guestfs_pvresize_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_sfdisk_N_args (XDR *xdrs, guestfs_sfdisk_N_args *objp)
+{
+       register int32_t *buf;
+
+
+       if (xdrs->x_op == XDR_ENCODE) {
+                if (!xdr_string (xdrs, &objp->device, ~0))
+                        return FALSE;
+               buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
+               if (buf == NULL) {
+                        if (!xdr_int (xdrs, &objp->n))
+                                return FALSE;
+                        if (!xdr_int (xdrs, &objp->cyls))
+                                return FALSE;
+                        if (!xdr_int (xdrs, &objp->heads))
+                                return FALSE;
+                        if (!xdr_int (xdrs, &objp->sectors))
+                                return FALSE;
+
+               } else {
+               IXDR_PUT_LONG(buf, objp->n);
+               IXDR_PUT_LONG(buf, objp->cyls);
+               IXDR_PUT_LONG(buf, objp->heads);
+               IXDR_PUT_LONG(buf, objp->sectors);
+               }
+                if (!xdr_string (xdrs, &objp->line, ~0))
+                        return FALSE;
+               return TRUE;
+       } else if (xdrs->x_op == XDR_DECODE) {
+                if (!xdr_string (xdrs, &objp->device, ~0))
+                        return FALSE;
+               buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
+               if (buf == NULL) {
+                        if (!xdr_int (xdrs, &objp->n))
+                                return FALSE;
+                        if (!xdr_int (xdrs, &objp->cyls))
+                                return FALSE;
+                        if (!xdr_int (xdrs, &objp->heads))
+                                return FALSE;
+                        if (!xdr_int (xdrs, &objp->sectors))
+                                return FALSE;
+
+               } else {
+               objp->n = IXDR_GET_LONG(buf);
+               objp->cyls = IXDR_GET_LONG(buf);
+               objp->heads = IXDR_GET_LONG(buf);
+               objp->sectors = IXDR_GET_LONG(buf);
+               }
+                if (!xdr_string (xdrs, &objp->line, ~0))
+                        return FALSE;
+        return TRUE;
+       }
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+        if (!xdr_int (xdrs, &objp->n))
+                return FALSE;
+        if (!xdr_int (xdrs, &objp->cyls))
+                return FALSE;
+        if (!xdr_int (xdrs, &objp->heads))
+                return FALSE;
+        if (!xdr_int (xdrs, &objp->sectors))
+                return FALSE;
+        if (!xdr_string (xdrs, &objp->line, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_sfdisk_l_args (XDR *xdrs, guestfs_sfdisk_l_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_sfdisk_l_ret (XDR *xdrs, guestfs_sfdisk_l_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->partitions, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_sfdisk_kernel_geometry_args (XDR *xdrs, guestfs_sfdisk_kernel_geometry_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_sfdisk_kernel_geometry_ret (XDR *xdrs, guestfs_sfdisk_kernel_geometry_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->partitions, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_sfdisk_disk_geometry_args (XDR *xdrs, guestfs_sfdisk_disk_geometry_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_sfdisk_disk_geometry_ret (XDR *xdrs, guestfs_sfdisk_disk_geometry_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->partitions, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_vg_activate_all_args (XDR *xdrs, guestfs_vg_activate_all_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_bool (xdrs, &objp->activate))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_vg_activate_args (XDR *xdrs, guestfs_vg_activate_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_bool (xdrs, &objp->activate))
+                return FALSE;
+        if (!xdr_array (xdrs, (char **)&objp->volgroups.volgroups_val, (u_int *) &objp->volgroups.volgroups_len, ~0,
+               sizeof (str), (xdrproc_t) xdr_str))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_lvresize_args (XDR *xdrs, guestfs_lvresize_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+        if (!xdr_int (xdrs, &objp->mbytes))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_resize2fs_args (XDR *xdrs, guestfs_resize2fs_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_find_args (XDR *xdrs, guestfs_find_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->directory, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_find_ret (XDR *xdrs, guestfs_find_ret *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_array (xdrs, (char **)&objp->names.names_val, (u_int *) &objp->names.names_len, ~0,
+               sizeof (str), (xdrproc_t) xdr_str))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
+xdr_guestfs_e2fsck_f_args (XDR *xdrs, guestfs_e2fsck_f_args *objp)
+{
+       register int32_t *buf;
+
+        if (!xdr_string (xdrs, &objp->device, ~0))
+                return FALSE;
+       return TRUE;
+}
+
+bool_t
 xdr_guestfs_procedure (XDR *xdrs, guestfs_procedure *objp)
 {
        register int32_t *buf;
@@ -1221,7 +1873,7 @@ xdr_guestfs_message_error (XDR *xdrs, guestfs_message_error *objp)
 {
        register int32_t *buf;
 
-        if (!xdr_string (xdrs, &objp->error, GUESTFS_ERROR_LEN))
+        if (!xdr_string (xdrs, &objp->error_message, GUESTFS_ERROR_LEN))
                 return FALSE;
        return TRUE;
 }