mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
225 lines
5.3 KiB
C
225 lines
5.3 KiB
C
/* libguestfs generated file
|
|
* WARNING: THIS FILE IS GENERATED BY 'src/generator.ml'.
|
|
* ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.
|
|
*
|
|
* Copyright (C) 2009 Red Hat Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*/
|
|
|
|
#include <rpc/types.h>
|
|
#include <rpc/xdr.h>
|
|
#include "daemon.h"
|
|
#include "../src/guestfs_protocol.h"
|
|
#include "actions.h"
|
|
|
|
static void mount_stub (XDR *xdr_in)
|
|
{
|
|
int r;
|
|
struct guestfs_mount_args args;
|
|
const char *device;
|
|
const char *mountpoint;
|
|
|
|
memset (&args, 0, sizeof args);
|
|
|
|
if (!xdr_guestfs_mount_args (xdr_in, &args)) {
|
|
reply_with_error ("mount: daemon failed to decode procedure arguments");
|
|
return;
|
|
}
|
|
device = args.device;
|
|
mountpoint = args.mountpoint;
|
|
|
|
r = do_mount (device, mountpoint);
|
|
if (r == -1)
|
|
/* do_mount has already called reply_with_error, so just return */
|
|
return;
|
|
|
|
reply (NULL, NULL);
|
|
}
|
|
|
|
static void sync_stub (XDR *xdr_in)
|
|
{
|
|
int r;
|
|
|
|
r = do_sync ();
|
|
if (r == -1)
|
|
/* do_sync has already called reply_with_error, so just return */
|
|
return;
|
|
|
|
reply (NULL, NULL);
|
|
}
|
|
|
|
static void touch_stub (XDR *xdr_in)
|
|
{
|
|
int r;
|
|
struct guestfs_touch_args args;
|
|
const char *path;
|
|
|
|
memset (&args, 0, sizeof args);
|
|
|
|
if (!xdr_guestfs_touch_args (xdr_in, &args)) {
|
|
reply_with_error ("touch: daemon failed to decode procedure arguments");
|
|
return;
|
|
}
|
|
path = args.path;
|
|
|
|
r = do_touch (path);
|
|
if (r == -1)
|
|
/* do_touch has already called reply_with_error, so just return */
|
|
return;
|
|
|
|
reply (NULL, NULL);
|
|
}
|
|
|
|
static void cat_stub (XDR *xdr_in)
|
|
{
|
|
char *r;
|
|
struct guestfs_cat_args args;
|
|
const char *path;
|
|
|
|
memset (&args, 0, sizeof args);
|
|
|
|
if (!xdr_guestfs_cat_args (xdr_in, &args)) {
|
|
reply_with_error ("cat: daemon failed to decode procedure arguments");
|
|
return;
|
|
}
|
|
path = args.path;
|
|
|
|
r = do_cat (path);
|
|
if (r == NULL)
|
|
/* do_cat has already called reply_with_error, so just return */
|
|
return;
|
|
|
|
struct guestfs_cat_ret ret;
|
|
ret.content = r;
|
|
reply ((xdrproc_t) &xdr_guestfs_cat_ret, (char *) &ret);
|
|
free (r);
|
|
}
|
|
|
|
static void ll_stub (XDR *xdr_in)
|
|
{
|
|
char *r;
|
|
struct guestfs_ll_args args;
|
|
const char *directory;
|
|
|
|
memset (&args, 0, sizeof args);
|
|
|
|
if (!xdr_guestfs_ll_args (xdr_in, &args)) {
|
|
reply_with_error ("ll: daemon failed to decode procedure arguments");
|
|
return;
|
|
}
|
|
directory = args.directory;
|
|
|
|
r = do_ll (directory);
|
|
if (r == NULL)
|
|
/* do_ll has already called reply_with_error, so just return */
|
|
return;
|
|
|
|
struct guestfs_ll_ret ret;
|
|
ret.listing = r;
|
|
reply ((xdrproc_t) &xdr_guestfs_ll_ret, (char *) &ret);
|
|
free (r);
|
|
}
|
|
|
|
static void ls_stub (XDR *xdr_in)
|
|
{
|
|
char **r;
|
|
struct guestfs_ls_args args;
|
|
const char *directory;
|
|
|
|
memset (&args, 0, sizeof args);
|
|
|
|
if (!xdr_guestfs_ls_args (xdr_in, &args)) {
|
|
reply_with_error ("ls: daemon failed to decode procedure arguments");
|
|
return;
|
|
}
|
|
directory = args.directory;
|
|
|
|
r = do_ls (directory);
|
|
if (r == NULL)
|
|
/* do_ls has already called reply_with_error, so just return */
|
|
return;
|
|
|
|
struct guestfs_ls_ret ret;
|
|
ret.listing.listing_len = count_strings (r);
|
|
ret.listing.listing_val = r;
|
|
reply ((xdrproc_t) &xdr_guestfs_ls_ret, (char *) &ret);
|
|
free_strings (r);
|
|
}
|
|
|
|
static void list_devices_stub (XDR *xdr_in)
|
|
{
|
|
char **r;
|
|
|
|
r = do_list_devices ();
|
|
if (r == NULL)
|
|
/* do_list_devices has already called reply_with_error, so just return */
|
|
return;
|
|
|
|
struct guestfs_list_devices_ret ret;
|
|
ret.devices.devices_len = count_strings (r);
|
|
ret.devices.devices_val = r;
|
|
reply ((xdrproc_t) &xdr_guestfs_list_devices_ret, (char *) &ret);
|
|
free_strings (r);
|
|
}
|
|
|
|
static void list_partitions_stub (XDR *xdr_in)
|
|
{
|
|
char **r;
|
|
|
|
r = do_list_partitions ();
|
|
if (r == NULL)
|
|
/* do_list_partitions has already called reply_with_error, so just return */
|
|
return;
|
|
|
|
struct guestfs_list_partitions_ret ret;
|
|
ret.partitions.partitions_len = count_strings (r);
|
|
ret.partitions.partitions_val = r;
|
|
reply ((xdrproc_t) &xdr_guestfs_list_partitions_ret, (char *) &ret);
|
|
free_strings (r);
|
|
}
|
|
|
|
void dispatch_incoming_message (XDR *xdr_in)
|
|
{
|
|
switch (proc_nr) {
|
|
case GUESTFS_PROC_MOUNT:
|
|
mount_stub (xdr_in);
|
|
break;
|
|
case GUESTFS_PROC_SYNC:
|
|
sync_stub (xdr_in);
|
|
break;
|
|
case GUESTFS_PROC_TOUCH:
|
|
touch_stub (xdr_in);
|
|
break;
|
|
case GUESTFS_PROC_CAT:
|
|
cat_stub (xdr_in);
|
|
break;
|
|
case GUESTFS_PROC_LL:
|
|
ll_stub (xdr_in);
|
|
break;
|
|
case GUESTFS_PROC_LS:
|
|
ls_stub (xdr_in);
|
|
break;
|
|
case GUESTFS_PROC_LIST_DEVICES:
|
|
list_devices_stub (xdr_in);
|
|
break;
|
|
case GUESTFS_PROC_LIST_PARTITIONS:
|
|
list_partitions_stub (xdr_in);
|
|
break;
|
|
default:
|
|
reply_with_error ("dispatch_incoming_message: unknown procedure number %d", proc_nr);
|
|
}
|
|
}
|