summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2016-10-25 22:20:08 +0200
committerGiampaolo Rodola <g.rodola@gmail.com>2016-10-25 22:20:08 +0200
commitd99bb24521e72d5f83c4032e333aac6173c5534b (patch)
tree80cfc24d19dae7d61a018d27936aba3e55079cb8
parent24350443474847d8b365772c5f183aefd4ffbff7 (diff)
downloadpsutil-d99bb24521e72d5f83c4032e333aac6173c5534b.tar.gz
netbsd: refactor connections() code
-rw-r--r--psutil/arch/bsd/netbsd_socks.c118
1 files changed, 54 insertions, 64 deletions
diff --git a/psutil/arch/bsd/netbsd_socks.c b/psutil/arch/bsd/netbsd_socks.c
index dd3794ec..cf6605a8 100644
--- a/psutil/arch/bsd/netbsd_socks.c
+++ b/psutil/arch/bsd/netbsd_socks.c
@@ -240,74 +240,64 @@ psutil_proc_connections(PyObject *self, PyObject *args) {
family = kp->kpcb->ki_family;
type = kp->kpcb->ki_type;
- 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);
- py_laddr = Py_BuildValue("(si)", laddr, lport);
- if (!py_laddr)
- goto error;
- // remote addr and port
- inet_ntop(AF_INET, &sin_dst->sin_addr, raddr,
- sizeof(raddr));
- rport = ntohs(sin_dst->sin_port);
- // status
- if (kp->kpcb->ki_type == SOCK_STREAM)
- status = kp->kpcb->ki_tstate;
- else
- status = PSUTIL_CONN_NONE;
- // build tuple, append it to list
- if (rport != 0)
- py_raddr = Py_BuildValue("(si)", raddr, rport);
- else
- py_raddr = Py_BuildValue("()");
- if (!py_raddr)
- goto error;
- py_tuple = Py_BuildValue("(iiiNNi)", fd, AF_INET,
- type, py_laddr, py_raddr, status);
- if (!py_tuple)
- goto error;
- if (PyList_Append(py_retlist, py_tuple))
- goto error;
- }
- else if (kp->kpcb->ki_family == AF_INET6) {
- // 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);
+ // 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 tuple, append it to list
+
+ // build addr tuple
py_laddr = Py_BuildValue("(si)", laddr, lport);
- if (!py_laddr)
+ if (! py_laddr)
goto error;
if (rport != 0)
py_raddr = Py_BuildValue("(si)", raddr, rport);
else
py_raddr = Py_BuildValue("()");
- if (!py_raddr)
+ if (! py_raddr)
goto error;
- py_tuple = Py_BuildValue("(iiiNNi)", fd, AF_INET6,
- type, py_laddr, py_raddr, status);
- if (!py_tuple)
+
+ // append tuple to list
+ py_tuple = Py_BuildValue(
+ "(iiiNNi)",
+ fd, kp->kpcb->ki_family, type, py_laddr, py_raddr,
+ status);
+ if (! py_tuple)
goto error;
if (PyList_Append(py_retlist, py_tuple))
goto error;
@@ -324,7 +314,7 @@ psutil_proc_connections(PyObject *self, PyObject *args) {
py_tuple = Py_BuildValue("(iiissi)", fd, AF_UNIX,
type, laddr, raddr, status);
- if (!py_tuple)
+ if (! py_tuple)
goto error;
if (PyList_Append(py_retlist, py_tuple))
goto error;
@@ -448,7 +438,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
sizeof(laddr)) != NULL)
lport = ntohs(sin_src->sin_port);
py_laddr = Py_BuildValue("(si)", laddr, lport);
- if (!py_laddr)
+ if (! py_laddr)
goto error;
// remote addr
if (inet_ntop(AF_INET, &sin_dst->sin_addr, raddr,
@@ -458,7 +448,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
py_raddr = Py_BuildValue("(si)", raddr, rport);
else
py_raddr = Py_BuildValue("()");
- if (!py_raddr)
+ if (! py_raddr)
goto error;
// status
if (kp->kpcb->ki_type == SOCK_STREAM)
@@ -468,7 +458,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
// construct python tuple
py_tuple = Py_BuildValue("(iiiNNii)", fd, AF_INET,
type, py_laddr, py_raddr, status, pid);
- if (!py_tuple)
+ if (! py_tuple)
goto error;
if (PyList_Append(py_retlist, py_tuple))
goto error;
@@ -484,7 +474,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
sizeof(laddr)) != NULL)
lport = ntohs(sin6_src->sin6_port);
py_laddr = Py_BuildValue("(si)", laddr, lport);
- if (!py_laddr)
+ if (! py_laddr)
goto error;
// remote addr
if (inet_ntop(AF_INET6, &sin6_dst->sin6_addr, raddr,
@@ -494,7 +484,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
py_raddr = Py_BuildValue("(si)", raddr, rport);
else
py_raddr = Py_BuildValue("()");
- if (!py_raddr)
+ if (! py_raddr)
goto error;
// status
if (kp->kpcb->ki_type == SOCK_STREAM)
@@ -504,7 +494,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
// construct python tuple
py_tuple = Py_BuildValue("(iiiNNii)", fd, AF_INET6,
type, py_laddr, py_raddr, status, pid);
- if (!py_tuple)
+ if (! py_tuple)
goto error;
if (PyList_Append(py_retlist, py_tuple))
goto error;
@@ -520,7 +510,7 @@ psutil_net_connections(PyObject *self, PyObject *args) {
status = PSUTIL_CONN_NONE;
py_tuple = Py_BuildValue("(iiissii)", fd, AF_UNIX,
type, laddr, raddr, status, pid);
- if (!py_tuple)
+ if (! py_tuple)
goto error;
if (PyList_Append(py_retlist, py_tuple))
goto error;