X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=daemon%2Fstubs.c;h=0e6af849b5da2d5a6043c53be1596c63f79aea2a;hp=c21eecf636bd093f19f1973763a4eced7e90a7bc;hb=b6adf09c4d2cc3f1d0285950c151b1fd7688ec67;hpb=24bee20ce4196d45891925332a47a05aa5e40938 diff --git a/daemon/stubs.c b/daemon/stubs.c index c21eecf..0e6af84 100644 --- a/daemon/stubs.c +++ b/daemon/stubs.c @@ -2271,6 +2271,478 @@ static void dmesg_stub (XDR *xdr_in) done: ; } +static void ping_daemon_stub (XDR *xdr_in) +{ + int r; + + r = do_ping_daemon (); + if (r == -1) + /* do_ping_daemon has already called reply_with_error */ + goto done; + + reply (NULL, NULL); +done: ; +} + +static void equal_stub (XDR *xdr_in) +{ + int r; + struct guestfs_equal_args args; + const char *file1; + const char *file2; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_equal_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "equal"); + return; + } + file1 = args.file1; + file2 = args.file2; + + r = do_equal (file1, file2); + if (r == -1) + /* do_equal has already called reply_with_error */ + goto done; + + struct guestfs_equal_ret ret; + ret.equality = r; + reply ((xdrproc_t) &xdr_guestfs_equal_ret, (char *) &ret); +done: + xdr_free ((xdrproc_t) xdr_guestfs_equal_args, (char *) &args); +} + +static void strings_stub (XDR *xdr_in) +{ + char **r; + struct guestfs_strings_args args; + const char *path; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_strings_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "strings"); + return; + } + path = args.path; + + r = do_strings (path); + if (r == NULL) + /* do_strings has already called reply_with_error */ + goto done; + + struct guestfs_strings_ret ret; + ret.stringsout.stringsout_len = count_strings (r); + ret.stringsout.stringsout_val = r; + reply ((xdrproc_t) &xdr_guestfs_strings_ret, (char *) &ret); + free_strings (r); +done: + xdr_free ((xdrproc_t) xdr_guestfs_strings_args, (char *) &args); +} + +static void strings_e_stub (XDR *xdr_in) +{ + char **r; + struct guestfs_strings_e_args args; + const char *encoding; + const char *path; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_strings_e_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "strings_e"); + return; + } + encoding = args.encoding; + path = args.path; + + r = do_strings_e (encoding, path); + if (r == NULL) + /* do_strings_e has already called reply_with_error */ + goto done; + + struct guestfs_strings_e_ret ret; + ret.stringsout.stringsout_len = count_strings (r); + ret.stringsout.stringsout_val = r; + reply ((xdrproc_t) &xdr_guestfs_strings_e_ret, (char *) &ret); + free_strings (r); +done: + xdr_free ((xdrproc_t) xdr_guestfs_strings_e_args, (char *) &args); +} + +static void hexdump_stub (XDR *xdr_in) +{ + char *r; + struct guestfs_hexdump_args args; + const char *path; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_hexdump_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "hexdump"); + return; + } + path = args.path; + + r = do_hexdump (path); + if (r == NULL) + /* do_hexdump has already called reply_with_error */ + goto done; + + struct guestfs_hexdump_ret ret; + ret.dump = r; + reply ((xdrproc_t) &xdr_guestfs_hexdump_ret, (char *) &ret); + free (r); +done: + xdr_free ((xdrproc_t) xdr_guestfs_hexdump_args, (char *) &args); +} + +static void zerofree_stub (XDR *xdr_in) +{ + int r; + struct guestfs_zerofree_args args; + const char *device; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_zerofree_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "zerofree"); + return; + } + device = args.device; + + r = do_zerofree (device); + if (r == -1) + /* do_zerofree has already called reply_with_error */ + goto done; + + reply (NULL, NULL); +done: + xdr_free ((xdrproc_t) xdr_guestfs_zerofree_args, (char *) &args); +} + +static void pvresize_stub (XDR *xdr_in) +{ + int r; + struct guestfs_pvresize_args args; + const char *device; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_pvresize_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "pvresize"); + return; + } + device = args.device; + + r = do_pvresize (device); + if (r == -1) + /* do_pvresize has already called reply_with_error */ + goto done; + + reply (NULL, NULL); +done: + xdr_free ((xdrproc_t) xdr_guestfs_pvresize_args, (char *) &args); +} + +static void sfdisk_N_stub (XDR *xdr_in) +{ + int r; + struct guestfs_sfdisk_N_args args; + const char *device; + int n; + int cyls; + int heads; + int sectors; + const char *line; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_sfdisk_N_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "sfdisk_N"); + return; + } + device = args.device; + n = args.n; + cyls = args.cyls; + heads = args.heads; + sectors = args.sectors; + line = args.line; + + r = do_sfdisk_N (device, n, cyls, heads, sectors, line); + if (r == -1) + /* do_sfdisk_N has already called reply_with_error */ + goto done; + + reply (NULL, NULL); +done: + xdr_free ((xdrproc_t) xdr_guestfs_sfdisk_N_args, (char *) &args); +} + +static void sfdisk_l_stub (XDR *xdr_in) +{ + char *r; + struct guestfs_sfdisk_l_args args; + const char *device; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_sfdisk_l_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "sfdisk_l"); + return; + } + device = args.device; + + r = do_sfdisk_l (device); + if (r == NULL) + /* do_sfdisk_l has already called reply_with_error */ + goto done; + + struct guestfs_sfdisk_l_ret ret; + ret.partitions = r; + reply ((xdrproc_t) &xdr_guestfs_sfdisk_l_ret, (char *) &ret); + free (r); +done: + xdr_free ((xdrproc_t) xdr_guestfs_sfdisk_l_args, (char *) &args); +} + +static void sfdisk_kernel_geometry_stub (XDR *xdr_in) +{ + char *r; + struct guestfs_sfdisk_kernel_geometry_args args; + const char *device; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_sfdisk_kernel_geometry_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "sfdisk_kernel_geometry"); + return; + } + device = args.device; + + r = do_sfdisk_kernel_geometry (device); + if (r == NULL) + /* do_sfdisk_kernel_geometry has already called reply_with_error */ + goto done; + + struct guestfs_sfdisk_kernel_geometry_ret ret; + ret.partitions = r; + reply ((xdrproc_t) &xdr_guestfs_sfdisk_kernel_geometry_ret, (char *) &ret); + free (r); +done: + xdr_free ((xdrproc_t) xdr_guestfs_sfdisk_kernel_geometry_args, (char *) &args); +} + +static void sfdisk_disk_geometry_stub (XDR *xdr_in) +{ + char *r; + struct guestfs_sfdisk_disk_geometry_args args; + const char *device; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_sfdisk_disk_geometry_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "sfdisk_disk_geometry"); + return; + } + device = args.device; + + r = do_sfdisk_disk_geometry (device); + if (r == NULL) + /* do_sfdisk_disk_geometry has already called reply_with_error */ + goto done; + + struct guestfs_sfdisk_disk_geometry_ret ret; + ret.partitions = r; + reply ((xdrproc_t) &xdr_guestfs_sfdisk_disk_geometry_ret, (char *) &ret); + free (r); +done: + xdr_free ((xdrproc_t) xdr_guestfs_sfdisk_disk_geometry_args, (char *) &args); +} + +static void vg_activate_all_stub (XDR *xdr_in) +{ + int r; + struct guestfs_vg_activate_all_args args; + int activate; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_vg_activate_all_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "vg_activate_all"); + return; + } + activate = args.activate; + + r = do_vg_activate_all (activate); + if (r == -1) + /* do_vg_activate_all has already called reply_with_error */ + goto done; + + reply (NULL, NULL); +done: + xdr_free ((xdrproc_t) xdr_guestfs_vg_activate_all_args, (char *) &args); +} + +static void vg_activate_stub (XDR *xdr_in) +{ + int r; + struct guestfs_vg_activate_args args; + int activate; + char **volgroups; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_vg_activate_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "vg_activate"); + return; + } + activate = args.activate; + volgroups = realloc (args.volgroups.volgroups_val, + sizeof (char *) * (args.volgroups.volgroups_len+1)); + if (volgroups == NULL) { + reply_with_perror ("realloc"); + goto done; + } + volgroups[args.volgroups.volgroups_len] = NULL; + args.volgroups.volgroups_val = volgroups; + + r = do_vg_activate (activate, volgroups); + if (r == -1) + /* do_vg_activate has already called reply_with_error */ + goto done; + + reply (NULL, NULL); +done: + xdr_free ((xdrproc_t) xdr_guestfs_vg_activate_args, (char *) &args); +} + +static void lvresize_stub (XDR *xdr_in) +{ + int r; + struct guestfs_lvresize_args args; + const char *device; + int mbytes; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_lvresize_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "lvresize"); + return; + } + device = args.device; + mbytes = args.mbytes; + + r = do_lvresize (device, mbytes); + if (r == -1) + /* do_lvresize has already called reply_with_error */ + goto done; + + reply (NULL, NULL); +done: + xdr_free ((xdrproc_t) xdr_guestfs_lvresize_args, (char *) &args); +} + +static void resize2fs_stub (XDR *xdr_in) +{ + int r; + struct guestfs_resize2fs_args args; + const char *device; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_resize2fs_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "resize2fs"); + return; + } + device = args.device; + + r = do_resize2fs (device); + if (r == -1) + /* do_resize2fs has already called reply_with_error */ + goto done; + + reply (NULL, NULL); +done: + xdr_free ((xdrproc_t) xdr_guestfs_resize2fs_args, (char *) &args); +} + +static void find_stub (XDR *xdr_in) +{ + char **r; + struct guestfs_find_args args; + const char *directory; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_find_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "find"); + return; + } + directory = args.directory; + + r = do_find (directory); + if (r == NULL) + /* do_find has already called reply_with_error */ + goto done; + + struct guestfs_find_ret ret; + ret.names.names_len = count_strings (r); + ret.names.names_val = r; + reply ((xdrproc_t) &xdr_guestfs_find_ret, (char *) &ret); + free_strings (r); +done: + xdr_free ((xdrproc_t) xdr_guestfs_find_args, (char *) &args); +} + +static void e2fsck_f_stub (XDR *xdr_in) +{ + int r; + struct guestfs_e2fsck_f_args args; + const char *device; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_e2fsck_f_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "e2fsck_f"); + return; + } + device = args.device; + + r = do_e2fsck_f (device); + if (r == -1) + /* do_e2fsck_f has already called reply_with_error */ + goto done; + + reply (NULL, NULL); +done: + xdr_free ((xdrproc_t) xdr_guestfs_e2fsck_f_args, (char *) &args); +} + +static void sleep_stub (XDR *xdr_in) +{ + int r; + struct guestfs_sleep_args args; + int secs; + + memset (&args, 0, sizeof args); + + if (!xdr_guestfs_sleep_args (xdr_in, &args)) { + reply_with_error ("%s: daemon failed to decode procedure arguments", "sleep"); + return; + } + secs = args.secs; + + r = do_sleep (secs); + if (r == -1) + /* do_sleep has already called reply_with_error */ + goto done; + + reply (NULL, NULL); +done: + xdr_free ((xdrproc_t) xdr_guestfs_sleep_args, (char *) &args); +} + void dispatch_incoming_message (XDR *xdr_in) { switch (proc_nr) { @@ -2547,6 +3019,60 @@ void dispatch_incoming_message (XDR *xdr_in) case GUESTFS_PROC_DMESG: dmesg_stub (xdr_in); break; + case GUESTFS_PROC_PING_DAEMON: + ping_daemon_stub (xdr_in); + break; + case GUESTFS_PROC_EQUAL: + equal_stub (xdr_in); + break; + case GUESTFS_PROC_STRINGS: + strings_stub (xdr_in); + break; + case GUESTFS_PROC_STRINGS_E: + strings_e_stub (xdr_in); + break; + case GUESTFS_PROC_HEXDUMP: + hexdump_stub (xdr_in); + break; + case GUESTFS_PROC_ZEROFREE: + zerofree_stub (xdr_in); + break; + case GUESTFS_PROC_PVRESIZE: + pvresize_stub (xdr_in); + break; + case GUESTFS_PROC_SFDISK_N: + sfdisk_N_stub (xdr_in); + break; + case GUESTFS_PROC_SFDISK_L: + sfdisk_l_stub (xdr_in); + break; + case GUESTFS_PROC_SFDISK_KERNEL_GEOMETRY: + sfdisk_kernel_geometry_stub (xdr_in); + break; + case GUESTFS_PROC_SFDISK_DISK_GEOMETRY: + sfdisk_disk_geometry_stub (xdr_in); + break; + case GUESTFS_PROC_VG_ACTIVATE_ALL: + vg_activate_all_stub (xdr_in); + break; + case GUESTFS_PROC_VG_ACTIVATE: + vg_activate_stub (xdr_in); + break; + case GUESTFS_PROC_LVRESIZE: + lvresize_stub (xdr_in); + break; + case GUESTFS_PROC_RESIZE2FS: + resize2fs_stub (xdr_in); + break; + case GUESTFS_PROC_FIND: + find_stub (xdr_in); + break; + case GUESTFS_PROC_E2FSCK_F: + e2fsck_f_stub (xdr_in); + break; + case GUESTFS_PROC_SLEEP: + sleep_stub (xdr_in); + break; default: reply_with_error ("dispatch_incoming_message: unknown procedure number %d", proc_nr); }