Commit 9e03fd58 authored by Stanislav Kinsbursky's avatar Stanislav Kinsbursky Committed by Pavel Emelyanov

sk: optimize dump size a bit

Let's carry only on uint_32 for IPv4 address.
Signed-off-by: 's avatarStanislav Kinsbursky <skinsbursky@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 64e161f3
...@@ -198,8 +198,12 @@ static int dump_one_inet_fd(int lfd, u32 id, const struct fd_parms *p) ...@@ -198,8 +198,12 @@ static int dump_one_inet_fd(int lfd, u32 id, const struct fd_parms *p)
ie.fown = (FownEntry *)&p->fown; ie.fown = (FownEntry *)&p->fown;
ie.opts = &skopts; ie.opts = &skopts;
ie.n_src_addr = 4; ie.n_src_addr = 1;
ie.n_dst_addr = 4; ie.n_dst_addr = 1;
if (ie.family == AF_INET6) {
ie.n_src_addr = 4;
ie.n_dst_addr = 4;
}
ie.src_addr = xmalloc(pb_repeated_size(&ie, src_addr)); ie.src_addr = xmalloc(pb_repeated_size(&ie, src_addr));
ie.dst_addr = xmalloc(pb_repeated_size(&ie, dst_addr)); ie.dst_addr = xmalloc(pb_repeated_size(&ie, dst_addr));
...@@ -207,8 +211,8 @@ static int dump_one_inet_fd(int lfd, u32 id, const struct fd_parms *p) ...@@ -207,8 +211,8 @@ static int dump_one_inet_fd(int lfd, u32 id, const struct fd_parms *p)
if (!ie.src_addr || !ie.dst_addr) if (!ie.src_addr || !ie.dst_addr)
goto err; goto err;
memcpy(ie.src_addr, sk->src_addr, sizeof(u32) * 4); memcpy(ie.src_addr, sk->src_addr, sizeof(u32) * ie.n_src_addr);
memcpy(ie.dst_addr, sk->dst_addr, sizeof(u32) * 4); memcpy(ie.dst_addr, sk->dst_addr, sizeof(u32) * ie.n_dst_addr);
if (dump_socket_opts(lfd, &skopts)) if (dump_socket_opts(lfd, &skopts))
goto err; goto err;
...@@ -277,10 +281,6 @@ static u32 zero_addr[4]; ...@@ -277,10 +281,6 @@ static u32 zero_addr[4];
static bool is_bound(struct inet_sk_info *ii) static bool is_bound(struct inet_sk_info *ii)
{ {
BUG_ON(sizeof(zero_addr) <
max(pb_repeated_size(ii->ie, dst_addr),
pb_repeated_size(ii->ie, src_addr)));
return memcmp(zero_addr, ii->ie->src_addr, pb_repeated_size(ii->ie, src_addr)) || return memcmp(zero_addr, ii->ie->src_addr, pb_repeated_size(ii->ie, src_addr)) ||
memcmp(zero_addr, ii->ie->dst_addr, pb_repeated_size(ii->ie, dst_addr)); memcmp(zero_addr, ii->ie->dst_addr, pb_repeated_size(ii->ie, dst_addr));
} }
......
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