int
set_removeContext(netsnmp_mib_handler *handler,
	netsnmp_handler_registration *reginfo,
	netsnmp_agent_request_info *reqinfo,
	netsnmp_request_info *requests)
{
	DEBUGMSGTL(("demo_module_7", "remove_filesize CALLED\n"));
	switch (reqinfo->mode) {
		case MODE_SET_RESERVE1:
			break;
		case MODE_SET_RESERVE2:
			break;
		case MODE_SET_ACTION:
			DEBUGMSGTL(("demo_module_7",
				"remove_filesize MODE_SET_ACTION CALLED\n"));
			DEBUGMSGTL(("demo_module_7",
			    "remove_filesize MODE_SET_ACTION CALLED\n"));
			snprintf(filename, requests->requestvb->val_len + 1,
			    "%s",  (u_char *) requests->requestvb->val.string);
			filename[requests->requestvb->val_len + 1] = '\0';
			DEBUGMSGTL(("demo_module_7",
				"filename after snmpset = %s:\n",
				filename));
			unregister_mib_context(me1filesize_oid,
				OID_LENGTH(me1filesize_oid),
				PRIORITY, SUB_ID, RANGE_UBOUND,
				filename);
			break;

		case MODE_SET_COMMIT:
			break;

		case MODE_SET_FREE:
			break;

		case MODE_SET_UNDO:
			/*
			Not handling the undo case because we don't care about
			multi-phase sets for this example. */
			break;

		default:
			/*
			we should never get here, so this
			is a really bad error */
			DEBUGMSGTL(("demo_module_7", "set_removeContext CALLED\n"));
	}
	return (SNMP_ERR_NOERROR);
}
Beispiel #2
0
void
proxy_free_config(void)
{
    struct simple_proxy *rm;

    DEBUGMSGTL(("proxy_free_config", "Free config\n"));
    while (proxies) {
        rm = proxies;
        proxies = rm->next;

        DEBUGMSGTL(( "proxy_free_config", "freeing "));
        DEBUGMSGOID(("proxy_free_config", rm->name, rm->name_len));
        DEBUGMSG((   "proxy_free_config", " (%s)\n", rm->context));
        unregister_mib_context(rm->name, rm->name_len,
                               DEFAULT_MIB_PRIORITY, 0, 0,
                               rm->context);
        SNMP_FREE(rm->variables);
        SNMP_FREE(rm->context);
        snmp_close(rm->sess);
        SNMP_FREE(rm);
    }
}
Beispiel #3
0
int
unregister_agentx_list(netsnmp_session * session, netsnmp_pdu *pdu)
{
    netsnmp_session *sp;
    int             rc = 0;

    sp = find_agentx_session(session, pdu->sessid);
    if (sp == NULL) {
        return AGENTX_ERR_NOT_OPEN;
    }

    if (pdu->range_subid != 0) {
        oid             ubound =
            pdu->variables->val.objid[pdu->range_subid - 1];
        rc = netsnmp_unregister_mib_table_row(pdu->variables->name,
                                              pdu->variables->name_length,
                                              pdu->priority,
                                              pdu->range_subid, ubound,
                                              (char *) pdu->community);
    } else {
        rc = unregister_mib_context(pdu->variables->name,
                                    pdu->variables->name_length,
                                    pdu->priority, 0, 0,
                                    (char *) pdu->community);
    }

    switch (rc) {
    case MIB_UNREGISTERED_OK:
        return AGENTX_ERR_NOERROR;
    case MIB_NO_SUCH_REGISTRATION:
        return AGENTX_ERR_UNKNOWN_REGISTRATION;
    case MIB_UNREGISTRATION_FAILED:
    default:
        return AGENTX_ERR_REQUEST_DENIED;
    }
}