From 44bb459d7af7efad26540c9844b86f59088d3e13 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 12 Mar 2011 10:13:27 +0000 Subject: inet_diag: no need to specify family The way we dump, we dump it all, it seems. --- ext/raindrops/linux_inet_diag.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/ext/raindrops/linux_inet_diag.c b/ext/raindrops/linux_inet_diag.c index ab36dc7..abc2ef9 100644 --- a/ext/raindrops/linux_inet_diag.c +++ b/ext/raindrops/linux_inet_diag.c @@ -261,9 +261,6 @@ static void prep_diag_args( struct diag_req *req, struct msghdr *msg) { - struct inet_diag_bc_op *op = args->iov[2].iov_base; - struct inet_diag_hostcond *cond = (struct inet_diag_hostcond *)(op + 1); - memset(req, 0, sizeof(struct diag_req)); memset(nladdr, 0, sizeof(struct sockaddr_nl)); @@ -275,7 +272,6 @@ static void prep_diag_args( req->nlh.nlmsg_flags = NLM_F_ROOT | NLM_F_MATCH | NLM_F_REQUEST; req->nlh.nlmsg_pid = getpid(); req->r.idiag_states = (1<r.idiag_family = cond->family; rta->rta_type = INET_DIAG_REQ_BYTECODE; rta->rta_len = RTA_LENGTH(args->iov[2].iov_len); @@ -409,8 +405,8 @@ static void parse_addr(struct sockaddr_storage *inet, VALUE addr) freeaddrinfo(res); } -/* generates inet_diag bytecode to match all addrs for a given family */ -static void gen_bytecode_all(struct iovec *iov, sa_family_t family) +/* generates inet_diag bytecode to match all addrs */ +static void gen_bytecode_all(struct iovec *iov) { struct inet_diag_bc_op *op; struct inet_diag_hostcond *cond; @@ -422,7 +418,7 @@ static void gen_bytecode_all(struct iovec *iov, sa_family_t family) op->yes = OPLEN; op->no = sizeof(struct inet_diag_bc_op) + OPLEN; cond = (struct inet_diag_hostcond *)(op + 1); - cond->family = family; + cond->family = AF_UNSPEC; cond->port = -1; cond->prefix_len = 0; } @@ -543,7 +539,7 @@ static VALUE tcp_listener_stats(int argc, VALUE *argv, VALUE self) /* fall through */ case T_NIL: args.table = st_init_strtable(); - gen_bytecode_all(&args.iov[2], AF_INET); + gen_bytecode_all(&args.iov[2]); break; default: rb_raise(rb_eArgError, -- cgit v1.2.3-24-ge0c7