Lines Matching refs:agent
87 struct snmp_agent *agent; in snmp_connect_v12() local
93 if ((agent = malloc(sizeof(*agent))) == NULL) in snmp_connect_v12()
95 agent->fd = fd; in snmp_connect_v12()
96 agent->version = version; in snmp_connect_v12()
97 if ((agent->community = strdup(community)) == NULL) in snmp_connect_v12()
99 agent->timeout = 1; in snmp_connect_v12()
100 agent->retries = 5; in snmp_connect_v12()
101 agent->v3 = NULL; in snmp_connect_v12()
102 return agent; in snmp_connect_v12()
105 free(agent); in snmp_connect_v12()
112 struct snmp_agent *agent; in snmp_connect_v3() local
114 if ((agent = malloc(sizeof(*agent))) == NULL) in snmp_connect_v3()
116 agent->fd = fd; in snmp_connect_v3()
117 agent->version = SNMP_V3; in snmp_connect_v3()
118 agent->v3 = v3; in snmp_connect_v3()
119 agent->timeout = 1; in snmp_connect_v3()
120 agent->retries = 5; in snmp_connect_v3()
121 agent->community = NULL; in snmp_connect_v3()
123 if (v3->sec->init(agent) == -1) { in snmp_connect_v3()
124 snmp_free_agent(agent); in snmp_connect_v3()
127 return agent; in snmp_connect_v3()
131 snmp_free_agent(struct snmp_agent *agent) in snmp_free_agent() argument
133 free(agent->community); in snmp_free_agent()
134 if (agent->v3 != NULL) in snmp_free_agent()
135 snmp_v3_free(agent->v3); in snmp_free_agent()
136 free(agent); in snmp_free_agent()
150 snmp_get(struct snmp_agent *agent, struct ber_oid *oid, size_t len) in snmp_get() argument
166 return snmp_resolve(agent, pdu, 1); in snmp_get()
173 snmp_getnext(struct snmp_agent *agent, struct ber_oid *oid, size_t len) in snmp_getnext() argument
189 return snmp_resolve(agent, pdu, 1); in snmp_getnext()
196 snmp_trap(struct snmp_agent *agent, struct timespec *uptime, in snmp_trap() argument
223 snmp_resolve(agent, pdu, 0); in snmp_trap()
231 snmp_getbulk(struct snmp_agent *agent, struct ber_oid *oid, size_t len, in snmp_getbulk() argument
249 return snmp_resolve(agent, pdu, 1); in snmp_getbulk()
256 snmp_set(struct snmp_agent *agent, struct ber_element *vblist) in snmp_set() argument
269 return snmp_resolve(agent, pdu, 1); in snmp_set()
273 snmp_resolve(struct snmp_agent *agent, struct ber_element *pdu, int reply) in snmp_resolve() argument
293 if ((message = snmp_package(agent, pdu, &len)) == NULL) in snmp_resolve()
299 tries = agent->retries + 1; in snmp_resolve()
301 pfd.fd = agent->fd; in snmp_resolve()
303 if (agent->timeout > 0) { in snmp_resolve()
304 to = (agent->timeout - (now.tv_sec - start.tv_sec)) * 1000; in snmp_resolve()
322 ret = send(agent->fd, message, len, MSG_DONTWAIT); in snmp_resolve()
334 ret = recv(agent->fd, buf, sizeof(buf), MSG_DONTWAIT); in snmp_resolve()
339 if ((pdu = snmp_unpackage(agent, buf, ret)) == NULL) { in snmp_resolve()
381 snmp_package(struct snmp_agent *agent, struct ber_element *pdu, size_t *len) in snmp_package() argument
399 switch (agent->version) { in snmp_package()
402 if (ober_printf_elements(message, "dse", agent->version, in snmp_package()
403 agent->community, pdu) == NULL) { in snmp_package()
415 agent->v3->engineid, agent->v3->engineidlen, in snmp_package()
416 agent->v3->ctxname, agent->v3->ctxnamelen, pdu) == NULL) { in snmp_package()
422 if ((securityparams = agent->v3->sec->genparams(agent, in snmp_package()
427 if (agent->v3->level & SNMP_MSGFLAG_PRIV) { in snmp_package()
428 if ((encpdu = agent->v3->sec->encpdu(agent, scopedpdu, in snmp_package()
435 agent->version, msgid, UDP_MAXPACKET, &(agent->v3->level), in snmp_package()
436 (size_t) 1, agent->v3->sec->model, securityparams, in snmp_package()
455 if (agent->version == SNMP_V3 && packet != NULL) { in snmp_package()
456 if (agent->v3->sec->finalparams(agent, packet, in snmp_package()
464 if (agent->version == SNMP_V3) in snmp_package()
465 agent->v3->sec->freecookie(cookie); in snmp_package()
472 snmp_unpackage(struct snmp_agent *agent, char *buf, size_t buflen) in snmp_unpackage() argument
499 if (version != agent->version) in snmp_unpackage()
507 if (strcmp(community, agent->community) != 0) in snmp_unpackage()
519 if (agent->v3->sec->parseparams(agent, buf, buflen, in snmp_unpackage()
529 if ((scopedpdu = agent->v3->sec->decpdu(agent, encpdu, in snmp_unpackage()
536 if (!agent->v3->engineidset) { in snmp_unpackage()
537 if (snmp_v3_setengineid(agent->v3, engineid, in snmp_unpackage()
545 (agent->v3->level & SNMP_MSGFLAG_SECMASK)) in snmp_unpackage()
550 agent->v3->sec->freecookie(cookie); in snmp_unpackage()
557 agent->v3->sec->freecookie(cookie); in snmp_unpackage()