diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2016-10-26 16:23:44 +0200 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2016-10-26 16:23:44 +0200 |
commit | a3dbcf04cf65598d56df5059fd6c910d0e8b115d (patch) | |
tree | c413ca79d063830e4273a336cc9a2846cb84141f | |
parent | fdce989ff82a7663f6c198a5d3deaec47e5a6635 (diff) | |
download | psutil-a3dbcf04cf65598d56df5059fd6c910d0e8b115d.tar.gz |
netbsd / connections: refactoring
-rw-r--r-- | psutil/arch/bsd/netbsd_socks.c | 194 |
1 files changed, 97 insertions, 97 deletions
diff --git a/psutil/arch/bsd/netbsd_socks.c b/psutil/arch/bsd/netbsd_socks.c index 0be59811..4c36b5b6 100644 --- a/psutil/arch/bsd/netbsd_socks.c +++ b/psutil/arch/bsd/netbsd_socks.c @@ -284,106 +284,106 @@ psutil_net_connections(PyObject *self, PyObject *args) { if ((pid != -1) && (k->kif->ki_pid != pid)) continue; SLIST_FOREACH(kp, &kpcbhead, kpcbs) { - if (k->kif->ki_fdata == kp->kpcb->ki_sockaddr) { - pid_t pid; - int32_t fd; - int32_t family; - int32_t type; - char laddr[PATH_MAX]; - int32_t lport; - char raddr[PATH_MAX]; - int32_t rport; - int32_t status; - - pid = k->kif->ki_pid; - fd = k->kif->ki_fd; - family = kp->kpcb->ki_family; - type = kp->kpcb->ki_type; - - // IPv4 or IPv6 - if ((kp->kpcb->ki_family == AF_INET) || - (kp->kpcb->ki_family == AF_INET6)) { - - if (kp->kpcb->ki_family == AF_INET) { - // IPv4 - struct sockaddr_in *sin_src = - (struct sockaddr_in *)&kp->kpcb->ki_src; - struct sockaddr_in *sin_dst = - (struct sockaddr_in *)&kp->kpcb->ki_dst; - // source addr and port - inet_ntop(AF_INET, &sin_src->sin_addr, laddr, - sizeof(laddr)); - lport = ntohs(sin_src->sin_port); - // remote addr and port - inet_ntop(AF_INET, &sin_dst->sin_addr, raddr, - sizeof(raddr)); - rport = ntohs(sin_dst->sin_port); - } - else { - // IPv6 - struct sockaddr_in6 *sin6_src = - (struct sockaddr_in6 *)&kp->kpcb->ki_src; - struct sockaddr_in6 *sin6_dst = - (struct sockaddr_in6 *)&kp->kpcb->ki_dst; - // local addr and port - inet_ntop(AF_INET6, &sin6_src->sin6_addr, laddr, - sizeof(laddr)); - lport = ntohs(sin6_src->sin6_port); - // remote addr and port - inet_ntop(AF_INET6, &sin6_dst->sin6_addr, raddr, - sizeof(raddr)); - rport = ntohs(sin6_dst->sin6_port); - } - - // status - if (kp->kpcb->ki_type == SOCK_STREAM) - status = kp->kpcb->ki_tstate; - else - status = PSUTIL_CONN_NONE; - - // build addr tuple - py_laddr = Py_BuildValue("(si)", laddr, lport); - if (! py_laddr) - goto error; - if (rport != 0) - py_raddr = Py_BuildValue("(si)", raddr, rport); - else - py_raddr = Py_BuildValue("()"); - if (! py_raddr) - goto error; - - // append tuple to list - py_tuple = Py_BuildValue( - "(iiiNNii)", - fd, kp->kpcb->ki_family, type, py_laddr, py_raddr, - status, k->kif->ki_pid); - if (! py_tuple) - goto error; - if (PyList_Append(py_retlist, py_tuple)) - goto error; - Py_DECREF(py_tuple); - + if (k->kif->ki_fdata != kp->kpcb->ki_sockaddr) + continue; + pid_t pid; + int32_t fd; + int32_t family; + int32_t type; + char laddr[PATH_MAX]; + int32_t lport; + char raddr[PATH_MAX]; + int32_t rport; + int32_t status; + + pid = k->kif->ki_pid; + fd = k->kif->ki_fd; + family = kp->kpcb->ki_family; + type = kp->kpcb->ki_type; + + // IPv4 or IPv6 + if ((kp->kpcb->ki_family == AF_INET) || + (kp->kpcb->ki_family == AF_INET6)) { + + if (kp->kpcb->ki_family == AF_INET) { + // IPv4 + struct sockaddr_in *sin_src = + (struct sockaddr_in *)&kp->kpcb->ki_src; + struct sockaddr_in *sin_dst = + (struct sockaddr_in *)&kp->kpcb->ki_dst; + // source addr and port + inet_ntop(AF_INET, &sin_src->sin_addr, laddr, + sizeof(laddr)); + lport = ntohs(sin_src->sin_port); + // remote addr and port + inet_ntop(AF_INET, &sin_dst->sin_addr, raddr, + sizeof(raddr)); + rport = ntohs(sin_dst->sin_port); + } + else { + // IPv6 + struct sockaddr_in6 *sin6_src = + (struct sockaddr_in6 *)&kp->kpcb->ki_src; + struct sockaddr_in6 *sin6_dst = + (struct sockaddr_in6 *)&kp->kpcb->ki_dst; + // local addr and port + inet_ntop(AF_INET6, &sin6_src->sin6_addr, laddr, + sizeof(laddr)); + lport = ntohs(sin6_src->sin6_port); + // remote addr and port + inet_ntop(AF_INET6, &sin6_dst->sin6_addr, raddr, + sizeof(raddr)); + rport = ntohs(sin6_dst->sin6_port); } - else if (kp->kpcb->ki_family == AF_UNIX) { - // UNIX sockets - struct sockaddr_un *sun_src = - (struct sockaddr_un *)&kp->kpcb->ki_src; - struct sockaddr_un *sun_dst = - (struct sockaddr_un *)&kp->kpcb->ki_dst; - strcpy(laddr, sun_src->sun_path); - strcpy(raddr, sun_dst->sun_path); + + // status + if (kp->kpcb->ki_type == SOCK_STREAM) + status = kp->kpcb->ki_tstate; + else status = PSUTIL_CONN_NONE; - py_tuple = Py_BuildValue( - "(iiissii)", - fd, AF_UNIX, type, laddr, raddr, status, - k->kif->ki_pid); - if (! py_tuple) - goto error; - if (PyList_Append(py_retlist, py_tuple)) - goto error; - Py_DECREF(py_tuple); - } + // build addr tuple + py_laddr = Py_BuildValue("(si)", laddr, lport); + if (! py_laddr) + goto error; + if (rport != 0) + py_raddr = Py_BuildValue("(si)", raddr, rport); + else + py_raddr = Py_BuildValue("()"); + if (! py_raddr) + goto error; + + // append tuple to list + py_tuple = Py_BuildValue( + "(iiiNNii)", + fd, kp->kpcb->ki_family, type, py_laddr, py_raddr, + status, k->kif->ki_pid); + if (! py_tuple) + goto error; + if (PyList_Append(py_retlist, py_tuple)) + goto error; + Py_DECREF(py_tuple); + + } + else if (kp->kpcb->ki_family == AF_UNIX) { + // UNIX sockets + struct sockaddr_un *sun_src = + (struct sockaddr_un *)&kp->kpcb->ki_src; + struct sockaddr_un *sun_dst = + (struct sockaddr_un *)&kp->kpcb->ki_dst; + strcpy(laddr, sun_src->sun_path); + strcpy(raddr, sun_dst->sun_path); + status = PSUTIL_CONN_NONE; + + py_tuple = Py_BuildValue( + "(iiissii)", + fd, AF_UNIX, type, laddr, raddr, status, + k->kif->ki_pid); + if (! py_tuple) + goto error; + if (PyList_Append(py_retlist, py_tuple)) + goto error; + Py_DECREF(py_tuple); } } } |