I develop a new MIB module for specific equipment.

I begin to develop it in MS-Visual C++ and it runs perfectly.


So I want to modify it to a new dlmod module, easier to deploy to Linux with ARM processor.

And I have two problems to finalize it:


  1. snmp_alarm_register

I use this function to subscribe to an automatic refresh.


    if (snmp_alarm_register(

            2,                      /* seconds */

            SA_REPEAT,              /* repeat */

            callback_UpdateData,    /* our callback */

            NULL                    /* no callback data needed */

        ) == 0) {

        printf("snmp_alarm_register failed\n");


But my callback is never call by agent.

Does this function run in a dlmod extension?

Should I implement an automatic data refresh with other method?


  1. netsnmp_request_set_error

I implement a set procedure for a MID table.

        switch (reqinfo->mode) {


                  case MODE_SET_ACTION:


                        if (ret!=SNMP_ERR_NOERROR) {

                             netsnmp_request_set_error(request, ret);





In this using, the netsnmp_request_set_error function has no effect.

So if my checkError method return an error, this code is not returned to the snmp client.

Does this function run in a dlmod extension?

Should I modify my configuration to activate this feature?


Thank you for your answers.