⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 watched.c

📁 开发snmp的开发包有两个开放的SNMP开发库
💻 C
字号:
/* * watched.c * $Id: watched.c 12097 2005-04-20 18:03:47Z rstory $ * *//**  @example watched.c *  These examples creates some scalar registrations that allows *  some simple variables to be accessed via SNMP.  In a more *  realistic example, it is likely that these variables would also be *  manipulated in other ways outside of SNMP gets/sets. *//* * start by including the appropriate header files  */#include <net-snmp/net-snmp-config.h>#include <net-snmp/net-snmp-includes.h>#include <net-snmp/agent/net-snmp-agent-includes.h>void init_watched_string(void);void init_watched(void){    init_watched_string();}void init_watched_string(void){    /*     * the storage for our string. It must be static or allocated.     * we use static here for simplicity.     */    static char my_string[256] = "So long, and thanks for all the fish!";    /*     * the OID we want to register our string at.  This should be a     * fully qualified instance.  In our case, it's a scalar at:     * NET-SNMP-EXAMPLES-MIB::netSnmpExampleString.0  (note the trailing     *  0 which is required for any instantiation of any scalar object)      */    oid             my_registration_oid[] =        { 1, 3, 6, 1, 4, 1, 8072, 2, 1, 3, 0 };    /*     * variables needed for registration     */    netsnmp_handler_registration *reginfo;    netsnmp_watcher_info *watcher_info;    int watcher_flags;    /*     * a debugging statement.  Run the agent with -Dexample_string_instance     * to see the output of this debugging statement.      */    DEBUGMSGTL(("example_string_instance",                "Initalizing example string instance.  Default value = %s\n",                my_string));    /*     * create the registration info for our string. If you want to     *     * If we wanted a callback when the value was retrieved or set     * (even though the details of doing this are handled for you),     * you could change the NULL pointer below to a valid handler     * function.     *     * Change RWRITE to RONLY for a read-only string.     */    reginfo = netsnmp_create_handler_registration("my example string", NULL,                                                  my_registration_oid,                                                  OID_LENGTH(my_registration_oid),                                                  HANDLER_CAN_RWRITE);                                                      /*     * the two options for a string watcher are:     *   fixed size string (length never changes)     *   variable size (length can be 0 - MAX, for some MAX)     *     * we'll use a variable length string.     */    watcher_flags = WATCHER_MAX_SIZE;    /*     * create the watcher info for our string, and set the max size.     */    watcher_info =        netsnmp_create_watcher_info(my_string, strlen(my_string),                                    ASN_OCTET_STR, watcher_flags);    watcher_info->max_size = sizeof(my_string);    /*     * the line below registers our "my_string" variable above as     * accessible and makes it writable.      *      * If we wanted a callback when the value was retrieved or set     * (even though the details of doing this are handled for you),     * you could change the NULL pointer below to a valid handler     * function.      */    netsnmp_register_watched_instance(reginfo, watcher_info);    DEBUGMSGTL(("example_string_instance",                "Done initalizing example string instance\n"));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -