Fix ss if INET_DIAG not enabled in kernel

If kernel doesn't have INET_DIAG and using newish version of iproute
nothing would be displayed.
This commit is contained in:
Eric Dumazet 2012-04-10 09:00:16 -07:00 committed by Stephen Hemminger
parent ff24746cca
commit 930a75f925

View File

@ -1534,8 +1534,10 @@ static int tcp_show_netlink(struct filter *f, FILE *dump_fp, int socktype)
.msg_iovlen = f->f ? 3 : 1,
};
if (sendmsg(fd, &msg, 0) < 0)
if (sendmsg(fd, &msg, 0) < 0) {
close(fd);
return -1;
}
iov[0] = (struct iovec){
.iov_base = buf,
@ -1589,6 +1591,10 @@ static int tcp_show_netlink(struct filter *f, FILE *dump_fp, int socktype)
fprintf(stderr, "ERROR truncated\n");
} else {
errno = -err->error;
if (errno == EOPNOTSUPP) {
close(fd);
return -1;
}
perror("TCPDIAG answers");
}
close(fd);