@@ -216,23 +216,11 @@ static int do_control_logfile(const void *ctx, struct connection *conn,
return 0;
}
-#ifdef __MINIOS__
-static int do_control_memreport(const void *ctx, struct connection *conn,
- const char **vec, int num)
-{
- if (num)
- return EINVAL;
-
- talloc_report_full(NULL, stdout);
-
- send_ack(conn, XS_CONTROL);
- return 0;
-}
-#else
static int do_control_memreport(const void *ctx, struct connection *conn,
const char **vec, int num)
{
FILE *fp;
+ char *filename;
int fd;
if (num > 1)
@@ -255,8 +243,12 @@ static int do_control_memreport(const void *ctx, struct connection *conn,
if (!fp)
close(fd);
}
- } else
- fp = fopen(vec[0], "a");
+ } else {
+ filename = absolute_filename(ctx, vec[0]);
+ if (!filename)
+ return ENOMEM;
+ fp = fopen(filename, "a");
+ }
if (!fp)
return EBADF;
@@ -267,7 +259,6 @@ static int do_control_memreport(const void *ctx, struct connection *conn,
send_ack(conn, XS_CONTROL);
return 0;
}
-#endif
static int do_control_print(const void *ctx, struct connection *conn,
const char **vec, int num)
@@ -310,11 +301,7 @@ static struct cmd_s cmds[] = {
" Default timeout is 60 seconds.", 5 },
#endif
{ "logfile", do_control_logfile, "<file>" },
-#ifdef __MINIOS__
- { "memreport", do_control_memreport, "" },
-#else
{ "memreport", do_control_memreport, "[<file>]" },
-#endif
{ "print", do_control_print, "<string>" },
{ "quota", do_control_quota,
"[set <name> <val>|<domid>|max [-r]]" },