version 1.38, 1998/08/04 04:03:17 |
version 1.39, 1998/09/25 23:32:27 |
Line 81 socreate(dom, aso, type, proto) |
|
Line 81 socreate(dom, aso, type, proto) |
|
register struct protosw *prp; |
register struct protosw *prp; |
register struct socket *so; |
register struct socket *so; |
register int error; |
register int error; |
|
int s; |
|
|
if (proto) |
if (proto) |
prp = pffindproto(dom, proto, type); |
prp = pffindproto(dom, proto, type); |
Line 90 socreate(dom, aso, type, proto) |
|
Line 91 socreate(dom, aso, type, proto) |
|
return (EPROTONOSUPPORT); |
return (EPROTONOSUPPORT); |
if (prp->pr_type != type) |
if (prp->pr_type != type) |
return (EPROTOTYPE); |
return (EPROTOTYPE); |
|
s = splsoftnet(); |
so = pool_get(&socket_pool, PR_WAITOK); |
so = pool_get(&socket_pool, PR_WAITOK); |
memset((caddr_t)so, 0, sizeof(*so)); |
memset((caddr_t)so, 0, sizeof(*so)); |
TAILQ_INIT(&so->so_q0); |
TAILQ_INIT(&so->so_q0); |
Line 103 socreate(dom, aso, type, proto) |
|
Line 105 socreate(dom, aso, type, proto) |
|
if (error) { |
if (error) { |
so->so_state |= SS_NOFDREF; |
so->so_state |= SS_NOFDREF; |
sofree(so); |
sofree(so); |
|
splx(s); |
return (error); |
return (error); |
} |
} |
#ifdef COMPAT_SUNOS |
#ifdef COMPAT_SUNOS |
Line 112 socreate(dom, aso, type, proto) |
|
Line 115 socreate(dom, aso, type, proto) |
|
so->so_options |= SO_BROADCAST; |
so->so_options |= SO_BROADCAST; |
} |
} |
#endif |
#endif |
|
splx(s); |
*aso = so; |
*aso = so; |
return (0); |
return (0); |
} |
} |