summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/io/timod.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/io/timod.c')
-rw-r--r--usr/src/uts/common/io/timod.c171
1 files changed, 87 insertions, 84 deletions
diff --git a/usr/src/uts/common/io/timod.c b/usr/src/uts/common/io/timod.c
index 4d9e4eaa6e..41bf9ce7dc 100644
--- a/usr/src/uts/common/io/timod.c
+++ b/usr/src/uts/common/io/timod.c
@@ -20,7 +20,7 @@
*/
/* ONC_PLUS EXTRACT START */
/*
- * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
+ * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
@@ -695,6 +695,7 @@ timodprocessinfo(queue_t *q, struct tim_tim *tp, struct T_info_ack *tia)
static int
timodrproc(queue_t *q, mblk_t *mp)
{
+ uint32_t auditing = AU_AUDITING();
union T_primitives *pptr;
struct tim_tim *tp;
struct iocblk *iocbp;
@@ -787,7 +788,7 @@ timodrproc(queue_t *q, mblk_t *mp)
default:
/* ONC_PLUS EXTRACT END */
- if (audit_active)
+ if (auditing)
audit_sock(T_UNITDATA_IND, q, mp, TIMOD_ID);
/* ONC_PLUS EXTRACT START */
putnext(q, mp);
@@ -969,23 +970,24 @@ timodrproc(queue_t *q, mblk_t *mp)
/* ONC_PLUS EXTRACT END */
case T_OPTMGMT_ACK:
- tilog("timodrproc: Got T_OPTMGMT_ACK\n", 0);
+ tilog("timodrproc: Got T_OPTMGMT_ACK\n", 0);
- /* Restore db_type - recover() might have change it */
- mp->b_datap->db_type = M_PCPROTO;
+ /* Restore db_type - recover() might have change it */
+ mp->b_datap->db_type = M_PCPROTO;
- if (((tp->tim_flags & WAITIOCACK) == 0) ||
- ((tp->tim_saved_prim != T_SVR4_OPTMGMT_REQ) &&
- (tp->tim_saved_prim != T_OPTMGMT_REQ))) {
- putnext(q, mp);
- } else {
- ASSERT(tp->tim_iocsave != NULL);
- tim_ioctl_send_reply(q, tp->tim_iocsave, mp);
- tp->tim_iocsave = NULL;
- tp->tim_saved_prim = -1;
- tp->tim_flags &= ~(WAITIOCACK | WAIT_IOCINFOACK |
- TI_CAP_RECVD | CAP_WANTS_INFO);
- }
+ if (((tp->tim_flags & WAITIOCACK) == 0) ||
+ ((tp->tim_saved_prim != T_SVR4_OPTMGMT_REQ) &&
+ (tp->tim_saved_prim != T_OPTMGMT_REQ))) {
+ putnext(q, mp);
+ } else {
+ ASSERT(tp->tim_iocsave != NULL);
+ tim_ioctl_send_reply(q, tp->tim_iocsave, mp);
+ tp->tim_iocsave = NULL;
+ tp->tim_saved_prim = -1;
+ tp->tim_flags &= ~(WAITIOCACK |
+ WAIT_IOCINFOACK | TI_CAP_RECVD |
+ CAP_WANTS_INFO);
+ }
break;
case T_INFO_ACK: {
@@ -1109,31 +1111,31 @@ timodrproc(queue_t *q, mblk_t *mp)
deficit) {
mblk_t *tmp = allocb(expected_ack_size,
BPRI_HI);
- if (tmp == NULL) {
- ASSERT(MBLKSIZE(mp) >=
- sizeof (struct T_error_ack));
-
- tilog("timodrproc: allocb failed no "
- "recovery attempt\n", 0);
-
- mp->b_rptr = mp->b_datap->db_base;
- pptr = (union T_primitives *)
- mp->b_rptr;
- pptr->error_ack.ERROR_prim = T_INFO_REQ;
- pptr->error_ack.TLI_error = TSYSERR;
- pptr->error_ack.UNIX_error = EAGAIN;
- pptr->error_ack.PRIM_type = T_ERROR_ACK;
- mp->b_datap->db_type = M_PCPROTO;
- tim_send_ioc_error_ack(q, tp, mp);
- break;
- } else {
- bcopy(mp->b_rptr, tmp->b_rptr, blen);
- tmp->b_wptr += blen;
- pptr = (union T_primitives *)
- tmp->b_rptr;
- freemsg(mp);
- mp = tmp;
- }
+ if (tmp == NULL) {
+ ASSERT(MBLKSIZE(mp) >=
+ sizeof (struct T_error_ack));
+
+ tilog("timodrproc: allocb failed no "
+ "recovery attempt\n", 0);
+
+ mp->b_rptr = mp->b_datap->db_base;
+ pptr = (union T_primitives *)
+ mp->b_rptr;
+ pptr->error_ack.ERROR_prim = T_INFO_REQ;
+ pptr->error_ack.TLI_error = TSYSERR;
+ pptr->error_ack.UNIX_error = EAGAIN;
+ pptr->error_ack.PRIM_type = T_ERROR_ACK;
+ mp->b_datap->db_type = M_PCPROTO;
+ tim_send_ioc_error_ack(q, tp, mp);
+ break;
+ } else {
+ bcopy(mp->b_rptr, tmp->b_rptr, blen);
+ tmp->b_wptr += blen;
+ pptr = (union T_primitives *)
+ tmp->b_rptr;
+ freemsg(mp);
+ mp = tmp;
+ }
}
}
/*
@@ -1218,7 +1220,7 @@ timodrproc(queue_t *q, mblk_t *mp)
}
}
/* ONC_PLUS EXTRACT END */
- if (audit_active)
+ if (auditing)
audit_sock(T_CONN_IND, q, mp, TIMOD_ID);
/* ONC_PLUS EXTRACT START */
putnext(q, mp);
@@ -1281,16 +1283,16 @@ timodrproc(queue_t *q, mblk_t *mp)
case T_ORDREL_IND:
- tilog("timodrproc: Got T_ORDREL_IND\n", 0);
+ tilog("timodrproc: Got T_ORDREL_IND\n", 0);
- if (tp->tim_flags & LOCORDREL) {
- tp->tim_flags &= ~(LOCORDREL|REMORDREL);
- tim_clear_peer(tp);
- } else {
- tp->tim_flags |= REMORDREL;
- }
- putnext(q, mp);
- break;
+ if (tp->tim_flags & LOCORDREL) {
+ tp->tim_flags &= ~(LOCORDREL|REMORDREL);
+ tim_clear_peer(tp);
+ } else {
+ tp->tim_flags |= REMORDREL;
+ }
+ putnext(q, mp);
+ break;
case T_EXDATA_IND:
case T_DATA_IND:
@@ -1430,36 +1432,36 @@ timodrproc(queue_t *q, mblk_t *mp)
/* ONC_PLUS EXTRACT START */
case M_IOCNAK:
- tilog("timodrproc: Got M_IOCNAK\n", 0);
+ tilog("timodrproc: Got M_IOCNAK\n", 0);
- iocbp = (struct iocblk *)mp->b_rptr;
- if (((iocbp->ioc_cmd == TI_GETMYNAME) ||
- (iocbp->ioc_cmd == TI_GETPEERNAME)) &&
- ((iocbp->ioc_error == EINVAL) || (iocbp->ioc_error == 0))) {
- PI_PROVLOCK(tp->tim_provinfo);
- if (iocbp->ioc_cmd == TI_GETMYNAME) {
- if (tp->tim_provinfo->tpi_myname == PI_DONTKNOW)
- tp->tim_provinfo->tpi_myname = PI_NO;
- } else if (iocbp->ioc_cmd == TI_GETPEERNAME) {
- if (tp->tim_provinfo->tpi_peername == PI_DONTKNOW)
- tp->tim_provinfo->tpi_peername = PI_NO;
- }
- PI_PROVUNLOCK(tp->tim_provinfo);
- /* tim_iocsave may already be overwritten. */
- if ((tp->tim_iocsave != NULL) &&
- (tp->tim_saved_prim == -1)) {
- freemsg(mp);
- mp = tp->tim_iocsave;
- tp->tim_iocsave = NULL;
- tp->tim_flags |= NAMEPROC;
- if (ti_doname(WR(q), mp) != DONAME_CONT) {
- tp->tim_flags &= ~NAMEPROC;
- }
- break;
- }
- }
- putnext(q, mp);
- break;
+ iocbp = (struct iocblk *)mp->b_rptr;
+ if (((iocbp->ioc_cmd == TI_GETMYNAME) ||
+ (iocbp->ioc_cmd == TI_GETPEERNAME)) &&
+ ((iocbp->ioc_error == EINVAL) || (iocbp->ioc_error == 0))) {
+ PI_PROVLOCK(tp->tim_provinfo);
+ if (iocbp->ioc_cmd == TI_GETMYNAME) {
+ if (tp->tim_provinfo->tpi_myname == PI_DONTKNOW)
+ tp->tim_provinfo->tpi_myname = PI_NO;
+ } else if (iocbp->ioc_cmd == TI_GETPEERNAME) {
+ if (tp->tim_provinfo->tpi_peername == PI_DONTKNOW)
+ tp->tim_provinfo->tpi_peername = PI_NO;
+ }
+ PI_PROVUNLOCK(tp->tim_provinfo);
+ /* tim_iocsave may already be overwritten. */
+ if ((tp->tim_iocsave != NULL) &&
+ (tp->tim_saved_prim == -1)) {
+ freemsg(mp);
+ mp = tp->tim_iocsave;
+ tp->tim_iocsave = NULL;
+ tp->tim_flags |= NAMEPROC;
+ if (ti_doname(WR(q), mp) != DONAME_CONT) {
+ tp->tim_flags &= ~NAMEPROC;
+ }
+ break;
+ }
+ }
+ putnext(q, mp);
+ break;
/* ONC_PLUS EXTRACT END */
}
@@ -1614,6 +1616,7 @@ timodwproc(queue_t *q, mblk_t *mp)
{
union T_primitives *pptr;
struct tim_tim *tp;
+ uint32_t auditing = AU_AUDITING();
mblk_t *tmp;
struct iocblk *iocbp;
int error;
@@ -1997,7 +2000,7 @@ getname:
mp = tmp;
}
}
- if (audit_active)
+ if (auditing)
audit_sock(T_UNITDATA_REQ, q, mp, TIMOD_ID);
if (!bcanputnext(q, mp->b_band)) {
(void) putbq(q, mp);
@@ -2053,12 +2056,12 @@ getname:
if (tp->tim_flags & COTS)
tp->tim_flags |= CONNWAIT;
/* ONC_PLUS EXTRACT END */
- if (audit_active)
+ if (auditing)
audit_sock(T_CONN_REQ, q, mp, TIMOD_ID);
/* ONC_PLUS EXTRACT START */
putnext(q, mp);
break;
- }
+ }
case O_T_CONN_RES:
case T_CONN_RES: {