projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
purge COUNT crap now that we have gprof
[unix-history]
/
usr
/
src
/
sys
/
kern
/
uipc_socket.c
diff --git
a/usr/src/sys/kern/uipc_socket.c
b/usr/src/sys/kern/uipc_socket.c
index
986e6fa
..
150ba40
100644
(file)
--- a/
usr/src/sys/kern/uipc_socket.c
+++ b/
usr/src/sys/kern/uipc_socket.c
@@
-1,4
+1,4
@@
-/* uipc_socket.c 4.
38 82/04/01
*/
+/* uipc_socket.c 4.
42 82/06/20
*/
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
@@
-38,7
+38,6
@@
socreate(aso, type, asp, asa, options)
register struct socket *so;
struct mbuf *m;
int pf, proto, error;
register struct socket *so;
struct mbuf *m;
int pf, proto, error;
-COUNT(SOCREATE);
/*
* Use process standard protocol/protocol family if none
/*
* Use process standard protocol/protocol family if none
@@
-82,7
+81,10
@@
COUNT(SOCREATE);
so->so_proto = prp;
error = (*prp->pr_usrreq)(so, PRU_ATTACH, 0, asa);
if (error) {
so->so_proto = prp;
error = (*prp->pr_usrreq)(so, PRU_ATTACH, 0, asa);
if (error) {
- (void) m_free(dtom(so));
+ if (so->so_snd.sb_mbmax || so->so_rcv.sb_mbmax)
+ panic("socreate");
+ so->so_state |= SS_USERGONE;
+ sofree(so);
return (error);
}
*aso = so;
return (error);
}
*aso = so;
@@
-93,7
+95,6
@@
sofree(so)
struct socket *so;
{
struct socket *so;
{
-COUNT(SOFREE);
if (so->so_pcb || (so->so_state & SS_USERGONE) == 0)
return;
sbrelease(&so->so_snd);
if (so->so_pcb || (so->so_state & SS_USERGONE) == 0)
return;
sbrelease(&so->so_snd);
@@
-114,7
+115,6
@@
soclose(so, exiting)
{
int s = splnet(); /* conservative */
{
int s = splnet(); /* conservative */
-COUNT(SOCLOSE);
if (so->so_pcb == 0)
goto discard;
if (exiting)
if (so->so_pcb == 0)
goto discard;
if (exiting)
@@
-143,7
+143,13
@@
COUNT(SOCLOSE);
}
}
drop:
}
}
drop:
- u.u_error = (*so->so_proto->pr_usrreq)(so, PRU_DETACH, 0, 0);
+ if (so->so_pcb) {
+ u.u_error = (*so->so_proto->pr_usrreq)(so, PRU_DETACH, 0, 0);
+ if (exiting == 0 && u.u_error) {
+ splx(s);
+ return;
+ }
+ }
discard:
so->so_state |= SS_USERGONE;
sofree(so);
discard:
so->so_state |= SS_USERGONE;
sofree(so);
@@
-156,7
+162,6
@@
sostat(so, sb)
struct stat *sb;
{
struct stat *sb;
{
-COUNT(SOSTAT);
bzero((caddr_t)sb, sizeof (*sb)); /* XXX */
return (0); /* XXX */
}
bzero((caddr_t)sb, sizeof (*sb)); /* XXX */
return (0); /* XXX */
}
@@
-171,7
+176,6
@@
soaccept(so, asa)
int s = splnet();
int error;
int s = splnet();
int error;
-COUNT(SOACCEPT);
if ((so->so_options & SO_ACCEPTCONN) == 0) {
error = EINVAL; /* XXX */
goto bad;
if ((so->so_options & SO_ACCEPTCONN) == 0) {
error = EINVAL; /* XXX */
goto bad;
@@
-199,7
+203,6
@@
soconnect(so, asa)
int s = splnet();
int error;
int s = splnet();
int error;
-COUNT(SOCONNECT);
if (so->so_state & (SS_ISCONNECTED|SS_ISCONNECTING)) {
error = EISCONN;
goto bad;
if (so->so_state & (SS_ISCONNECTED|SS_ISCONNECTING)) {
error = EISCONN;
goto bad;
@@
-223,7
+226,6
@@
sodisconnect(so, asa)
int s = splnet();
int error;
int s = splnet();
int error;
-COUNT(SODISCONNECT);
if ((so->so_state & SS_ISCONNECTED) == 0) {
error = ENOTCONN;
goto bad;
if ((so->so_state & SS_ISCONNECTED) == 0) {
error = ENOTCONN;
goto bad;
@@
-255,7
+257,6
@@
sosend(so, asa)
register u_int len;
int error = 0, space, s;
register u_int len;
int error = 0, space, s;
-COUNT(SOSEND);
if (sosendallatonce(so) && u.u_count > so->so_snd.sb_hiwat)
return (EMSGSIZE);
#ifdef notdef
if (sosendallatonce(so) && u.u_count > so->so_snd.sb_hiwat)
return (EMSGSIZE);
#ifdef notdef
@@
-350,7
+351,6
@@
soreceive(so, asa)
int eor, s, error = 0, cnt = u.u_count;
caddr_t base = u.u_base;
int eor, s, error = 0, cnt = u.u_count;
caddr_t base = u.u_base;
-COUNT(SORECEIVE);
restart:
sblock(&so->so_rcv);
s = splnet();
restart:
sblock(&so->so_rcv);
s = splnet();
@@
-459,7
+459,6
@@
soioctl(so, cmd, cmdp)
register caddr_t cmdp;
{
register caddr_t cmdp;
{
-COUNT(SOIOCTL);
switch (cmd) {
case FIONBIO: {
switch (cmd) {
case FIONBIO: {
@@
-614,10
+613,8
@@
COUNT(SOIOCTL);
case SIOCDELRT:
case SIOCCHGRT: {
struct rtentry route;
case SIOCDELRT:
case SIOCCHGRT: {
struct rtentry route;
-#ifdef notdef
if (!suser())
return;
if (!suser())
return;
-#endif
if (copyin(cmdp, (caddr_t)&route, sizeof (route))) {
u.u_error = EFAULT;
return;
if (copyin(cmdp, (caddr_t)&route, sizeof (route))) {
u.u_error = EFAULT;
return;