mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-29 13:28:27 +00:00
show: Add 'hinting' ability
The crtools produces not only dump in its internal format (i.e. -- pb), but also may call other tools to create files with some state (e.g. ip tool dumps route and ifaddr info, tmpfs will be tar-ed, iptables utility will produce the iptables-save file, etc.). The show functionality cannot read these images, but we can guess what can be in the file provided by its magic. Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
parent
ba0d5fb226
commit
c0d83d9e9f
21
cr-show.c
21
cr-show.c
@ -357,6 +357,26 @@ void show_mm(int fd_mm, struct cr_options *o)
|
|||||||
pb_show_vertical(fd_mm, PB_MM);
|
pb_show_vertical(fd_mm, PB_MM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct {
|
||||||
|
u32 magic;
|
||||||
|
u32 mask;
|
||||||
|
char *hint;
|
||||||
|
} magic_hints[] = {
|
||||||
|
{ .magic = 0x45311224, .mask = 0xffffffff, .hint = "ip route dump", },
|
||||||
|
{ .magic = 0x47361222, .mask = 0xffffffff, .hint = "ip ifaddr dump", },
|
||||||
|
{ .magic = 0x00008b1f, .mask = 0x0000ffff, .hint = "gzip file", },
|
||||||
|
{ },
|
||||||
|
};
|
||||||
|
|
||||||
|
static void try_hint_magic(u32 magic)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; magic_hints[i].hint != 0; i++)
|
||||||
|
if ((magic & magic_hints[i].mask) == magic_hints[i].magic)
|
||||||
|
pr_msg("This can be %s\n", magic_hints[i].hint);
|
||||||
|
}
|
||||||
|
|
||||||
static int cr_parse_file(struct cr_options *opts)
|
static int cr_parse_file(struct cr_options *opts)
|
||||||
{
|
{
|
||||||
u32 magic;
|
u32 magic;
|
||||||
@ -378,6 +398,7 @@ static int cr_parse_file(struct cr_options *opts)
|
|||||||
if (i == CR_FD_MAX) {
|
if (i == CR_FD_MAX) {
|
||||||
pr_err("Unknown magic %#x in %s\n",
|
pr_err("Unknown magic %#x in %s\n",
|
||||||
magic, opts->show_dump_file);
|
magic, opts->show_dump_file);
|
||||||
|
try_hint_magic(magic);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user