Cosmetic: KNF. Shorten a staircase. Indent a complicated
if-condition. This code remains hard to read.
This commit is contained in:
parent
b7300a687a
commit
c3d21ddcd4
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: uipc_socket.c,v 1.143 2007/09/25 14:04:07 ad Exp $ */
|
||||
/* $NetBSD: uipc_socket.c,v 1.144 2007/10/05 02:40:25 dyoung Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2002, 2007 The NetBSD Foundation, Inc.
|
||||
@ -68,7 +68,7 @@
|
||||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: uipc_socket.c,v 1.143 2007/09/25 14:04:07 ad Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: uipc_socket.c,v 1.144 2007/10/05 02:40:25 dyoung Exp $");
|
||||
|
||||
#include "opt_sock_counters.h"
|
||||
#include "opt_sosend_loan.h"
|
||||
@ -894,7 +894,7 @@ sosend(struct socket *so, struct mbuf *addr, struct uio *uio, struct mbuf *top,
|
||||
if (flags & MSG_EOR)
|
||||
top->m_flags |= M_EOR;
|
||||
} else do {
|
||||
if (top == 0) {
|
||||
if (top == NULL) {
|
||||
m = m_gethdr(M_WAIT, MT_DATA);
|
||||
mlen = MHLEN;
|
||||
m->m_pkthdr.len = 0;
|
||||
@ -938,14 +938,13 @@ sosend(struct socket *so, struct mbuf *addr, struct uio *uio, struct mbuf *top,
|
||||
if (atomic && top == 0 && len < mlen)
|
||||
MH_ALIGN(m, len);
|
||||
}
|
||||
error = uiomove(mtod(m, void *), (int)len,
|
||||
uio);
|
||||
error = uiomove(mtod(m, void *), (int)len, uio);
|
||||
have_data:
|
||||
resid = uio->uio_resid;
|
||||
m->m_len = len;
|
||||
*mp = m;
|
||||
top->m_pkthdr.len += len;
|
||||
if (error)
|
||||
if (error != 0)
|
||||
goto release;
|
||||
mp = &m->m_next;
|
||||
if (resid <= 0) {
|
||||
@ -974,10 +973,10 @@ sosend(struct socket *so, struct mbuf *addr, struct uio *uio, struct mbuf *top,
|
||||
splx(s);
|
||||
|
||||
clen = 0;
|
||||
control = 0;
|
||||
top = 0;
|
||||
control = NULL;
|
||||
top = NULL;
|
||||
mp = ⊤
|
||||
if (error)
|
||||
if (error != 0)
|
||||
goto release;
|
||||
} while (resid && space > 0);
|
||||
} while (resid);
|
||||
@ -1024,11 +1023,11 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
type = 0;
|
||||
orig_resid = uio->uio_resid;
|
||||
|
||||
if (paddr)
|
||||
*paddr = 0;
|
||||
if (controlp)
|
||||
*controlp = 0;
|
||||
if (flagsp)
|
||||
if (paddr != NULL)
|
||||
*paddr = NULL;
|
||||
if (controlp != NULL)
|
||||
*controlp = NULL;
|
||||
if (flagsp != NULL)
|
||||
flags = *flagsp &~ MSG_EOR;
|
||||
else
|
||||
flags = 0;
|
||||
@ -1046,20 +1045,20 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
error = uiomove(mtod(m, void *),
|
||||
(int) min(uio->uio_resid, m->m_len), uio);
|
||||
m = m_free(m);
|
||||
} while (uio->uio_resid && error == 0 && m);
|
||||
} while (uio->uio_resid > 0 && error == 0 && m);
|
||||
bad:
|
||||
if (m)
|
||||
if (m != NULL)
|
||||
m_freem(m);
|
||||
return (error);
|
||||
return error;
|
||||
}
|
||||
if (mp)
|
||||
if (mp != NULL)
|
||||
*mp = NULL;
|
||||
if (so->so_state & SS_ISCONFIRMING && uio->uio_resid)
|
||||
(*pr->pr_usrreq)(so, PRU_RCVD, NULL, NULL, NULL, l);
|
||||
|
||||
restart:
|
||||
if ((error = sblock(&so->so_rcv, SBLOCKWAIT(flags))) != 0)
|
||||
return (error);
|
||||
return error;
|
||||
s = splsoftnet();
|
||||
|
||||
m = so->so_rcv.sb_mb;
|
||||
@ -1074,17 +1073,20 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
* we have to do the receive in sections, and thus risk returning
|
||||
* a short count if a timeout or signal occurs after we start.
|
||||
*/
|
||||
if (m == 0 || (((flags & MSG_DONTWAIT) == 0 &&
|
||||
so->so_rcv.sb_cc < uio->uio_resid) &&
|
||||
(so->so_rcv.sb_cc < so->so_rcv.sb_lowat ||
|
||||
((flags & MSG_WAITALL) && uio->uio_resid <= so->so_rcv.sb_hiwat)) &&
|
||||
m->m_nextpkt == 0 && (pr->pr_flags & PR_ATOMIC) == 0)) {
|
||||
if (m == NULL ||
|
||||
((flags & MSG_DONTWAIT) == 0 &&
|
||||
so->so_rcv.sb_cc < uio->uio_resid &&
|
||||
(so->so_rcv.sb_cc < so->so_rcv.sb_lowat ||
|
||||
((flags & MSG_WAITALL) &&
|
||||
uio->uio_resid <= so->so_rcv.sb_hiwat)) &&
|
||||
m->m_nextpkt == NULL &&
|
||||
(pr->pr_flags & PR_ATOMIC) == 0)) {
|
||||
#ifdef DIAGNOSTIC
|
||||
if (m == 0 && so->so_rcv.sb_cc)
|
||||
if (m == NULL && so->so_rcv.sb_cc)
|
||||
panic("receive 1");
|
||||
#endif
|
||||
if (so->so_error) {
|
||||
if (m)
|
||||
if (m != NULL)
|
||||
goto dontblock;
|
||||
error = so->so_error;
|
||||
if ((flags & MSG_PEEK) == 0)
|
||||
@ -1092,12 +1094,12 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
goto release;
|
||||
}
|
||||
if (so->so_state & SS_CANTRCVMORE) {
|
||||
if (m)
|
||||
if (m != NULL)
|
||||
goto dontblock;
|
||||
else
|
||||
goto release;
|
||||
}
|
||||
for (; m; m = m->m_next)
|
||||
for (; m != NULL; m = m->m_next)
|
||||
if (m->m_type == MT_OOBDATA || (m->m_flags & M_EOR)) {
|
||||
m = so->so_rcv.sb_mb;
|
||||
goto dontblock;
|
||||
@ -1118,8 +1120,8 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
sbunlock(&so->so_rcv);
|
||||
error = sbwait(&so->so_rcv);
|
||||
splx(s);
|
||||
if (error)
|
||||
return (error);
|
||||
if (error != 0)
|
||||
return error;
|
||||
goto restart;
|
||||
}
|
||||
dontblock:
|
||||
@ -1128,7 +1130,7 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
* While we process the initial mbufs containing address and control
|
||||
* info, we save a copy of m->m_nextpkt into nextrecord.
|
||||
*/
|
||||
if (l)
|
||||
if (l != NULL)
|
||||
l->l_proc->p_stats->p_ru.ru_msgrcv++;
|
||||
KASSERT(m == so->so_rcv.sb_mb);
|
||||
SBLASTRECORDCHK(&so->so_rcv, "soreceive 1");
|
||||
@ -1147,10 +1149,10 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
} else {
|
||||
sbfree(&so->so_rcv, m);
|
||||
mbuf_removed = 1;
|
||||
if (paddr) {
|
||||
if (paddr != NULL) {
|
||||
*paddr = m;
|
||||
so->so_rcv.sb_mb = m->m_next;
|
||||
m->m_next = 0;
|
||||
m->m_next = NULL;
|
||||
m = so->so_rcv.sb_mb;
|
||||
} else {
|
||||
MFREE(m, so->so_rcv.sb_mb);
|
||||
@ -1158,15 +1160,15 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
}
|
||||
}
|
||||
}
|
||||
while (m && m->m_type == MT_CONTROL && error == 0) {
|
||||
while (m != NULL && m->m_type == MT_CONTROL && error == 0) {
|
||||
if (flags & MSG_PEEK) {
|
||||
if (controlp)
|
||||
if (controlp != NULL)
|
||||
*controlp = m_copy(m, 0, m->m_len);
|
||||
m = m->m_next;
|
||||
} else {
|
||||
sbfree(&so->so_rcv, m);
|
||||
mbuf_removed = 1;
|
||||
if (controlp) {
|
||||
if (controlp != NULL) {
|
||||
struct domain *dom = pr->pr_domain;
|
||||
if (dom->dom_externalize && l &&
|
||||
mtod(m, struct cmsghdr *)->cmsg_type ==
|
||||
@ -1174,7 +1176,7 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
error = (*dom->dom_externalize)(m, l);
|
||||
*controlp = m;
|
||||
so->so_rcv.sb_mb = m->m_next;
|
||||
m->m_next = 0;
|
||||
m->m_next = NULL;
|
||||
m = so->so_rcv.sb_mb;
|
||||
} else {
|
||||
/*
|
||||
@ -1188,7 +1190,7 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
m = so->so_rcv.sb_mb;
|
||||
}
|
||||
}
|
||||
if (controlp) {
|
||||
if (controlp != NULL) {
|
||||
orig_resid = 0;
|
||||
controlp = &(*controlp)->m_next;
|
||||
}
|
||||
@ -1200,7 +1202,7 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
* the last packet on the chain (nextrecord == NULL) and we
|
||||
* change m->m_nextpkt.
|
||||
*/
|
||||
if (m) {
|
||||
if (m != NULL) {
|
||||
if ((flags & MSG_PEEK) == 0) {
|
||||
m->m_nextpkt = nextrecord;
|
||||
/*
|
||||
@ -1228,7 +1230,7 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
|
||||
moff = 0;
|
||||
offset = 0;
|
||||
while (m && uio->uio_resid > 0 && error == 0) {
|
||||
while (m != NULL && uio->uio_resid > 0 && error == 0) {
|
||||
if (m->m_type == MT_OOBDATA) {
|
||||
if (type != MT_OOBDATA)
|
||||
break;
|
||||
@ -1252,13 +1254,13 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
* we must note any additions to the sockbuf when we
|
||||
* block interrupts again.
|
||||
*/
|
||||
if (mp == 0) {
|
||||
if (mp == NULL) {
|
||||
SBLASTRECORDCHK(&so->so_rcv, "soreceive uiomove");
|
||||
SBLASTMBUFCHK(&so->so_rcv, "soreceive uiomove");
|
||||
splx(s);
|
||||
error = uiomove(mtod(m, char *) + moff, (int)len, uio);
|
||||
s = splsoftnet();
|
||||
if (error) {
|
||||
if (error != 0) {
|
||||
/*
|
||||
* If any part of the record has been removed
|
||||
* (such as the MT_SONAME mbuf, which will
|
||||
@ -1312,16 +1314,14 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
SBLASTRECORDCHK(&so->so_rcv, "soreceive 3");
|
||||
SBLASTMBUFCHK(&so->so_rcv, "soreceive 3");
|
||||
}
|
||||
} else {
|
||||
if (flags & MSG_PEEK)
|
||||
moff += len;
|
||||
else {
|
||||
if (mp)
|
||||
*mp = m_copym(m, 0, len, M_WAIT);
|
||||
m->m_data += len;
|
||||
m->m_len -= len;
|
||||
so->so_rcv.sb_cc -= len;
|
||||
}
|
||||
} else if (flags & MSG_PEEK)
|
||||
moff += len;
|
||||
else {
|
||||
if (mp != NULL)
|
||||
*mp = m_copym(m, 0, len, M_WAIT);
|
||||
m->m_data += len;
|
||||
m->m_len -= len;
|
||||
so->so_rcv.sb_cc -= len;
|
||||
}
|
||||
if (so->so_oobmark) {
|
||||
if ((flags & MSG_PEEK) == 0) {
|
||||
@ -1345,7 +1345,7 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
* with a short count but without error.
|
||||
* Keep sockbuf locked against other readers.
|
||||
*/
|
||||
while (flags & MSG_WAITALL && m == 0 && uio->uio_resid > 0 &&
|
||||
while (flags & MSG_WAITALL && m == NULL && uio->uio_resid > 0 &&
|
||||
!sosendallatonce(so) && !nextrecord) {
|
||||
if (so->so_error || so->so_state & SS_CANTRCVMORE)
|
||||
break;
|
||||
@ -1366,10 +1366,10 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
SBLASTRECORDCHK(&so->so_rcv, "soreceive sbwait 2");
|
||||
SBLASTMBUFCHK(&so->so_rcv, "soreceive sbwait 2");
|
||||
error = sbwait(&so->so_rcv);
|
||||
if (error) {
|
||||
if (error != 0) {
|
||||
sbunlock(&so->so_rcv);
|
||||
splx(s);
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
if ((m = so->so_rcv.sb_mb) != NULL)
|
||||
nextrecord = m->m_nextpkt;
|
||||
@ -1382,7 +1382,7 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
(void) sbdroprecord(&so->so_rcv);
|
||||
}
|
||||
if ((flags & MSG_PEEK) == 0) {
|
||||
if (m == 0) {
|
||||
if (m == NULL) {
|
||||
/*
|
||||
* First part is an inline SB_EMPTY_FIXUP(). Second
|
||||
* part makes sure sb_lastrecord is up-to-date if
|
||||
@ -1408,12 +1408,12 @@ soreceive(struct socket *so, struct mbuf **paddr, struct uio *uio,
|
||||
goto restart;
|
||||
}
|
||||
|
||||
if (flagsp)
|
||||
if (flagsp != NULL)
|
||||
*flagsp |= flags;
|
||||
release:
|
||||
sbunlock(&so->so_rcv);
|
||||
splx(s);
|
||||
return (error);
|
||||
return error;
|
||||
}
|
||||
|
||||
int
|
||||
@ -1430,7 +1430,7 @@ soshutdown(struct socket *so, int how)
|
||||
if (how == SHUT_WR || how == SHUT_RDWR)
|
||||
return (*pr->pr_usrreq)(so, PRU_SHUTDOWN, NULL,
|
||||
NULL, NULL, NULL);
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
x
Reference in New Issue
Block a user