From 605544dfea19962c3c581ae1ebe4dd84adaaac51 Mon Sep 17 00:00:00 2001 From: Doug MacEachern Date: Sat, 12 Mar 2005 01:25:18 +0000 Subject: [PATCH] the static decls in get_mib2 were removed but were required. put the vars that were static into the solaris_mib2_t. --- src/os/solaris/get_mib2.c | 75 +++++++++++++++++++-------------------- src/os/solaris/get_mib2.h | 10 ++++-- 2 files changed, 44 insertions(+), 41 deletions(-) diff --git a/src/os/solaris/get_mib2.c b/src/os/solaris/get_mib2.c index 2b18307f..7f63c908 100644 --- a/src/os/solaris/get_mib2.c +++ b/src/os/solaris/get_mib2.c @@ -44,7 +44,6 @@ static char copyright[] = #include #include #include -#include #include /* @@ -100,14 +99,9 @@ get_mib2(solaris_mib2_t *mib2, char **data, int *datalen) { - struct T_optmgmt_ack *a; /* message ACK pointer */ - struct strbuf c; /* streams control buffer */ struct strbuf d; /* streams data buffer */ - struct T_error_ack *e; /* message error pointer */ int err; /* error code */ int f; /* flags */ - struct opthdr *o; /* message option pointer */ - struct T_optmgmt_req *r; /* message request pointer */ int rc; /* reply code */ /* @@ -115,7 +109,6 @@ get_mib2(solaris_mib2_t *mib2, * messages. */ if (mib2->sd < 0) { - /* * Open access. Return on error. */ @@ -125,30 +118,30 @@ get_mib2(solaris_mib2_t *mib2, /* * Set up message request and option. */ - r = (struct T_optmgmt_req *)mib2->smb; - o = (struct opthdr *)&mib2->smb[sizeof(struct T_optmgmt_req)]; - r->PRIM_type = T_OPTMGMT_REQ; - r->OPT_offset = sizeof(struct T_optmgmt_req); - r->OPT_length = sizeof(struct opthdr); + mib2->req = (struct T_optmgmt_req *)mib2->smb; + mib2->op = (struct opthdr *)&mib2->smb[sizeof(struct T_optmgmt_req)]; + mib2->req->PRIM_type = T_OPTMGMT_REQ; + mib2->req->OPT_offset = sizeof(struct T_optmgmt_req); + mib2->req->OPT_length = sizeof(struct opthdr); #if defined(MI_T_CURRENT) - r->MGMT_flags = MI_T_CURRENT; + mib2->req->MGMT_flags = MI_T_CURRENT; #else /* !defined(MI_T_CURRENT) */ # if defined(T_CURRENT) - r->MGMT_flags = T_CURRENT; + mib2->req->MGMT_flags = T_CURRENT; # else /* !defined(T_CURRENT) */ #error "Neither MI_T_CURRENT nor T_CURRENT are defined." # endif /* defined(T_CURRENT) */ #endif /* defined(MI_T_CURRENT) */ - o->level = MIB2_IP; - o->name = o->len = 0; - c.buf = mib2->smb; - c.len = r->OPT_offset + r->OPT_length; + mib2->op->level = MIB2_IP; + mib2->op->name = mib2->op->len = 0; + mib2->ctlbuf.buf = mib2->smb; + mib2->ctlbuf.len = mib2->req->OPT_offset + mib2->req->OPT_length; /* * Put the message. */ - if (putmsg(mib2->sd, &c, (struct strbuf *)NULL, 0) == -1) { + if (putmsg(mib2->sd, &mib2->ctlbuf, (struct strbuf *)NULL, 0) == -1) { (void) sprintf(mib2->errmsg, "get_mib2: putmsg request: %s", strerror(errno)); return(GET_MIB2_ERR_PUTMSG); @@ -156,16 +149,16 @@ get_mib2(solaris_mib2_t *mib2, /* * Set up to process replies. */ - a = (struct T_optmgmt_ack *)mib2->smb; - c.maxlen = mib2->smb_len; - e = (struct T_error_ack *)mib2->smb; - o = (struct opthdr *)&mib2->smb[sizeof(struct T_optmgmt_ack)]; + mib2->op_ack = (struct T_optmgmt_ack *)mib2->smb; + mib2->ctlbuf.maxlen = mib2->smb_len; + mib2->err_ack = (struct T_error_ack *)mib2->smb; + mib2->op = (struct opthdr *)&mib2->smb[sizeof(struct T_optmgmt_ack)]; } /* * Get the next (first) reply message. */ f = 0; - if ((rc = getmsg(mib2->sd, &c, NULL, &f)) < 0) { + if ((rc = getmsg(mib2->sd, &mib2->ctlbuf, NULL, &f)) < 0) { (void) sprintf(mib2->errmsg, "get_mib2: getmsg(reply): %s", strerror(errno)); return(GET_MIB2_ERR_GETMSGR); @@ -174,10 +167,10 @@ get_mib2(solaris_mib2_t *mib2, * Check for end of data. */ if (rc == 0 - && c.len >= sizeof(struct T_optmgmt_ack) - && a->PRIM_type == T_OPTMGMT_ACK - && a->MGMT_flags == T_SUCCESS - && o->len == 0) + && mib2->ctlbuf.len >= sizeof(struct T_optmgmt_ack) + && mib2->op_ack->PRIM_type == T_OPTMGMT_ACK + && mib2->op_ack->MGMT_flags == T_SUCCESS + && mib2->op->len == 0) { err = close_mib2(mib2); if (err) { @@ -188,33 +181,37 @@ get_mib2(solaris_mib2_t *mib2, /* * Check for error. */ - if (c.len >= sizeof(struct T_error_ack) - && e->PRIM_type == T_ERROR_ACK) + if (mib2->ctlbuf.len >= sizeof(struct T_error_ack) + && mib2->err_ack->PRIM_type == T_ERROR_ACK) { (void) sprintf(mib2->errmsg, "get_mib2: T_ERROR_ACK: len=%d, TLI=%#x, UNIX=%#x", - c.len, (int)e->TLI_error, (int)e->UNIX_error); + mib2->ctlbuf.len, + (int)mib2->err_ack->TLI_error, + (int)mib2->err_ack->UNIX_error); return(GET_MIB2_ERR_ACK); } /* * Check for no data. */ if (rc != MOREDATA - || c.len < sizeof(struct T_optmgmt_ack) - || a->PRIM_type != T_OPTMGMT_ACK - || a->MGMT_flags != T_SUCCESS) + || mib2->ctlbuf.len < sizeof(struct T_optmgmt_ack) + || mib2->op_ack->PRIM_type != T_OPTMGMT_ACK + || mib2->op_ack->MGMT_flags != T_SUCCESS) { (void) sprintf(mib2->errmsg, "get_mib2: T_OPTMGMT_ACK: " "rc=%d len=%d type=%#x flags=%#x", - rc, c.len, (int)a->PRIM_type, (int)a->MGMT_flags); + rc, mib2->ctlbuf.len, + (int)mib2->op_ack->PRIM_type, + (int)mib2->op_ack->MGMT_flags); return(GET_MIB2_ERR_NODATA); } /* * Allocate (or enlarge) the data buffer. */ - if (o->len >= mib2->db_len) { - mib2->db_len = o->len; + if (mib2->op->len >= mib2->db_len) { + mib2->db_len = mib2->op->len; if (mib2->db == NULL) { mib2->db = (char *)malloc(mib2->db_len); } @@ -231,7 +228,7 @@ get_mib2(solaris_mib2_t *mib2, /* * Get the data part of the message -- the MIB2 part. */ - d.maxlen = o->len; + d.maxlen = mib2->op->len; d.buf = mib2->db; d.len = 0; f = 0; @@ -249,7 +246,7 @@ get_mib2(solaris_mib2_t *mib2, /* * Compose a successful return. */ - *opt = o; + *opt = mib2->op; *data = mib2->db; *datalen = d.len; return(GET_MIB2_OK); diff --git a/src/os/solaris/get_mib2.h b/src/os/solaris/get_mib2.h index 34167002..1e90095e 100644 --- a/src/os/solaris/get_mib2.h +++ b/src/os/solaris/get_mib2.h @@ -44,9 +44,10 @@ * Required header files */ +#include #include #include -#include +#include #include #include #include @@ -95,7 +96,12 @@ typedef struct { char *smb; /* stream message buffer */ size_t smb_len; /* size of Smb[] */ int sd; /* stream device descriptor */ - char errmsg[GET_MIB2_ERRMSGL]; /* error message buffer */ + char errmsg[GET_MIB2_ERRMSGL]; /* error message buffer */ + struct T_optmgmt_ack *op_ack; /* message ACK pointer */ + struct strbuf ctlbuf; /* streams control buffer */ + struct T_error_ack *err_ack; /* message error pointer */ + struct opthdr *op; /* message option pointer */ + struct T_optmgmt_req *req; /* message request pointer */ } solaris_mib2_t; /*