Commit 7fc6561c authored by Stanislav Kinsbursky's avatar Stanislav Kinsbursky Committed by Cyrill Gorcunov

show: inet sockets dump parsing support added

Nothing to comment there.
Signed-off-by: 's avatarStanislav Kinsbursky <skinsbursky@parallels.com>
Acked-by: 's avatarPavel Emelyanov <xemul@parallels.com>
Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
parent f3253a40
......@@ -437,6 +437,9 @@ static int cr_parse_file(struct cr_options *opts)
case UNIXSK_MAGIC:
show_unixsk(fd);
break;
case INETSK_MAGIC:
show_inetsk(fd);
break;
default:
pr_err("Unknown magic %x on %s\n", magic, opts->show_dump_file);
goto err;
......@@ -508,6 +511,8 @@ static int cr_show_all(unsigned long pid, struct cr_options *opts)
show_unixsk(cr_fdset->fds[CR_FD_UNIXSK]);
show_inetsk(cr_fdset->fds[CR_FD_INETSK]);
close_cr_fdset(&cr_fdset);
if (opts->leader_only)
......
......@@ -11,5 +11,6 @@ extern int try_dump_socket(pid_t pid, int fd, struct cr_fdset *cr_fdset);
extern int collect_sockets(void);
extern int prepare_sockets(int pid);
extern void show_unixsk(int fd);
extern void show_inetsk(int fd);
#endif /* CR_SOCKETS_H__ */
......@@ -118,7 +118,7 @@ static void show_one_inet_img(char *act, struct inet_sk_entry *e)
}
dprintk("\t%s: fd %d family %d type %d proto %d port %d "
"state %d src_addr %d bytes\n",
"state %d src_addr %d\n",
act, e->fd, e->family, e->type, e->proto, e->src_port, e->state,
src_addr);
}
......@@ -971,6 +971,36 @@ int prepare_sockets(int pid)
return prepare_unix_sockets(pid);
}
void show_inetsk(int fd)
{
struct inet_sk_entry ie;
int ret = 0;
pr_img_head(CR_FD_INETSK);
while (1) {
char src_addr[INET_ADDR_LEN] = "<unknown>";
ret = read_ptr_safe_eof(fd, &ie, out);
if (!ret)
goto out;
if (inet_ntop(AF_INET, (void *)ie.src_addr, src_addr,
INET_ADDR_LEN) == NULL) {
pr_err("Failed to translate address: %d\n", errno);
}
pr_info("fd %d family %d type %d proto %d port %d state %d "
"--> %s\n", ie.fd, ie.family, ie.type, ie.proto,
ie.src_port, ie.state, src_addr);
}
out:
if (ret)
pr_info("\n");
pr_img_tail(CR_FD_INETSK);
}
void show_unixsk(int fd)
{
struct unix_sk_entry ue;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment