X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=userapps%2Fopensource%2Fnet-snmp%2Fagent%2Fmibgroup%2Ftarget%2Ftarget.c;fp=userapps%2Fopensource%2Fnet-snmp%2Fagent%2Fmibgroup%2Ftarget%2Ftarget.c;h=0000000000000000000000000000000000000000;hb=cf3b25a5003e531e4599b2a56fa007f272198570;hp=94d756ceab3402ca957a5205b237c91aec7382d5;hpb=59e02c1be2c9b373846b0789fbd5b7ef46f0927f;p=bcm963xx.git diff --git a/userapps/opensource/net-snmp/agent/mibgroup/target/target.c b/userapps/opensource/net-snmp/agent/mibgroup/target/target.c deleted file mode 100755 index 94d756ce..00000000 --- a/userapps/opensource/net-snmp/agent/mibgroup/target/target.c +++ /dev/null @@ -1,204 +0,0 @@ -#include - -#if HAVE_WINSOCK_H -#include -#endif -#if HAVE_STRING_H -#include -#else -#include -#endif - -#include -#include - -#include "snmpTargetAddrEntry.h" -#include "snmpTargetParamsEntry.h" -#include "target.h" - -#define MAX_TAGS 128 - -netsnmp_session * -get_target_sessions(char *taglist, TargetFilterFunction * filterfunct, - void *filterArg) -{ - netsnmp_session *ret = NULL, thissess; - struct targetAddrTable_struct *targaddrs; - char buf[SPRINT_MAX_LEN]; - char tags[MAX_TAGS][SPRINT_MAX_LEN], *cp; - int numtags = 0, i; - static struct targetParamTable_struct *param; - - DEBUGMSGTL(("target_sessions", "looking for: %s\n", taglist)); - for (cp = taglist; cp && numtags < MAX_TAGS;) { - cp = copy_nword(cp, tags[numtags], sizeof(tags[numtags])); - DEBUGMSGTL(("target_sessions", " for: %d=%s\n", numtags, - tags[numtags])); - numtags++; - } - - for (targaddrs = get_addrTable(); targaddrs; - targaddrs = targaddrs->next) { - - /* - * legal row? - */ - if (targaddrs->tDomain == NULL || - targaddrs->tAddress == NULL || - targaddrs->rowStatus != SNMP_ROW_ACTIVE) { - DEBUGMSGTL(("target_sessions", " which is not ready yet\n")); - continue; - } - - if (netsnmp_tdomain_support - (targaddrs->tDomain, targaddrs->tDomainLen, NULL, NULL) == 0) { - snmp_log(LOG_ERR, - "unsupported domain for target address table entry %s\n", - targaddrs->name); - } - - /* - * check tag list to see if we match - */ - if (targaddrs->tagList) { - /* - * loop through tag list looking for requested tags - */ - for (cp = targaddrs->tagList; cp;) { - cp = copy_nword(cp, buf, sizeof(buf)); - for (i = 0; i < numtags; i++) { - if (strcmp(buf, tags[i]) == 0) { - /* - * found a valid target table entry - */ - DEBUGMSGTL(("target_sessions", "found one: %s\n", - tags[i])); - - if (targaddrs->params) { - param = get_paramEntry(targaddrs->params); - if (!param - || param->rowStatus != SNMP_ROW_ACTIVE) { - /* - * parameter entry must exist and be active - */ - continue; - } - } else { - /* - * parameter entry must be specified - */ - continue; - } - - /* - * last chance for caller to opt-out. Call - * filtering function - */ - if (filterfunct && - (*(filterfunct)) (targaddrs, param, - filterArg)) { - continue; - } - - if (targaddrs->storageType != ST_READONLY && - targaddrs->sess && - param->updateTime >= - targaddrs->sessionCreationTime) { - /* - * parameters have changed, nuke the old session - */ - snmp_close(targaddrs->sess); - targaddrs->sess = NULL; - } - - /* - * target session already exists? - */ - if (targaddrs->sess == NULL) { - /* - * create an appropriate snmp session and add - * it to our return list - */ - netsnmp_transport *t = NULL; - - t = netsnmp_tdomain_transport_oid(targaddrs-> - tDomain, - targaddrs-> - tDomainLen, - targaddrs-> - tAddress, - targaddrs-> - tAddressLen, - 0); - if (t == NULL) { - DEBUGMSGTL(("target_sessions", - "bad dest \"")); - DEBUGMSGOID(("target_sessions", - targaddrs->tDomain, - targaddrs->tDomainLen)); - DEBUGMSG(("target_sessions", "\", \"")); - DEBUGMSGHEX(("target_sessions", - targaddrs->tAddress, - targaddrs->tAddressLen)); - DEBUGMSG(("target_sessions", "\n")); - continue; - } else { - char *dst_str = - t->f_fmtaddr(t, NULL, 0); - if (dst_str != NULL) { - DEBUGMSGTL(("target_sessions", - " to: %s\n", dst_str)); - free(dst_str); - } - } - memset(&thissess, 0, sizeof(thissess)); - thissess.timeout = (targaddrs->timeout) * 1000; - thissess.retries = targaddrs->retryCount; - DEBUGMSGTL(("target_sessions", - "timeout: %d -> %d\n", - targaddrs->timeout, - thissess.timeout)); - - if (param->mpModel == SNMP_VERSION_3 && - param->secModel != 3) { - snmp_log(LOG_ERR, - "unsupported model/secmodel combo for target %s\n", - targaddrs->name); - /* - * XXX: memleak - */ - netsnmp_transport_free(t); - continue; - } - thissess.version = param->mpModel; - if (param->mpModel == SNMP_VERSION_3) { - thissess.securityName = param->secName; - thissess.securityNameLen = - strlen(thissess.securityName); - thissess.securityLevel = param->secLevel; - } else { - thissess.community = - (u_char *) strdup(param->secName); - thissess.community_len = - strlen((char *) thissess.community); - } - - targaddrs->sess = snmp_add(&thissess, t, - NULL, NULL); - targaddrs->sessionCreationTime = time(NULL); - } - if (targaddrs->sess) { - if (ret) { - targaddrs->sess->next = ret; - } - ret = targaddrs->sess; - } else { - snmp_sess_perror("target session", &thissess); - } - } - } - } - } - } - return ret; -}