From: kostas <> Date: Tue, 24 Feb 1998 04:05:16 +0000 (+0000) Subject: Update X-Git-Tag: SQUID_3_0_PRE1~4017 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d0e0c8d2e44a6abe849832bb9d03295295be42e6;p=thirdparty%2Fsquid.git Update --- diff --git a/include/parse.h b/include/parse.h index 04b94b8cfc..ee21b850d0 100644 --- a/include/parse.h +++ b/include/parse.h @@ -86,15 +86,5 @@ struct snmp_mib_tree *read_mib(); } #endif -#ifndef _SNMP_H -#ifndef SQUID_H -#ifdef __STDC__ -void (*snmplib_debug) (int,char *,...); -#else -void (*snmplib_debug) (va_alist)); -#endif -#endif - -#endif #endif /* _HAVE_PARSE_H_ */ diff --git a/include/snmp.h b/include/snmp.h index b8c78058a4..48ffc8ddff 100644 --- a/include/snmp.h +++ b/include/snmp.h @@ -27,7 +27,7 @@ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. * - * $Id: snmp.h,v 1.10 1998/02/22 20:02:27 kostas Exp $ + * $Id: snmp.h,v 1.11 1998/02/23 21:05:17 kostas Exp $ * **********************************************************************/ @@ -69,12 +69,6 @@ #include #include #include +#include -#ifndef SQUID_H -#ifdef __STDC__ -void (*snmplib_debug) (int,char *, ...); -#else -void (*snmplib_debug) (va_alist)); -#endif -#endif #endif /* _SNMP_H_ */ diff --git a/snmplib/parse.c b/snmplib/parse.c index 619829bfd2..ee4b47bb35 100644 --- a/snmplib/parse.c +++ b/snmplib/parse.c @@ -72,10 +72,10 @@ SOFTWARE. #include #endif - #include "asn1.h" #include "snmp_vars.h" #include "parse.h" +#include "snmp_debug.h" #include "util.h" @@ -256,7 +256,7 @@ print_error(string, token, type) char *token; int type; { - if (type == ENDOFFILE) + if (type == ENDOFFILE && snmplib_debug) snmplib_debug(0, "%s(EOF): On or around line %d\n", string, Line); else if (token) snmplib_debug(0, "%s(%s): On or around line %d\n", string, token, Line); diff --git a/src/net_db.cc b/src/net_db.cc index 159cf58858..0c31344b4b 100644 --- a/src/net_db.cc +++ b/src/net_db.cc @@ -1,6 +1,6 @@ /* - * $Id: net_db.cc,v 1.67 1998/02/22 11:59:33 kostas Exp $ + * $Id: net_db.cc,v 1.68 1998/02/23 21:05:18 kostas Exp $ * * DEBUG: section 37 Network Measurement Database * AUTHOR: Duane Wessels @@ -699,97 +699,99 @@ netdbUpdatePeer(request_t * r, peer * e, int irtt, int ihops) } #ifdef SQUID_SNMP -int netdb_getMax() +int +netdb_getMax() { - int i=0; + int i = 0; #if USE_ICMP - static netdbEntry *n=NULL; + static netdbEntry *n = NULL; - n = (netdbEntry *) hash_first(addr_table); - if (n!=NULL) { - i=1; - while ((n=(netdbEntry *)hash_next(addr_table))) i++; - } + n = (netdbEntry *) hash_first(addr_table); + if (n != NULL) { + i = 1; + while ((n = (netdbEntry *) hash_next(addr_table))) + i++; + } #endif - return i; + return i; } -variable_list *snmp_netdbFn(variable_list *Var, long *ErrP) +variable_list * +snmp_netdbFn(variable_list * Var, long *ErrP) { - variable_list *Answer; - int cnt; - static netdbEntry *n = NULL; + variable_list *Answer; + int cnt; + static netdbEntry *n = NULL; #if USE_ICMP - struct in_addr addr; + struct in_addr addr; #endif - debug(49,5)("snmp_netdbFn: Processing request with %d.%d!\n",Var->name[10],Var->name[11]); + debug(49, 5) ("snmp_netdbFn: Processing request with %d.%d!\n", Var->name[10], + Var->name[11]); - Answer = snmp_var_new(Var->name, Var->name_length); - *ErrP = SNMP_ERR_NOERROR; + Answer = snmp_var_new(Var->name, Var->name_length); + *ErrP = SNMP_ERR_NOERROR; - cnt=Var->name[11]; + cnt = Var->name[11]; #if USE_ICMP - n = (netdbEntry *) hash_first(addr_table); - if (n==NULL) debug(49,6)("NO FUCKING ENTRIES HERE :((( - cnt=%d\n",cnt); - while (n != NULL) - if (--cnt!=0){ - debug(49,6)("hmmmmm... getting another one while cnt=%d\n", - cnt); - n = (netdbEntry *) hash_next(addr_table); - } - else break; + n = (netdbEntry *) hash_first(addr_table); + + while (n != NULL) + if (--cnt != 0) + n = (netdbEntry *) hash_next(addr_table); + else + break; #endif - if (n==NULL) { - debug(49,6)("snmp_netdbFn: No more entries.\n"); - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); - } + if (n == NULL) { + debug(49, 8) ("snmp_netdbFn: Requested past end of netdb table.\n"); + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); + } #if USE_ICMP - Answer->val.integer = xmalloc(Answer->val_len); - Answer->val_len = sizeof(long); - switch(Var->name[10]) { + Answer->val.integer = xmalloc(Answer->val_len); + Answer->val_len = sizeof(long); + switch (Var->name[10]) { case NETDB_ID: Answer->type = SMI_INTEGER; - *(Answer->val.integer)= (long) cnt - 1; + *(Answer->val.integer) = (long) cnt - 1; break; case NETDB_NET: Answer->type = SMI_IPADDRESS; safe_inet_addr(n->network, &addr); - *(Answer->val.integer)= addr.s_addr; + *(Answer->val.integer) = addr.s_addr; break; case NETDB_PING_S: Answer->type = SMI_COUNTER32; - *(Answer->val.integer) = (long) n->pings_sent; + *(Answer->val.integer) = (long) n->pings_sent; break; case NETDB_PING_R: Answer->type = SMI_COUNTER32; - *(Answer->val.integer) = (long) n->pings_recv; + *(Answer->val.integer) = (long) n->pings_recv; break; case NETDB_HOPS: Answer->type = SMI_COUNTER32; - *(Answer->val.integer) = (long) n->hops; + *(Answer->val.integer) = (long) n->hops; break; case NETDB_RTT: Answer->type = SMI_TIMETICKS; - *(Answer->val.integer) = (long) n->rtt; + *(Answer->val.integer) = (long) n->rtt; break; case NETDB_PINGTIME: Answer->type = SMI_TIMETICKS; - *(Answer->val.integer) = (long) n->next_ping_time; + *(Answer->val.integer) = (long) n->next_ping_time; break; case NETDB_LASTUSE: Answer->type = SMI_TIMETICKS; - *(Answer->val.integer) = (long) n->last_use_time; + *(Answer->val.integer) = (long) n->last_use_time; break; default: - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); xfree(Answer->val.integer); - return(NULL); - } + return (NULL); + } #endif - return Answer; + return Answer; } #endif diff --git a/src/snmp_agent.cc b/src/snmp_agent.cc index e0af9bff94..fe049375ae 100644 --- a/src/snmp_agent.cc +++ b/src/snmp_agent.cc @@ -11,188 +11,184 @@ #include "mib.h" -enum { HTTP_SVC, ICP_SVC, DNS_SVC }; +enum { + HTTP_SVC, ICP_SVC, DNS_SVC +}; static struct snmp_pdu *snmp_agent_response(struct snmp_pdu *PDU); struct snmp_session *Session; extern StatCounters *CountHist; -extern int get_median_svc(int,int); +extern int get_median_svc(int, int); /* returns: - 2: no such object in this mib - 1: ok - 0: failed */ + * 2: no such object in this mib + * 1: ok + * 0: failed */ -int snmp_agent_parse(u_char *buf, int len, u_char *outbuf, int *outlen, - u_long from_addr, long * this_reqid) +int +snmp_agent_parse(u_char * buf, int len, u_char * outbuf, int *outlen, + u_long from_addr, long *this_reqid) { - struct snmp_pdu *PDU, *RespPDU; - u_char *Community; - int ret; - /* Now that we have the data, turn it into a PDU */ - PDU = snmp_pdu_create(0); - Community = snmp_parse(Session, PDU, buf, len); - if (Community == NULL) { - debug(49,8)("snmp_agent_parse: Community == NULL\n"); - - snmp_free_pdu(PDU); - return 0; - } + struct snmp_pdu *PDU, *RespPDU; + u_char *Community; + int ret; + /* Now that we have the data, turn it into a PDU */ + PDU = snmp_pdu_create(0); + Community = snmp_parse(Session, PDU, buf, len); + if (Community == NULL) { + debug(49, 8) ("snmp_agent_parse: Community == NULL\n"); + + snmp_free_pdu(PDU); + return 0; + } #if 0 - if (!community_check(Community)) { - xfree(Community); - /* Wrong community! XXXXX */ - } + if (!community_check(Community)) { + xfree(Community); + /* Wrong community! XXXXX */ + } #endif - xfree(Community); - debug(49,5)("snmp_agent_parse: reqid=%d\n",PDU->reqid); - RespPDU = snmp_agent_response(PDU); - snmp_free_pdu(PDU); - if (RespPDU == NULL) { - debug(49,8)("snmp_agent_parse: RespPDU == NULL\n"); - return 2; - } - debug(49,8)("snmp_agent_parse: Response pdu (%x) errstat=%d reqid=%d.\n", - RespPDU,RespPDU->errstat,RespPDU->reqid); + xfree(Community); + debug(49, 5) ("snmp_agent_parse: reqid=%d\n", PDU->reqid); + RespPDU = snmp_agent_response(PDU); + snmp_free_pdu(PDU); + if (RespPDU == NULL) { + debug(49, 8) ("snmp_agent_parse: RespPDU == NULL\n"); + return 2; + } + debug(49, 8) ("snmp_agent_parse: Response pdu (%x) errstat=%d reqid=%d.\n", + RespPDU, RespPDU->errstat, RespPDU->reqid); #if 0 - if (RespPDU->variables) { - debug(49,8)("snmp_agent_parse: len=%d\n", RespPDU->variables->val_len); - } + if (RespPDU->variables) { + debug(49, 8) ("snmp_agent_parse: len=%d\n", RespPDU->variables->val_len); + } #endif - /* Encode it */ - ret = snmp_build(Session, RespPDU, outbuf, outlen); - /* XXXXX Handle failure */ - snmp_free_pdu(RespPDU); - return 1; + /* Encode it */ + ret = snmp_build(Session, RespPDU, outbuf, outlen); + /* XXXXX Handle failure */ + snmp_free_pdu(RespPDU); + return 1; } -static struct snmp_pdu *snmp_agent_response(struct snmp_pdu *PDU) +static struct snmp_pdu * +snmp_agent_response(struct snmp_pdu *PDU) { - struct snmp_pdu *Answer = NULL; - variable_list *VarPtr, *VarNew = NULL; - variable_list **VarPtrP, **RespVars; - int index = 0; - oid_ParseFn *ParseFn; - -#ifdef DEBUG_SNMP - printf("Received a %d PDU\n", PDU->command); -#endif - - /* Create a response */ - Answer = snmp_pdu_create(SNMP_PDU_RESPONSE); - if (Answer == NULL) - return(NULL); - Answer->reqid = PDU->reqid; - Answer->errindex = 0; - - if (PDU->command == SNMP_PDU_GET) { - - RespVars = &(Answer->variables); - /* Loop through all variables */ - for (VarPtrP = &(PDU->variables); - *VarPtrP; - VarPtrP = &((*VarPtrP)->next_variable)) { - VarPtr = *VarPtrP; - - index++; - - /* Find the parsing function for this variable */ - ParseFn = oidlist_Find(VarPtr->name, VarPtr->name_length); - - if (ParseFn == NULL) { - Answer->errstat = SNMP_ERR_NOSUCHNAME; - debug(49,5)("snmp_agent_response: No such oid. "); - } else - VarNew = (*ParseFn)(VarPtr, (long *)&(Answer->errstat)); - - /* Was there an error? */ - if ((Answer->errstat != SNMP_ERR_NOERROR) || - (VarNew == NULL)) { - Answer->errindex = index; - debug(49,5)("snmp_agent_parse: successful.\n"); - /* Just copy the rest of the variables. Quickly. */ - *RespVars = VarPtr; - *VarPtrP = NULL; - return(Answer); - } - - /* No error. Insert this var at the end, and move on to the next. - */ - *RespVars = VarNew; - RespVars = &(VarNew->next_variable); - } - - return(Answer); - } - - else if (PDU->command == SNMP_PDU_GETNEXT) { - oid *TmpOidName; - int TmpOidNameLen = 0; - - /* Find the next OID. */ - VarPtr = PDU->variables; - - ParseFn = oidlist_Next(VarPtr->name, VarPtr->name_length, - &(TmpOidName), (long *)&(TmpOidNameLen)); + struct snmp_pdu *Answer = NULL; + variable_list *VarPtr, *VarNew = NULL; + variable_list **VarPtrP, **RespVars; + int index = 0; + oid_ParseFn *ParseFn; + + debug(49, 9) ("Received a %d PDU\n", PDU->command); + + /* Create a response */ + Answer = snmp_pdu_create(SNMP_PDU_RESPONSE); + if (Answer == NULL) + return (NULL); + Answer->reqid = PDU->reqid; + Answer->errindex = 0; + + if (PDU->command == SNMP_PDU_GET) { + + RespVars = &(Answer->variables); + /* Loop through all variables */ + for (VarPtrP = &(PDU->variables); + *VarPtrP; + VarPtrP = &((*VarPtrP)->next_variable)) { + VarPtr = *VarPtrP; + + index++; + + /* Find the parsing function for this variable */ + ParseFn = oidlist_Find(VarPtr->name, VarPtr->name_length); + + if (ParseFn == NULL) { + Answer->errstat = SNMP_ERR_NOSUCHNAME; + debug(49, 5) ("snmp_agent_response: No such oid. "); + } else + VarNew = (*ParseFn) (VarPtr, (long *) &(Answer->errstat)); + + /* Was there an error? */ + if ((Answer->errstat != SNMP_ERR_NOERROR) || + (VarNew == NULL)) { + Answer->errindex = index; + debug(49, 5) ("snmp_agent_parse: successful.\n"); + /* Just copy the rest of the variables. Quickly. */ + *RespVars = VarPtr; + *VarPtrP = NULL; + return (Answer); + } + /* No error. Insert this var at the end, and move on to the next. + */ + *RespVars = VarNew; + RespVars = &(VarNew->next_variable); + } - if (ParseFn == NULL) { - Answer->errstat = SNMP_ERR_NOSUCHNAME; -#ifdef DEBUG_SNMP - printf("No such oid: "); - print_oid(VarPtr->name, VarPtr->name_length); -#endif - } else { - xfree(VarPtr->name); - VarPtr->name = TmpOidName; - VarPtr->name_length = TmpOidNameLen; - VarNew = (*ParseFn)(VarPtr, (long *)&(Answer->errstat)); - } + return (Answer); + } else if (PDU->command == SNMP_PDU_GETNEXT) { + oid *TmpOidName; + int TmpOidNameLen = 0; + + /* Find the next OID. */ + VarPtr = PDU->variables; + + ParseFn = oidlist_Next(VarPtr->name, VarPtr->name_length, + &(TmpOidName), (long *) &(TmpOidNameLen)); + + if (ParseFn == NULL) { + Answer->errstat = SNMP_ERR_NOSUCHNAME; + debug(49, 9) ("No such oid: "); + print_oid(VarPtr->name, VarPtr->name_length); + } else { + xfree(VarPtr->name); + VarPtr->name = TmpOidName; + VarPtr->name_length = TmpOidNameLen; + VarNew = (*ParseFn) (VarPtr, (long *) &(Answer->errstat)); + } - /* Was there an error? */ - if (Answer->errstat != SNMP_ERR_NOERROR) { - Answer->errindex = 1; + /* Was there an error? */ + if (Answer->errstat != SNMP_ERR_NOERROR) { + Answer->errindex = 1; - /* Just copy this variable */ - Answer->variables = VarPtr; - PDU->variables = NULL; - } else { - Answer->variables = VarNew; - } + /* Just copy this variable */ + Answer->variables = VarPtr; + PDU->variables = NULL; + } else { + Answer->variables = VarNew; + } - /* Done. Return this PDU */ - return(Answer); - } /* end SNMP_PDU_GETNEXT */ - -#ifdef DEBUG_SNMP - printf("Ignoring PDU %d\n", PDU->command); -#endif - snmp_free_pdu(Answer); - return(NULL); + /* Done. Return this PDU */ + return (Answer); + } /* end SNMP_PDU_GETNEXT */ +# + debug(49, 9) ("Ignoring PDU %d\n", PDU->command); + snmp_free_pdu(Answer); + return (NULL); } -char private_community[]= "public"; +char private_community[] = "public"; -int community_check(char *b) +int +community_check(char *b) { - return(!strcmp(b, private_community)); + return (!strcmp(b, private_community)); } -int init_agent_auth() +int +init_agent_auth() { - Session = (struct snmp_session *)xmalloc(sizeof(struct snmp_session)); - if (Session == NULL) { - perror("malloc"); - return 3; - } - - Session->Version=SNMP_VERSION_1; - Session->authenticator = NULL; - Session->community = (u_char *)xstrdup("public"); - Session->community_len = 6; - return 1; + Session = (struct snmp_session *) xmalloc(sizeof(struct snmp_session)); + if (Session == NULL) { + perror("malloc"); + return 3; + } + Session->Version = SNMP_VERSION_1; + Session->authenticator = NULL; + Session->community = (u_char *) xstrdup("public"); + Session->community_len = 6; + return 1; } /************************************************************************ @@ -201,573 +197,580 @@ int init_agent_auth() ************************************************************************/ -variable_list *snmp_basicFn(variable_list *Var, long *ErrP) +variable_list * +snmp_basicFn(variable_list * Var, long *ErrP) { - variable_list *Answer; - char *pp; + variable_list *Answer; + char *pp; - debug(49,5)("snmp_basicFn: Processing request with magic %d!\n",Var->name[7]); + debug(49, 5) ("snmp_basicFn: Processing request with magic %d!\n", Var->name[7]); - Answer = snmp_var_new(Var->name, Var->name_length); - *ErrP = SNMP_ERR_NOERROR; + Answer = snmp_var_new(Var->name, Var->name_length); + *ErrP = SNMP_ERR_NOERROR; - switch (Var->name[7]) { + switch (Var->name[7]) { case VERSION_DESCR: case VERSION_ID: - pp = SQUID_VERSION; - Answer->type = ASN_OCTET_STR; - Answer->val_len=strlen(pp); - Answer->val.string= (u_char *)xstrdup(pp); - break; + pp = SQUID_VERSION; + Answer->type = ASN_OCTET_STR; + Answer->val_len = strlen(pp); + Answer->val.string = (u_char *) xstrdup(pp); + break; case UPTIME: case SYSORLASTCHANGE: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = tvSubDsec(squid_start, current_time); - break; + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = tvSubDsec(squid_start, current_time); + break; case SYSCONTACT: - Answer->type = ASN_OCTET_STR; - Answer->val_len=strlen(Config.adminEmail); - Answer->val.string= (u_char *)xstrdup(Config.adminEmail); + Answer->type = ASN_OCTET_STR; + Answer->val_len = strlen(Config.adminEmail); + Answer->val.string = (u_char *) xstrdup(Config.adminEmail); case SYSYSNAME: - if (( pp= Config.visibleHostname) == NULL) - pp=(char *)getMyHostname(); - Answer->type = ASN_OCTET_STR; - Answer->val_len=strlen(pp); - Answer->val.string= (u_char *)xstrdup(pp); - break; + if ((pp = Config.visibleHostname) == NULL) + pp = (char *) getMyHostname(); + Answer->type = ASN_OCTET_STR; + Answer->val_len = strlen(pp); + Answer->val.string = (u_char *) xstrdup(pp); + break; case SYSLOCATION: - pp = "Cyberspace"; - Answer->type = ASN_OCTET_STR; - Answer->val_len=strlen(pp); - Answer->val.string= (u_char *)xstrdup(pp); - break; + pp = "Cyberspace"; + Answer->type = ASN_OCTET_STR; + Answer->val_len = strlen(pp); + Answer->val.string = (u_char *) xstrdup(pp); + break; case SYSSERVICES: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = 72; - break; - default: - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); - } - debug(49,5)("snmp_basicFn: Done. returning a real value!\n"); - - return(Answer); + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = 72; + break; + default: + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); + } + debug(49, 5) ("snmp_basicFn: Done. returning a real value!\n"); + + return (Answer); } -variable_list *snmp_sysFn(variable_list *Var, long *ErrP) +variable_list * +snmp_sysFn(variable_list * Var, long *ErrP) { - variable_list *Answer; - static fde *f=NULL; - int num=1,cnt=0; - static struct in_addr addr; - static long long_return; - - debug(49,5)("snmp_sysFn: Processing request with magic %d: \n",Var->name[8]); - print_oid(Var->name, Var->name_length); - - Answer = snmp_var_new(Var->name, Var->name_length); - *ErrP = SNMP_ERR_NOERROR; - - switch(Var->name[8]) { - case SYSVMSIZ: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = store_mem_size; - break; - case SYSSTOR: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = store_swap_size; - break; - case SYSFDTBL: - num=Var->name[11]; - debug(49,9)("snmp_sysFn: num=%d\n",num); - while (num && cnt < Squid_MaxFD) { - f = &fd_table[cnt++]; - if (!f->open) - continue; - num--; + variable_list *Answer; + static fde *f = NULL; + int num = 1, cnt = 0; + static struct in_addr addr; + static long long_return; + + debug(49, 5) ("snmp_sysFn: Processing request with magic %d: \n", Var->name[8]); + print_oid(Var->name, Var->name_length); + + Answer = snmp_var_new(Var->name, Var->name_length); + *ErrP = SNMP_ERR_NOERROR; + + switch (Var->name[8]) { + case SYSVMSIZ: + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = store_mem_size; + break; + case SYSSTOR: + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = store_swap_size; + break; + case SYSFDTBL: + num = Var->name[11]; + debug(49, 9) ("snmp_sysFn: num=%d\n", num); + while (num && cnt < Squid_MaxFD) { + f = &fd_table[cnt++]; + if (!f->open) + continue; + num--; } - if (num!=0 || !f) { - debug(49,9)("snmp_sysFn: no such name. %x\n",f); - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); + if (num != 0 || !f) { + debug(49, 9) ("snmp_sysFn: no such name. %x\n", f); + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); } switch (Var->name[10]) { case SYS_FD_NUMBER: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer)= Var->name[11]; - break; - case SYS_FD_TYPE: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer)= f->type; - break; - case SYS_FD_TOUT: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer)= (long) (f->timeout_handler ? (f->timeout - squid_curtime)/ 60 : 0); - break; - case SYS_FD_NREAD: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer)= (long) f->bytes_read; - break; - case SYS_FD_NWRITE: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer)= (long) f->bytes_written; - break; - case SYS_FD_ADDR: - if (f->type != FD_SOCKET) - long_return = (long) 0; - else { - safe_inet_addr(f->ipaddr, &addr); - long_return = (long) addr.s_addr; - } - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = SMI_IPADDRESS; - *(Answer->val.integer)= (long) long_return; - break; - case SYS_FD_NAME: - Answer->type = ASN_OCTET_STR; - Answer->val_len=strlen(f->desc); - Answer->val.string= (u_char *)xstrdup(f->desc); - break; + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = Var->name[11]; + break; + case SYS_FD_TYPE: + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = f->type; + break; + case SYS_FD_TOUT: + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) (f->timeout_handler ? (f->timeout - squid_curtime) / 60 : 0); + break; + case SYS_FD_NREAD: + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) f->bytes_read; + break; + case SYS_FD_NWRITE: + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) f->bytes_written; + break; + case SYS_FD_ADDR: + if (f->type != FD_SOCKET) + long_return = (long) 0; + else { + safe_inet_addr(f->ipaddr, &addr); + long_return = (long) addr.s_addr; + } + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = SMI_IPADDRESS; + *(Answer->val.integer) = (long) long_return; + break; + case SYS_FD_NAME: + Answer->type = ASN_OCTET_STR; + Answer->val_len = strlen(f->desc); + Answer->val.string = (u_char *) xstrdup(f->desc); + break; default: - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); } break; - default: - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); - } - debug(49,5)("snmp_sysFn: Done. returning a real value!\n"); - return Answer; + default: + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); + } + debug(49, 5) ("snmp_sysFn: Done. returning a real value!\n"); + return Answer; } -variable_list *snmp_confFn(variable_list *Var, long *ErrP) +variable_list * +snmp_confFn(variable_list * Var, long *ErrP) { - variable_list *Answer; - char *cp=NULL; + variable_list *Answer; + char *cp = NULL; - debug(49,5)("snmp_confFn: Processing request with magic %d!\n",Var->name[8]); + debug(49, 5) ("snmp_confFn: Processing request with magic %d!\n", Var->name[8]); - Answer = snmp_var_new(Var->name, Var->name_length); - *ErrP = SNMP_ERR_NOERROR; + Answer = snmp_var_new(Var->name, Var->name_length); + *ErrP = SNMP_ERR_NOERROR; - switch(Var->name[8]) { + switch (Var->name[8]) { case CONF_ADMIN: - Answer->type = ASN_OCTET_STR; - Answer->val_len=strlen(Config.adminEmail); - Answer->val.string= (u_char *)xstrdup(Config.adminEmail); - break; + Answer->type = ASN_OCTET_STR; + Answer->val_len = strlen(Config.adminEmail); + Answer->val.string = (u_char *) xstrdup(Config.adminEmail); + break; case CONF_UPTIME: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = tvSubDsec(squid_start, current_time); - break; + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_TIMETICKS; + *(Answer->val.integer) = tvSubDsec(squid_start, current_time); + break; case CONF_STORAGE: - switch (Var->name[9]) { + switch (Var->name[9]) { case CONF_ST_MMAXSZ: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) Config.Mem.maxSize; - break; - case CONF_ST_MHIWM: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) Config.Mem.highWaterMark; - break; - case CONF_ST_MLOWM: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) Config.Mem.lowWaterMark; - break; - case CONF_ST_SWMAXSZ: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) Config.Swap.maxSize; - break; - case CONF_ST_SWHIWM: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) Config.Swap.highWaterMark; - break; - case CONF_ST_SWLOWM: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) Config.Swap.lowWaterMark; - break; + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) Config.Mem.maxSize; + break; + case CONF_ST_MHIWM: + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) Config.Mem.highWaterMark; + break; + case CONF_ST_MLOWM: + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) Config.Mem.lowWaterMark; + break; + case CONF_ST_SWMAXSZ: + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) Config.Swap.maxSize; + break; + case CONF_ST_SWHIWM: + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) Config.Swap.highWaterMark; + break; + case CONF_ST_SWLOWM: + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) Config.Swap.lowWaterMark; + break; default: - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); } break; - case CONF_WAIS_RHOST: - if (Config.Wais.relayHost) - cp = Config.Wais.relayHost; - else - cp = "None"; - Answer->type = ASN_OCTET_STR; - Answer->val_len=strlen(cp); - Answer->val.string= (u_char *)xstrdup(cp); - break; + case CONF_WAIS_RHOST: + if (Config.Wais.relayHost) + cp = Config.Wais.relayHost; + else + cp = "None"; + Answer->type = ASN_OCTET_STR; + Answer->val_len = strlen(cp); + Answer->val.string = (u_char *) xstrdup(cp); + break; case CONF_WAIS_RPORT: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) Config.Wais.relayPort; + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) Config.Wais.relayPort; break; case CONF_TIO: switch (Var->name[9]) { case CONF_TIO_RD: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) Config.Timeout.read; - break; - case CONF_TIO_CON: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) Config.Timeout.connect; - break; - case CONF_TIO_REQ: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) Config.Timeout.request; - break; + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) Config.Timeout.read; + break; + case CONF_TIO_CON: + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) Config.Timeout.connect; + break; + case CONF_TIO_REQ: + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) Config.Timeout.request; + break; default: - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); } case CONF_LOG_LVL: - if (!(cp = Config.debugOptions)) - cp = "None"; - Answer->type = ASN_OCTET_STR; - Answer->val_len=strlen(cp); - Answer->val.string= (u_char *)xstrdup(cp); - break; + if (!(cp = Config.debugOptions)) + cp = "None"; + Answer->type = ASN_OCTET_STR; + Answer->val_len = strlen(cp); + Answer->val.string = (u_char *) xstrdup(cp); + break; default: - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); } return Answer; } -variable_list *snmp_confPtblFn(variable_list *Var, long *ErrP) +variable_list * +snmp_confPtblFn(variable_list * Var, long *ErrP) { - variable_list *Answer; - char *cp=NULL; - peer *p=NULL; - int cnt; - debug(49,5)("snmp_confPtblFn: peer %d requested!\n",Var->name[11]); - - Answer = snmp_var_new(Var->name, Var->name_length); - *ErrP = SNMP_ERR_NOERROR; - - p=Config.peers; - cnt=Var->name[11]; - debug(49,5)("snmp_confPtblFn: we want .x.%d\n",Var->name[10]); - while (--cnt) if (!(p=p->next)); - if (p==NULL) { - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); - } - - switch (Var->name[10]) { + variable_list *Answer; + char *cp = NULL; + peer *p = NULL; + int cnt; + debug(49, 5) ("snmp_confPtblFn: peer %d requested!\n", Var->name[11]); + + Answer = snmp_var_new(Var->name, Var->name_length); + *ErrP = SNMP_ERR_NOERROR; + + p = Config.peers; + cnt = Var->name[11]; + debug(49, 5) ("snmp_confPtblFn: we want .x.%d\n", Var->name[10]); + while (--cnt) + if (!(p = p->next)); + if (p == NULL) { + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); + } + switch (Var->name[10]) { case CONF_PTBL_ID: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) Var->name[10]; + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) Var->name[10]; break; case CONF_PTBL_NAME: - cp = p->host; - Answer->type = ASN_OCTET_STR; - Answer->val_len=strlen(cp); - Answer->val.string= (u_char *)xstrdup(cp); - break; + cp = p->host; + Answer->type = ASN_OCTET_STR; + Answer->val_len = strlen(cp); + Answer->val.string = (u_char *) xstrdup(cp); + break; case CONF_PTBL_IP: - Answer->type = SMI_IPADDRESS; - Answer->val.integer = xmalloc(Answer->val_len); - Answer->val_len = sizeof(long); - *(Answer->val.integer) = (long) (p->in_addr.sin_addr.s_addr); - break; + Answer->type = SMI_IPADDRESS; + Answer->val.integer = xmalloc(Answer->val_len); + Answer->val_len = sizeof(long); + *(Answer->val.integer) = (long) (p->in_addr.sin_addr.s_addr); + break; case CONF_PTBL_HTTP: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) p->http_port; + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) p->http_port; break; case CONF_PTBL_ICP: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) p->icp_port; + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) p->icp_port; break; case CONF_PTBL_TYPE: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) p->type; + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) p->type; break; case CONF_PTBL_STATE: - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) neighborUp(p); + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) neighborUp(p); break; default: - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); - } - return Answer; + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); + } + return Answer; } -variable_list *snmp_prfSysFn(variable_list *Var, long *ErrP) +variable_list * +snmp_prfSysFn(variable_list * Var, long *ErrP) { - variable_list *Answer; - static struct rusage rusage; + variable_list *Answer; + static struct rusage rusage; - debug(49,5)("snmp_prfSysFn: Processing request with magic %d!\n",Var->name[9]); + debug(49, 5) ("snmp_prfSysFn: Processing request with magic %d!\n", Var->name[9]); - Answer = snmp_var_new(Var->name, Var->name_length); - *ErrP = SNMP_ERR_NOERROR; - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - Answer->type = ASN_INTEGER; + Answer = snmp_var_new(Var->name, Var->name_length); + *ErrP = SNMP_ERR_NOERROR; + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + Answer->type = ASN_INTEGER; - switch(Var->name[9]) { + switch (Var->name[9]) { case PERF_SYS_PF: - squid_getrusage(&rusage); - *(Answer->val.integer) = rusage_pagefaults(&rusage); - break; + squid_getrusage(&rusage); + *(Answer->val.integer) = rusage_pagefaults(&rusage); + break; case PERF_SYS_NUMR: - *(Answer->val.integer) = IOStats.Http.reads; - break; + *(Answer->val.integer) = IOStats.Http.reads; + break; case PERF_SYS_DEFR: - *(Answer->val.integer) = IOStats.Http.reads_deferred; - break; + *(Answer->val.integer) = IOStats.Http.reads_deferred; + break; case PERF_SYS_MEMUSAGE: - *(Answer->val.integer) = (long) statMemoryAccounted() >> 10; - break; + *(Answer->val.integer) = (long) statMemoryAccounted() >> 10; + break; case PERF_SYS_CPUUSAGE: - squid_getrusage(&rusage); - *(Answer->val.integer) = (long) rusage_cputime(&rusage); - break; + squid_getrusage(&rusage); + *(Answer->val.integer) = (long) rusage_cputime(&rusage); + break; case PERF_SYS_MAXRESSZ: - squid_getrusage(&rusage); - *(Answer->val.integer) = (long) rusage_maxrss(&rusage); - break; + squid_getrusage(&rusage); + *(Answer->val.integer) = (long) rusage_maxrss(&rusage); + break; case PERF_SYS_CURLRUEXP: - Answer->type=SMI_TIMETICKS; - *(Answer->val.integer) = (long) ((double) storeExpiredReferenceAge() / 86400.0); - break; + Answer->type = SMI_TIMETICKS; + *(Answer->val.integer) = (long) ((double) storeExpiredReferenceAge() / 86400.0); + break; case PERF_SYS_CURUNLREQ: - *(Answer->val.integer) = (long) Counter.unlink.requests; - break; + *(Answer->val.integer) = (long) Counter.unlink.requests; + break; case PERF_SYS_CURUNUSED_FD: - *(Answer->val.integer) = (long) Squid_MaxFD - Number_FD; - break; + *(Answer->val.integer) = (long) Squid_MaxFD - Number_FD; + break; case PERF_SYS_CURRESERVED_FD: - *(Answer->val.integer) = (long) Number_FD; - break; + *(Answer->val.integer) = (long) Number_FD; + break; case PERF_SYS_NUMOBJCNT: - *(Answer->val.integer) = (long) memInUse(MEM_STOREENTRY); - break; + *(Answer->val.integer) = (long) memInUse(MEM_STOREENTRY); + break; default: - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); - } - return Answer; + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); + } + return Answer; } -variable_list *snmp_prfPeerFn(variable_list *Var, long *ErrP) +variable_list * +snmp_prfPeerFn(variable_list * Var, long *ErrP) { - variable_list *Answer; - peer *p=NULL; - int cnt; - debug(49,5)("snmp_prfPeerFn: Processing request with magic %d!\n",Var->name[9]); - - Answer = snmp_var_new(Var->name, Var->name_length); - *ErrP = SNMP_ERR_NOERROR; - - p=Config.peers; - cnt=Var->name[12]; - debug(49,5)("snmp_prfPeerFn: we want .%d.%d\n",Var->name[11],cnt); - while (--cnt) if (!(p=p->next)); - if (p==NULL) { - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); - } - - Answer->type = SMI_COUNTER32; - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - - switch(Var->name[11]) { + variable_list *Answer; + peer *p = NULL; + int cnt; + debug(49, 5) ("snmp_prfPeerFn: Processing request with magic %d!\n", Var->name[9]); + + Answer = snmp_var_new(Var->name, Var->name_length); + *ErrP = SNMP_ERR_NOERROR; + + p = Config.peers; + cnt = Var->name[12]; + debug(49, 5) ("snmp_prfPeerFn: we want .%d.%d\n", Var->name[11], cnt); + while (--cnt) + if (!(p = p->next)); + if (p == NULL) { + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); + } + Answer->type = SMI_COUNTER32; + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + + switch (Var->name[11]) { case PERF_PEERSTAT_ID: - Answer->type= ASN_INTEGER; - *(Answer->val.integer) = Var->name[11]; + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = Var->name[11]; break; case PERF_PEERSTAT_SENT: - *(Answer->val.integer) = p->stats.pings_sent; + *(Answer->val.integer) = p->stats.pings_sent; break; case PERF_PEERSTAT_PACKED: - *(Answer->val.integer) = p->stats.pings_acked; + *(Answer->val.integer) = p->stats.pings_acked; break; case PERF_PEERSTAT_FETCHES: - *(Answer->val.integer) = p->stats.fetches; + *(Answer->val.integer) = p->stats.fetches; break; case PERF_PEERSTAT_RTT: - Answer->type= ASN_INTEGER; - *(Answer->val.integer) = p->stats.rtt; + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = p->stats.rtt; break; case PERF_PEERSTAT_IGN: - *(Answer->val.integer) = p->stats.ignored_replies; + *(Answer->val.integer) = p->stats.ignored_replies; break; case PERF_PEERSTAT_KEEPAL_S: - *(Answer->val.integer) = p->stats.n_keepalives_sent; + *(Answer->val.integer) = p->stats.n_keepalives_sent; break; case PERF_PEERSTAT_KEEPAL_R: - *(Answer->val.integer) = p->stats.n_keepalives_recv; + *(Answer->val.integer) = p->stats.n_keepalives_recv; break; default: - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); xfree(Answer->val.integer); - return(NULL); - } - return Answer; + return (NULL); + } + return Answer; } -variable_list *snmp_prfProtoFn(variable_list *Var, long *ErrP) +variable_list * +snmp_prfProtoFn(variable_list * Var, long *ErrP) { - variable_list *Answer; + variable_list *Answer; - debug(49,5)("snmp_prfProtoFn: Processing request with magic %d!\n",Var->name[8]); + debug(49, 5) ("snmp_prfProtoFn: Processing request with magic %d!\n", Var->name[8]); - Answer = snmp_var_new(Var->name, Var->name_length); - *ErrP = SNMP_ERR_NOERROR; + Answer = snmp_var_new(Var->name, Var->name_length); + *ErrP = SNMP_ERR_NOERROR; - if (Var->name[9]==1) { /* cacheProtoAggregateStats */ - Answer->type = SMI_COUNTER32; - Answer->val_len = sizeof(long); - Answer->val.integer = xmalloc(Answer->val_len); - switch(Var->name[10]) { - case PERF_PROTOSTAT_AGGR_HTTP_REQ: - *(Answer->val.integer) = (long) Counter.client_http.requests; - break; - case PERF_PROTOSTAT_AGGR_HTTP_HITS: - *(Answer->val.integer) = (long) Counter.client_http.hits; - break; - case PERF_PROTOSTAT_AGGR_HTTP_ERRORS: - *(Answer->val.integer) = (long) Counter.client_http.errors; - break; - case PERF_PROTOSTAT_AGGR_ICP_S: - *(Answer->val.integer) = (long) Counter.icp.pkts_sent; - break; - case PERF_PROTOSTAT_AGGR_ICP_R: - *(Answer->val.integer) = (long) Counter.icp.pkts_recv; - break; - case PERF_PROTOSTAT_AGGR_ICP_SKB: - *(Answer->val.integer) = (long) Counter.icp.kbytes_sent.kb; - break; - case PERF_PROTOSTAT_AGGR_ICP_RKB: - *(Answer->val.integer) = (long) Counter.icp.kbytes_recv.kb; - break; - case PERF_PROTOSTAT_AGGR_KBYTES_IN: - *(Answer->val.integer) = (long) Counter.client_http.kbytes_in.kb; - break; - case PERF_PROTOSTAT_AGGR_KBYTES_OUT: - *(Answer->val.integer) = (long) Counter.client_http.kbytes_out.kb; - break; - case PERF_PROTOSTAT_AGGR_CURSWAP: - *(Answer->val.integer) = (long) store_swap_size; - break; - case PERF_PROTOSTAT_AGGR_HTTP_SVC_5: - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) get_median_svc(5, HTTP_SVC); - break; - case PERF_PROTOSTAT_AGGR_ICP_SVC_5: - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) get_median_svc(5, ICP_SVC); - break; - case PERF_PROTOSTAT_AGGR_DNS_SVC_5: - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) get_median_svc(5, DNS_SVC); - break; - case PERF_PROTOSTAT_AGGR_HTTP_SVC_60: - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) get_median_svc(60, HTTP_SVC); - break; - case PERF_PROTOSTAT_AGGR_ICP_SVC_60: - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) get_median_svc(60, ICP_SVC); - break; - case PERF_PROTOSTAT_AGGR_DNS_SVC_60: - Answer->type = ASN_INTEGER; - *(Answer->val.integer) = (long) get_median_svc(60, DNS_SVC); - break; - default: - xfree(Answer->val.integer); - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); - } - } - else { - *ErrP = SNMP_ERR_NOSUCHNAME; - snmp_var_free(Answer); - return(NULL); - } - return Answer; + if (Var->name[9] == 1) { /* cacheProtoAggregateStats */ + Answer->type = SMI_COUNTER32; + Answer->val_len = sizeof(long); + Answer->val.integer = xmalloc(Answer->val_len); + switch (Var->name[10]) { + case PERF_PROTOSTAT_AGGR_HTTP_REQ: + *(Answer->val.integer) = (long) Counter.client_http.requests; + break; + case PERF_PROTOSTAT_AGGR_HTTP_HITS: + *(Answer->val.integer) = (long) Counter.client_http.hits; + break; + case PERF_PROTOSTAT_AGGR_HTTP_ERRORS: + *(Answer->val.integer) = (long) Counter.client_http.errors; + break; + case PERF_PROTOSTAT_AGGR_ICP_S: + *(Answer->val.integer) = (long) Counter.icp.pkts_sent; + break; + case PERF_PROTOSTAT_AGGR_ICP_R: + *(Answer->val.integer) = (long) Counter.icp.pkts_recv; + break; + case PERF_PROTOSTAT_AGGR_ICP_SKB: + *(Answer->val.integer) = (long) Counter.icp.kbytes_sent.kb; + break; + case PERF_PROTOSTAT_AGGR_ICP_RKB: + *(Answer->val.integer) = (long) Counter.icp.kbytes_recv.kb; + break; + case PERF_PROTOSTAT_AGGR_KBYTES_IN: + *(Answer->val.integer) = (long) Counter.client_http.kbytes_in.kb; + break; + case PERF_PROTOSTAT_AGGR_KBYTES_OUT: + *(Answer->val.integer) = (long) Counter.client_http.kbytes_out.kb; + break; + case PERF_PROTOSTAT_AGGR_CURSWAP: + *(Answer->val.integer) = (long) store_swap_size; + break; + case PERF_PROTOSTAT_AGGR_HTTP_SVC_5: + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) get_median_svc(5, HTTP_SVC); + break; + case PERF_PROTOSTAT_AGGR_ICP_SVC_5: + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) get_median_svc(5, ICP_SVC); + break; + case PERF_PROTOSTAT_AGGR_DNS_SVC_5: + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) get_median_svc(5, DNS_SVC); + break; + case PERF_PROTOSTAT_AGGR_HTTP_SVC_60: + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) get_median_svc(60, HTTP_SVC); + break; + case PERF_PROTOSTAT_AGGR_ICP_SVC_60: + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) get_median_svc(60, ICP_SVC); + break; + case PERF_PROTOSTAT_AGGR_DNS_SVC_60: + Answer->type = ASN_INTEGER; + *(Answer->val.integer) = (long) get_median_svc(60, DNS_SVC); + break; + default: + xfree(Answer->val.integer); + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); + } + } else { + *ErrP = SNMP_ERR_NOSUCHNAME; + snmp_var_free(Answer); + return (NULL); + } + return Answer; } -variable_list *snmp_dnsFn(variable_list *Var, long *ErrP) +variable_list * +snmp_dnsFn(variable_list * Var, long *ErrP) { - debug(49,5)("snmp_dnsFn: Processing request with magic %d!\n",Var->name[9]); - if (Var->name[9] == NET_DNS_IPCACHE) - return snmp_ipcacheFn(Var,ErrP); - if (Var->name[9] == NET_DNS_FQDNCACHE) - return snmp_fqdncacheFn(Var,ErrP); + debug(49, 5) ("snmp_dnsFn: Processing request with magic %d!\n", Var->name[9]); + if (Var->name[9] == NET_DNS_IPCACHE) + return snmp_ipcacheFn(Var, ErrP); + if (Var->name[9] == NET_DNS_FQDNCACHE) + return snmp_fqdncacheFn(Var, ErrP); - return NULL; + return NULL; }