Lines Matching refs:snmp_client

74 struct snmp_client snmp_client;  variable
131 seterr(struct snmp_client *sc, const char *fmt, ...) in seterr()
202 seterr(&snmp_client, "no memory for table entry"); in table_find()
206 seterr(&snmp_client, "no memory for table entry"); in table_find()
220 seterr(&snmp_client, "bad index: need integer"); in table_find()
224 seterr(&snmp_client, in table_find()
234 seterr(&snmp_client, in table_find()
240 seterr(&snmp_client, in table_find()
245 seterr(&snmp_client, in table_find()
251 seterr(&snmp_client, in table_find()
268 seterr(&snmp_client, in table_find()
274 seterr(&snmp_client, in table_find()
286 seterr(&snmp_client, in table_find()
292 seterr(&snmp_client, in table_find()
304 seterr(&snmp_client, in table_find()
309 seterr(&snmp_client, in table_find()
384 seterr(&snmp_client, "bad syntax (%u instead of %u)", b->syntax, in table_value()
398 seterr(&snmp_client, "no memory for string"); in table_value()
448 if (snmp_client.version == SNMP_V1) in table_init_pdu()
480 if (snmp_client.version == SNMP_V1 && in table_check_response()
487 seterr(&snmp_client, "error fetching table: status=%d index=%d", in table_check_response()
497 seterr(&snmp_client, in table_check_response()
502 seterr(&snmp_client, in table_check_response()
512 seterr(&snmp_client, in table_check_response()
547 seterr(&snmp_client, in table_check_cons()
553 seterr(&snmp_client, "inconsistency detected %llx %llx", in table_check_cons()
639 seterr(&snmp_client, "no response to fetch table request"); in table_cb()
717 seterr(&snmp_client, "%s", strerror(errno)); in snmp_table_fetch_async()
853 snmp_client_init(struct snmp_client *c) in snmp_client_init()
895 if (snmp_client.chost == NULL) { in open_client_udp()
896 if ((snmp_client.chost = malloc(1 + sizeof(DEFAULT_HOST))) in open_client_udp()
898 seterr(&snmp_client, "%s", strerror(errno)); in open_client_udp()
901 strcpy(snmp_client.chost, DEFAULT_HOST); in open_client_udp()
905 seterr(&snmp_client, "%s", strerror(errno)); in open_client_udp()
908 free(snmp_client.chost); in open_client_udp()
909 snmp_client.chost = ptr; in open_client_udp()
910 strcpy(snmp_client.chost, host); in open_client_udp()
912 if (snmp_client.cport == NULL) { in open_client_udp()
913 if ((snmp_client.cport = malloc(1 + sizeof(DEFAULT_PORT))) in open_client_udp()
915 seterr(&snmp_client, "%s", strerror(errno)); in open_client_udp()
918 strcpy(snmp_client.cport, DEFAULT_PORT); in open_client_udp()
922 seterr(&snmp_client, "%s", strerror(errno)); in open_client_udp()
925 free(snmp_client.cport); in open_client_udp()
926 snmp_client.cport = ptr; in open_client_udp()
927 strcpy(snmp_client.cport, port); in open_client_udp()
933 hints.ai_family = snmp_client.trans == SNMP_TRANS_UDP ? AF_INET : in open_client_udp()
937 error = getaddrinfo(snmp_client.chost, snmp_client.cport, &hints, &res0); in open_client_udp()
939 seterr(&snmp_client, "%s: %s", snmp_client.chost, in open_client_udp()
945 if ((snmp_client.fd = socket(res->ai_family, res->ai_socktype, in open_client_udp()
948 seterr(&snmp_client, "%s", strerror(errno)); in open_client_udp()
952 } else if (connect(snmp_client.fd, res->ai_addr, in open_client_udp()
955 seterr(&snmp_client, "%s", strerror(errno)); in open_client_udp()
957 (void)close(snmp_client.fd); in open_client_udp()
958 snmp_client.fd = -1; in open_client_udp()
971 (void)remove(snmp_client.local_path); in remove_local()
987 if (snmp_client.chost == NULL && path == NULL) in open_client_local()
991 seterr(&snmp_client, "%s", strerror(errno)); in open_client_local()
994 free(snmp_client.chost); in open_client_local()
995 snmp_client.chost = ptr; in open_client_local()
996 strcpy(snmp_client.chost, path); in open_client_local()
999 if (snmp_client.trans == SNMP_TRANS_LOC_DGRAM) in open_client_local()
1004 if ((snmp_client.fd = socket(PF_LOCAL, stype, 0)) == -1) { in open_client_local()
1005 seterr(&snmp_client, "%s", strerror(errno)); in open_client_local()
1015 if (snmp_client.trans == SNMP_TRANS_LOC_DGRAM && in open_client_local()
1016 snmp_client.local_path[0] == '\0') { in open_client_local()
1017 (void)strlcpy(snmp_client.local_path, "/tmp/snmpXXXXXXXXXXXXXX", in open_client_local()
1018 sizeof(snmp_client.local_path)); in open_client_local()
1019 if (mktemp(snmp_client.local_path) == NULL) { in open_client_local()
1020 seterr(&snmp_client, "mktemp(3): %s", strerror(errno)); in open_client_local()
1025 if (snmp_client.local_path[0] != '\0') { in open_client_local()
1026 if (strlcpy(sa.sun_path, snmp_client.local_path, in open_client_local()
1029 seterr(&snmp_client, "%s", in open_client_local()
1033 if (bind(snmp_client.fd, (struct sockaddr *)&sa, sizeof(sa)) == in open_client_local()
1035 seterr(&snmp_client, "%s", strerror(errno)); in open_client_local()
1041 if (strlcpy(sa.sun_path, snmp_client.chost, sizeof(sa.sun_path)) >= in open_client_local()
1043 seterr(&snmp_client, "%s", "Server socket pathname too long"); in open_client_local()
1047 if (connect(snmp_client.fd, (struct sockaddr *)&sa, sa.sun_len) == -1) { in open_client_local()
1048 seterr(&snmp_client, "%s", strerror(errno)); in open_client_local()
1054 (void)close(snmp_client.fd); in open_client_local()
1055 snmp_client.fd = -1; in open_client_local()
1056 if (snmp_client.local_path[0] != '\0') in open_client_local()
1057 (void)remove(snmp_client.local_path); in open_client_local()
1071 if (snmp_client.fd != -1) { in snmp_open()
1073 seterr(&snmp_client, "%s", strerror(errno)); in snmp_open()
1079 strlcpy(snmp_client.read_community, readcomm, in snmp_open()
1080 sizeof(snmp_client.read_community)); in snmp_open()
1082 strlcpy(snmp_client.write_community, writecomm, in snmp_open()
1083 sizeof(snmp_client.write_community)); in snmp_open()
1085 switch (snmp_client.trans) { in snmp_open()
1100 seterr(&snmp_client, "bad transport mapping"); in snmp_open()
1105 if (setsockopt(snmp_client.fd, SOL_SOCKET, SO_SNDTIMEO, in snmp_open()
1107 seterr(&snmp_client, "%s", strerror(errno)); in snmp_open()
1108 (void)close(snmp_client.fd); in snmp_open()
1109 snmp_client.fd = -1; in snmp_open()
1110 if (snmp_client.local_path[0] != '\0') in snmp_open()
1111 (void)remove(snmp_client.local_path); in snmp_open()
1140 if (snmp_client.fd != -1) { in snmp_close()
1141 (void)close(snmp_client.fd); in snmp_close()
1142 snmp_client.fd = -1; in snmp_close()
1143 if (snmp_client.local_path[0] != '\0') in snmp_close()
1144 (void)remove(snmp_client.local_path); in snmp_close()
1149 snmp_client.timeout_stop(p1->timeout_id); in snmp_close()
1153 free(snmp_client.chost); in snmp_close()
1154 free(snmp_client.cport); in snmp_close()
1166 strlcpy(pdu->community, snmp_client.write_community, in snmp_pdu_create()
1169 strlcpy(pdu->community, snmp_client.read_community, in snmp_pdu_create()
1173 pdu->version = snmp_client.version; in snmp_pdu_create()
1178 if (snmp_client.version != SNMP_V3) in snmp_pdu_create()
1181 pdu->identifier = ++snmp_client.identifier; in snmp_pdu_create()
1182 pdu->engine.max_msg_size = snmp_client.engine.max_msg_size; in snmp_pdu_create()
1184 pdu->security_model = snmp_client.security_model; in snmp_pdu_create()
1186 if (snmp_client.security_model == SNMP_SECMODEL_USM) { in snmp_pdu_create()
1187 memcpy(&pdu->engine, &snmp_client.engine, sizeof(pdu->engine)); in snmp_pdu_create()
1188 memcpy(&pdu->user, &snmp_client.user, sizeof(pdu->user)); in snmp_pdu_create()
1191 seterr(&snmp_client, "unknown security model"); in snmp_pdu_create()
1193 if (snmp_client.clen > 0) { in snmp_pdu_create()
1194 memcpy(pdu->context_engine, snmp_client.cengine, in snmp_pdu_create()
1195 snmp_client.clen); in snmp_pdu_create()
1196 pdu->context_engine_len = snmp_client.clen; in snmp_pdu_create()
1198 memcpy(pdu->context_engine, snmp_client.engine.engine_id, in snmp_pdu_create()
1199 snmp_client.engine.engine_len); in snmp_pdu_create()
1200 pdu->context_engine_len = snmp_client.engine.engine_len; in snmp_pdu_create()
1203 strlcpy(pdu->context_name, snmp_client.cname, in snmp_pdu_create()
1235 snmp_next_reqid(struct snmp_client * c) in snmp_next_reqid()
1257 if ((buf = calloc(1, snmp_client.txbuflen)) == NULL) { in snmp_send_packet()
1258 seterr(&snmp_client, "%s", strerror(errno)); in snmp_send_packet()
1262 pdu->request_id = snmp_next_reqid(&snmp_client); in snmp_send_packet()
1265 b.asn_len = snmp_client.txbuflen; in snmp_send_packet()
1267 seterr(&snmp_client, "%s", strerror(errno)); in snmp_send_packet()
1272 if (snmp_client.dump_pdus) in snmp_send_packet()
1275 if ((ret = send(snmp_client.fd, buf, b.asn_ptr - buf, 0)) == -1) { in snmp_send_packet()
1276 seterr(&snmp_client, "%s", strerror(errno)); in snmp_send_packet()
1295 listentry->reqid, listentry->retrycount, snmp_client.retries); in snmp_timeout()
1299 if (listentry->retrycount > snmp_client.retries) { in snmp_timeout()
1309 snmp_client.timeout_start(&snmp_client.timeout, in snmp_timeout()
1321 seterr(&snmp_client, "%s", strerror(errno)); in snmp_pdu_send()
1341 snmp_client.timeout_start(&snmp_client.timeout, snmp_timeout, in snmp_pdu_send()
1378 if ((buf = calloc(1, snmp_client.rxbuflen)) == NULL) { in snmp_receive_packet()
1379 seterr(&snmp_client, "%s", strerror(errno)); in snmp_receive_packet()
1388 if (setsockopt(snmp_client.fd, SOL_SOCKET, SO_RCVTIMEO, in snmp_receive_packet()
1390 seterr(&snmp_client, "setsockopt: %s", in snmp_receive_packet()
1396 if (getsockopt(snmp_client.fd, SOL_SOCKET, SO_RCVTIMEO, in snmp_receive_packet()
1398 seterr(&snmp_client, "getsockopt: %s", in snmp_receive_packet()
1414 if ((flags = fcntl(snmp_client.fd, F_GETFL, 0)) == -1) { in snmp_receive_packet()
1415 seterr(&snmp_client, "fcntl: %s", in snmp_receive_packet()
1423 if (fcntl(snmp_client.fd, F_SETFL, flags) == -1) { in snmp_receive_packet()
1424 seterr(&snmp_client, "fcntl: %s", in snmp_receive_packet()
1432 ret = recv(snmp_client.fd, buf, snmp_client.rxbuflen, 0); in snmp_receive_packet()
1438 (void)fcntl(snmp_client.fd, F_SETFL, flags); in snmp_receive_packet()
1443 (void)setsockopt(snmp_client.fd, SOL_SOCKET, SO_RCVTIMEO, in snmp_receive_packet()
1451 seterr(&snmp_client, "recv: %s", strerror(saved_errno)); in snmp_receive_packet()
1458 seterr(&snmp_client, "recv: socket closed by peer"); in snmp_receive_packet()
1467 if (snmp_client.security_model == SNMP_SECMODEL_USM) { in snmp_receive_packet()
1468 memcpy(&pdu->engine, &snmp_client.engine, sizeof(pdu->engine)); in snmp_receive_packet()
1469 memcpy(&pdu->user, &snmp_client.user, sizeof(pdu->user)); in snmp_receive_packet()
1474 seterr(&snmp_client, "snmp_decode_pdu: failed %d", ret); in snmp_receive_packet()
1480 if (snmp_client.dump_pdus) in snmp_receive_packet()
1483 snmp_client.engine.engine_time = pdu->engine.engine_time; in snmp_receive_packet()
1484 snmp_client.engine.engine_boots = pdu->engine.engine_boots; in snmp_receive_packet()
1508 snmp_client.timeout_stop(listentry->timeout_id); in snmp_deliver_packet()
1526 seterr(&snmp_client, "no memory for returning PDU"); in snmp_receive()
1623 if (snmp_client.version != SNMP_V1 && in ok_get()
1707 struct timeval tv = snmp_client.timeout; in snmp_dialog()
1725 for (i = 0; i <= snmp_client.retries; i++) { in snmp_dialog()
1727 timeradd(&end, &snmp_client.timeout, &end); in snmp_dialog()
1751 seterr(&snmp_client, "retry count exceeded"); in snmp_dialog()
1763 if (snmp_client.version != SNMP_V3) in snmp_discover_engine()
1764 seterr(&snmp_client, "wrong version"); in snmp_discover_engine()
1766 strlcpy(cname, snmp_client.user.sec_name, sizeof(cname)); in snmp_discover_engine()
1767 cap = snmp_client.user.auth_proto; in snmp_discover_engine()
1768 cpp = snmp_client.user.priv_proto; in snmp_discover_engine()
1770 snmp_client.engine.engine_len = 0; in snmp_discover_engine()
1771 snmp_client.engine.engine_boots = 0; in snmp_discover_engine()
1772 snmp_client.engine.engine_time = 0; in snmp_discover_engine()
1773 snmp_client.user.auth_proto = SNMP_AUTH_NOAUTH; in snmp_discover_engine()
1774 snmp_client.user.priv_proto = SNMP_PRIV_NOPRIV; in snmp_discover_engine()
1775 memset(snmp_client.user.sec_name, 0, sizeof(snmp_client.user.sec_name)); in snmp_discover_engine()
1783 seterr(&snmp_client, "wrong version"); in snmp_discover_engine()
1788 seterr(&snmp_client, "Error %d in response", resp.error_status); in snmp_discover_engine()
1792 snmp_client.engine.engine_len = resp.engine.engine_len; in snmp_discover_engine()
1793 snmp_client.engine.max_msg_size = resp.engine.max_msg_size; in snmp_discover_engine()
1794 memcpy(snmp_client.engine.engine_id, resp.engine.engine_id, in snmp_discover_engine()
1797 strlcpy(snmp_client.user.sec_name, cname, in snmp_discover_engine()
1798 sizeof(snmp_client.user.sec_name)); in snmp_discover_engine()
1799 snmp_client.user.auth_proto = cap; in snmp_discover_engine()
1800 snmp_client.user.priv_proto = cpp; in snmp_discover_engine()
1802 if (snmp_client.user.auth_proto == SNMP_AUTH_NOAUTH) in snmp_discover_engine()
1806 snmp_passwd_to_keys(&snmp_client.user, passwd) != SNMP_CODE_OK || in snmp_discover_engine()
1807 snmp_get_local_keys(&snmp_client.user, snmp_client.engine.engine_id, in snmp_discover_engine()
1808 snmp_client.engine.engine_len) != SNMP_CODE_OK) in snmp_discover_engine()
1812 snmp_client.engine.engine_boots = resp.engine.engine_boots; in snmp_discover_engine()
1815 snmp_client.engine.engine_time = resp.engine.engine_time; in snmp_discover_engine()
1829 seterr(&snmp_client, "wrong version"); in snmp_discover_engine()
1834 seterr(&snmp_client, "Error %d in response", resp.error_status); in snmp_discover_engine()
1838 snmp_client.engine.engine_boots = resp.engine.engine_boots; in snmp_discover_engine()
1839 snmp_client.engine.engine_time = resp.engine.engine_time; in snmp_discover_engine()
1848 snmp_client_set_host(struct snmp_client *cl, const char *h) in snmp_client_set_host()
1868 snmp_client_set_port(struct snmp_client *cl, const char *p) in snmp_client_set_port()
1907 get_transp(struct snmp_client *sc, const char **strp) in get_transp()
1950 get_comm(struct snmp_client *sc, const char *comm[2]) in get_comm()
1980 get_ipv6(struct snmp_client *sc, const char *ipv6[2]) in get_ipv6()
2029 get_ipv4(struct snmp_client *sc, const char *ipv4[2]) in get_ipv4()
2067 get_host(struct snmp_client *sc __unused, const char *host[2]) in get_host()
2089 get_port(struct snmp_client *sc, const char *port[2]) in get_port()
2111 save_str(struct snmp_client *sc, const char *const s[2]) in save_str()
2157 snmp_parse_server(struct snmp_client *sc, const char *str) in snmp_parse_server()