Ejemplo n.º 1
0
/** Initializes the mteEvent module */
void init_mteEvent (void)
{
    static int _defaults_init = 0;

    init_event_table_data ();

    /*
     * Insert fixed events for the default trigger notifications
     * 
     * NB: internal events (with an owner of "_snmpd") will not in
     * fact refer to the mteObjectsTable for the payload varbinds.
     * The routine mteObjects_internal_vblist() hardcodes the 
     * appropriate varbinds for these internal events.
     *   This routine will need to be updated whenever a new 
     * internal event is added.
     */
    if (_defaults_init)
        return;

    _init_default_mteEvent ("mteTriggerFired", "_triggerFire", 1);
    _init_default_mteEvent ("mteTriggerRising", "_triggerFire", 2);
    _init_default_mteEvent ("mteTriggerFalling", "_triggerFire", 3);
    _init_default_mteEvent ("mteTriggerFailure", "_triggerFail", 4);

    _init_link_mteEvent ("linkDown", "_linkUpDown", 3);
    _init_link_mteEvent ("linkUp", "_linkUpDown", 4);
    _defaults_init = 1;
}
Ejemplo n.º 2
0
/* Initializes the mteEventTable module */
void
init_mteEventTable(void)
{
    static oid  mteEventTable_oid[]   = { 1, 3, 6, 1, 2, 1, 88, 1, 4, 2 };
    size_t      mteEventTable_oid_len = OID_LENGTH(mteEventTable_oid);
    netsnmp_handler_registration    *reg;

    /*
     * Ensure the (combined) table container is available...
     */
    init_event_table_data();

    /*
     * ... then set up the MIB interface to the mteEventTable slice
     */
#ifndef NETSNMP_NO_WRITE_SUPPORT
    reg = netsnmp_create_handler_registration("mteEventTable",
                                            mteEventTable_handler,
                                            mteEventTable_oid,
                                            mteEventTable_oid_len,
                                            HANDLER_CAN_RWRITE);
#else /* !NETSNMP_NO_WRITE_SUPPORT */
    reg = netsnmp_create_handler_registration("mteEventTable",
                                            mteEventTable_handler,
                                            mteEventTable_oid,
                                            mteEventTable_oid_len,
                                            HANDLER_CAN_RONLY);
#endif /* !NETSNMP_NO_WRITE_SUPPORT */

    table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
    netsnmp_table_helper_add_indexes(table_info,
                                     ASN_OCTET_STR,   /* index: mteOwner */
                                                      /* index: mteEventName */
                                     ASN_PRIV_IMPLIED_OCTET_STR,
                                     0);

    table_info->min_column = COLUMN_MTEEVENTCOMMENT;
    table_info->max_column = COLUMN_MTEEVENTENTRYSTATUS;

    /* Register this using the (common) event_table_data container */
    netsnmp_tdata_register(reg, event_table_data, table_info);
    DEBUGMSGTL(("disman:event:init", "Event Table container (%p)\n",
                                      event_table_data));
}
Ejemplo n.º 3
0
/** Initializes the mteEventsConf module */
void
init_mteEventConf(void)
{
    init_event_table_data();

    /*
     * Register config handlers for user-level (fixed) events....
     */
    snmpd_register_config_handler("notificationEvent",
                                   parse_notificationEvent, NULL,
                                   "eventname notifyOID [-m] [-i OID|-o OID]*");
    snmpd_register_config_handler("setEvent",
                                   parse_setEvent,          NULL,
                                   "eventname [-I] OID = value");

    netsnmp_ds_register_config(ASN_BOOLEAN,
                   netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
                                         NETSNMP_DS_LIB_APPTYPE),
                   "strictDisman", NETSNMP_DS_APPLICATION_ID,
                                   NETSNMP_DS_AGENT_STRICT_DISMAN);

    /*
     * ... and for persistent storage of dynamic event table entries.
     *
     * (The previous implementation didn't store these entries,
     *  so we don't need to worry about backwards compatability)
     */
    snmpd_register_config_handler("_mteETable",
                                   parse_mteETable, NULL, NULL);
    snmpd_register_config_handler("_mteENotTable",
                                   parse_mteENotTable, NULL, NULL);
    snmpd_register_config_handler("_mteESetTable",
                                   parse_mteESetTable, NULL, NULL);

    /*
     * Register to save (non-fixed) entries when the agent shuts down
     */
    snmp_register_callback(SNMP_CALLBACK_LIBRARY, SNMP_CALLBACK_STORE_DATA,
                           store_mteETable, NULL);
    snmp_register_callback(SNMP_CALLBACK_APPLICATION,
                           SNMPD_CALLBACK_PRE_UPDATE_CONFIG,
                           clear_mteETable, NULL);
}
/* Initializes the mteEventNotificationTable module */
void
init_mteEventNotificationTable(void)
{
    static oid  mteEventNotificationTable_oid[]   = { 1, 3, 6, 1, 2, 1, 88, 1, 4, 3 };
    size_t      mteEventNotificationTable_oid_len = OID_LENGTH(mteEventNotificationTable_oid);
    netsnmp_handler_registration    *reg;
    netsnmp_table_registration_info *table_info;

    /*
     * Ensure the (combined) table container is available...
     */
    init_event_table_data();

    /*
     * ... then set up the MIB interface to the mteEventNotificationTable slice
     */
    reg = netsnmp_create_handler_registration("mteEventNotificationTable",
                                            mteEventNotificationTable_handler,
                                            mteEventNotificationTable_oid,
                                            mteEventNotificationTable_oid_len,
                                            HANDLER_CAN_RWRITE);

    table_info = SNMP_MALLOC_TYPEDEF(netsnmp_table_registration_info);
    netsnmp_table_helper_add_indexes(table_info,
                                     ASN_OCTET_STR,   /* index: mteOwner */
                                                      /* index: mteEventName */
                                     ASN_PRIV_IMPLIED_OCTET_STR,
                                     0);

    table_info->min_column = COLUMN_MTEEVENTNOTIFICATION;
    table_info->max_column = COLUMN_MTEEVENTNOTIFICATIONOBJECTS;

    /* Register this using the (common) event_table_data container */
    netsnmp_tdata_register(reg, event_table_data, table_info);
    DEBUGMSGTL(("disman:event:init", "Event Notify Table container (%x)\n",
                                      event_table_data));
}