Lines Matching defs:snmptoolctx
122 snmptool_init(struct snmp_toolinfo *snmptoolctx)
127 memset(snmptoolctx, 0, sizeof(struct snmp_toolinfo));
128 snmptoolctx->objects = 0;
129 snmptoolctx->mappings = NULL;
130 snmptoolctx->flags = SNMP_PDU_GET; /* XXX */
131 SLIST_INIT(&snmptoolctx->filelist);
133 SET_MAXREP(snmptoolctx, SNMP_MAX_REPETITIONS);
135 if (add_filename(snmptoolctx, bsnmpd_defs, &IsoOrgDod_OID, 0) < 0)
138 if (add_filename(snmptoolctx, mibII_defs, &IsoOrgDod_OID, 0) < 0)
177 if ((snmptoolctx->passwd = malloc(slen + 1)) == NULL) {
181 strlcpy(snmptoolctx->passwd, str, slen + 1);
193 snmp_import_all(struct snmp_toolinfo *snmptoolctx)
198 if (snmptoolctx == NULL)
201 if (ISSET_NUMERIC(snmptoolctx))
204 if ((snmptoolctx->mappings = snmp_mapping_init()) == NULL)
208 if (SLIST_EMPTY(&snmptoolctx->filelist)) {
212 SLIST_FOREACH(tmp, &snmptoolctx->filelist, link) {
215 if (snmp_import_file(snmptoolctx, tmp) < 0) {
223 snmp_mapping_dump(snmptoolctx);
236 add_filename(struct snmp_toolinfo *snmptoolctx, const char *filename,
242 if (snmptoolctx == NULL)
246 SLIST_FOREACH(entry, &snmptoolctx->filelist, link) {
266 SLIST_INSERT_HEAD(&snmptoolctx->filelist, entry, link);
272 free_filelist(struct snmp_toolinfo *snmptoolctx)
276 if (snmptoolctx == NULL)
279 while ((f = SLIST_FIRST(&snmptoolctx->filelist)) != NULL) {
280 SLIST_REMOVE_HEAD(&snmptoolctx->filelist, link);
381 parse_flist(struct snmp_toolinfo *snmptoolctx, char *value, char *path,
431 if (add_filename(snmptoolctx, filename, cut, 0) < 0) {
481 parse_authentication(struct snmp_toolinfo *snmptoolctx __unused, char *opt_arg)
536 parse_privacy(struct snmp_toolinfo *snmptoolctx __unused, char *opt_arg)
589 parse_context(struct snmp_toolinfo *snmptoolctx __unused, char *opt_arg)
631 parse_user_security(struct snmp_toolinfo *snmptoolctx __unused, char *opt_arg)
703 parse_file(struct snmp_toolinfo *snmptoolctx, char *opt_arg)
707 if (parse_flist(snmptoolctx, opt_arg, NULL, &IsoOrgDod_OID) < 0)
714 parse_include(struct snmp_toolinfo *snmptoolctx, char *opt_arg)
734 free_filelist(snmptoolctx, ); */
768 len = parse_flist(snmptoolctx, val, path, &IsoOrgDod_OID);
770 len = parse_flist(snmptoolctx, val, path, &cut);
939 parse_discovery(struct snmp_toolinfo *snmptoolctx)
941 SET_EDISCOVER(snmptoolctx);
947 parse_local_key(struct snmp_toolinfo *snmptoolctx)
949 SET_LOCALKEY(snmptoolctx);
955 parse_num_oids(struct snmp_toolinfo *snmptoolctx)
957 SET_NUMERIC(snmptoolctx);
962 parse_output(struct snmp_toolinfo *snmptoolctx, char *opt_arg)
972 SET_OUTPUT(snmptoolctx, OUTPUT_SHORT);
974 SET_OUTPUT(snmptoolctx, OUTPUT_VERBOSE);
976 SET_OUTPUT(snmptoolctx, OUTPUT_TABULAR);
978 SET_OUTPUT(snmptoolctx, OUTPUT_QUIET);
988 parse_errors(struct snmp_toolinfo *snmptoolctx)
990 SET_RETRY(snmptoolctx);
995 parse_skip_access(struct snmp_toolinfo *snmptoolctx)
997 SET_ERRIGNORE(snmptoolctx);
1052 snmp_oid2asn_oid(struct snmp_toolinfo *snmptoolctx, char *str,
1072 if (snmp_lookup_enumoid(snmptoolctx, &obj, string) < 0) {
1171 snmp_parse_subindex(struct snmp_toolinfo *snmptoolctx, char *str,
1180 if (GET_OUTPUT(snmptoolctx) == OUTPUT_VERBOSE) {
1196 if (stx != idx->syntax && !ISSET_ERRIGNORE(snmptoolctx)) {
1213 return (snmp_oid2asn_oid(snmptoolctx, ptr,
1236 snmp_parse_index(struct snmp_toolinfo *snmptoolctx, char *str,
1247 if ((ptr = snmp_parse_subindex(snmptoolctx, str, temp, object))
1345 snmp_object_add(struct snmp_toolinfo *snmptoolctx, snmp_verify_inoid_f func,
1350 if (snmptoolctx == NULL)
1354 if (snmptoolctx->objects >= SNMP_MAX_BINDINGS) {
1355 warnx("Too many bindings in PDU - %u", snmptoolctx->objects + 1);
1364 if (func(snmptoolctx, obj, string) < 0) {
1370 snmptoolctx->objects++;
1371 SLIST_INSERT_HEAD(&snmptoolctx->snmp_objectlist, obj, link);
1378 snmp_object_remove(struct snmp_toolinfo *snmptoolctx, struct asn_oid *oid)
1382 if (SLIST_EMPTY(&snmptoolctx->snmp_objectlist)) {
1388 SLIST_FOREACH(temp, &snmptoolctx->snmp_objectlist, link)
1397 SLIST_REMOVE(&snmptoolctx->snmp_objectlist, temp, snmp_object, link);
1407 snmp_object_freeall(struct snmp_toolinfo *snmptoolctx)
1411 while ((o = SLIST_FIRST(&snmptoolctx->snmp_objectlist)) != NULL) {
1412 SLIST_REMOVE_HEAD(&snmptoolctx->snmp_objectlist, link);
1423 snmp_tool_freeall(struct snmp_toolinfo *snmptoolctx)
1435 snmp_mapping_free(snmptoolctx);
1436 free_filelist(snmptoolctx);
1437 snmp_object_freeall(snmptoolctx);
1439 if (snmptoolctx->passwd != NULL) {
1440 free(snmptoolctx->passwd);
1441 snmptoolctx->passwd = NULL;
1453 snmp_pdu_add_bindings(struct snmp_toolinfo *snmptoolctx,
1464 if (SLIST_EMPTY(&snmptoolctx->snmp_objectlist))
1473 SLIST_FOREACH(obj, &snmptoolctx->snmp_objectlist, link) {
1474 if ((vfunc != NULL) && (vfunc(snmptoolctx, pdu, obj) < 0)) {
1497 snmp_object_seterror(struct snmp_toolinfo *snmptoolctx,
1502 if (SLIST_EMPTY(&snmptoolctx->snmp_objectlist) || err_value == NULL)
1505 SLIST_FOREACH(obj, &snmptoolctx->snmp_objectlist, link)
1641 snmp_output_octetstring(struct snmp_toolinfo *snmptoolctx, enum snmp_tc tc,
1649 if (GET_OUTPUT(snmptoolctx) == OUTPUT_VERBOSE)
1660 snmp_output_octetindex(struct snmp_toolinfo *snmptoolctx, enum snmp_tc tc,
1672 snmp_output_octetstring(snmptoolctx, tc, oid->subs[0], s);
1681 snmp_output_oid_value(struct snmp_toolinfo *snmptoolctx, struct asn_oid *oid)
1686 if (GET_OUTPUT(snmptoolctx) == OUTPUT_VERBOSE)
1689 if(!ISSET_NUMERIC(snmptoolctx)) {
1693 if (snmp_lookup_enumstring(snmptoolctx, &obj) > 0)
1695 else if (snmp_lookup_oidstring(snmptoolctx, &obj) > 0)
1697 else if (snmp_lookup_nodestring(snmptoolctx, &obj) > 0)
1710 snmp_output_int(struct snmp_toolinfo *snmptoolctx, struct enum_pairs *enums,
1715 if (GET_OUTPUT(snmptoolctx) == OUTPUT_VERBOSE)
1727 snmp_output_ipaddress(struct snmp_toolinfo *snmptoolctx, uint8_t *ip)
1729 if (GET_OUTPUT(snmptoolctx) == OUTPUT_VERBOSE)
1737 snmp_output_counter(struct snmp_toolinfo *snmptoolctx, uint32_t counter)
1739 if (GET_OUTPUT(snmptoolctx) == OUTPUT_VERBOSE)
1747 snmp_output_gauge(struct snmp_toolinfo *snmptoolctx, uint32_t gauge)
1749 if (GET_OUTPUT(snmptoolctx) == OUTPUT_VERBOSE)
1756 snmp_output_ticks(struct snmp_toolinfo *snmptoolctx, uint32_t ticks)
1758 if (GET_OUTPUT(snmptoolctx) == OUTPUT_VERBOSE)
1766 snmp_output_counter64(struct snmp_toolinfo *snmptoolctx, uint64_t counter64)
1768 if (GET_OUTPUT(snmptoolctx) == OUTPUT_VERBOSE)
1776 snmp_output_numval(struct snmp_toolinfo *snmptoolctx, struct snmp_value *val,
1782 if (GET_OUTPUT(snmptoolctx) != OUTPUT_QUIET)
1788 snmp_output_int(snmptoolctx, entry->snmp_enum,
1791 snmp_output_int(snmptoolctx, NULL, val->v.integer);
1796 snmp_output_octetstring(snmptoolctx, entry->tc,
1799 snmp_output_octetstring(snmptoolctx, SNMP_STRING,
1804 snmp_output_oid_value(snmptoolctx, &(val->v.oid));
1808 snmp_output_ipaddress(snmptoolctx, val->v.ipaddress);
1812 snmp_output_counter(snmptoolctx, val->v.uint32);
1816 snmp_output_gauge(snmptoolctx, val->v.uint32);
1820 snmp_output_ticks(snmptoolctx, val->v.uint32);
1824 snmp_output_counter64(snmptoolctx, val->v.counter64);
1856 snmp_fill_object(struct snmp_toolinfo *snmptoolctx, struct snmp_object *obj,
1873 rc = snmp_lookup_leafstring(snmptoolctx, obj);
1875 rc = snmp_lookup_nonleaf_string(snmptoolctx, obj);
1884 snmp_output_index(struct snmp_toolinfo *snmptoolctx, struct index *stx,
1900 snmp_output_int(snmptoolctx, stx->snmp_enum, temp.subs[0]);
1907 snmp_output_octetindex(snmptoolctx, stx->tc, &temp);
1919 snmp_output_oid_value(snmptoolctx, &out);
1928 snmp_output_ipaddress(snmptoolctx, ip);
1933 snmp_output_counter(snmptoolctx, temp.subs[0]);
1937 snmp_output_gauge(snmptoolctx, temp.subs[0]);
1941 snmp_output_ticks(snmptoolctx, temp.subs[0]);
1949 snmp_output_counter64(snmptoolctx, cnt64);
1960 snmp_output_object(struct snmp_toolinfo *snmptoolctx, struct snmp_object *o)
1966 if (ISSET_NUMERIC(snmptoolctx))
1988 if ((i = snmp_output_index(snmptoolctx, temp, &oid)) < 0)
2001 snmp_output_err_resp(struct snmp_toolinfo *snmptoolctx, struct snmp_pdu *pdu)
2019 if (!ISSET_NUMERIC(snmptoolctx) && (snmp_fill_object(snmptoolctx, object,
2021 snmp_output_object(snmptoolctx, object);
2039 snmp_output_resp(struct snmp_toolinfo *snmptoolctx, struct snmp_pdu *pdu,
2056 if (GET_OUTPUT(snmptoolctx) != OUTPUT_QUIET) {
2057 if (!ISSET_NUMERIC(snmptoolctx) &&
2058 (snmp_fill_object(snmptoolctx, object,
2060 snmp_output_object(snmptoolctx, object);
2066 error |= snmp_output_numval(snmptoolctx, &(pdu->bindings[i]),