#include "asterisk.h"
#include "asterisk/channel.h"
#include "asterisk/module.h"
#include "snmp/agent.h"
Go to the source code of this file.
Defines | |
#define | MODULE_DESCRIPTION "SNMP [Sub]Agent for Asterisk" |
Functions | |
static void | __reg_module (void) |
static void | __unreg_module (void) |
static int | load_config (void) |
Load res_snmp.conf config file. | |
static int | load_module (void) |
static int | unload_module (void) |
Variables | |
static struct ast_module_info | __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "SNMP [Sub]Agent for Asterisk" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = "ac1f6a56484a8820659555499174e588" , .load = load_module, .unload = unload_module, } |
static struct ast_module_info * | ast_module_info = &__mod_info |
int | res_snmp_agentx_subagent |
int | res_snmp_dont_stop |
static int | res_snmp_enabled |
static pthread_t | thread = AST_PTHREADT_NULL |
Definition in file res_snmp.c.
#define MODULE_DESCRIPTION "SNMP [Sub]Agent for Asterisk" |
Definition at line 34 of file res_snmp.c.
static void __reg_module | ( | void | ) | [static] |
Definition at line 122 of file res_snmp.c.
static void __unreg_module | ( | void | ) | [static] |
Definition at line 122 of file res_snmp.c.
static int load_config | ( | void | ) | [static] |
Load res_snmp.conf config file.
Definition at line 46 of file res_snmp.c.
References ast_category_browse(), ast_config_destroy(), ast_config_load, ast_false(), ast_log(), ast_true(), ast_variable_browse(), CONFIG_STATUS_FILEINVALID, CONFIG_STATUS_FILEMISSING, LOG_ERROR, LOG_WARNING, and var.
00047 { 00048 struct ast_variable *var; 00049 struct ast_config *cfg; 00050 struct ast_flags config_flags = { 0 }; 00051 char *cat; 00052 00053 res_snmp_enabled = 0; 00054 res_snmp_agentx_subagent = 1; 00055 cfg = ast_config_load("res_snmp.conf", config_flags); 00056 if (cfg == CONFIG_STATUS_FILEMISSING || cfg == CONFIG_STATUS_FILEINVALID) { 00057 ast_log(LOG_WARNING, "Could not load res_snmp.conf\n"); 00058 return 0; 00059 } 00060 cat = ast_category_browse(cfg, NULL); 00061 while (cat) { 00062 var = ast_variable_browse(cfg, cat); 00063 00064 if (strcasecmp(cat, "general") == 0) { 00065 while (var) { 00066 if (strcasecmp(var->name, "subagent") == 0) { 00067 if (ast_true(var->value)) 00068 res_snmp_agentx_subagent = 1; 00069 else if (ast_false(var->value)) 00070 res_snmp_agentx_subagent = 0; 00071 else { 00072 ast_log(LOG_ERROR, "Value '%s' does not evaluate to true or false.\n", var->value); 00073 ast_config_destroy(cfg); 00074 return 1; 00075 } 00076 } else if (strcasecmp(var->name, "enabled") == 0) { 00077 res_snmp_enabled = ast_true(var->value); 00078 } else { 00079 ast_log(LOG_ERROR, "Unrecognized variable '%s' in category '%s'\n", var->name, cat); 00080 ast_config_destroy(cfg); 00081 return 1; 00082 } 00083 var = var->next; 00084 } 00085 } else { 00086 ast_log(LOG_ERROR, "Unrecognized category '%s'\n", cat); 00087 ast_config_destroy(cfg); 00088 return 1; 00089 } 00090 00091 cat = ast_category_browse(cfg, cat); 00092 } 00093 ast_config_destroy(cfg); 00094 return 1; 00095 }
static int load_module | ( | void | ) | [static] |
Definition at line 97 of file res_snmp.c.
References agent_thread(), AST_MODULE_LOAD_DECLINE, ast_pthread_create_background, ast_verb, and load_config().
00098 { 00099 if(!load_config()) 00100 return AST_MODULE_LOAD_DECLINE; 00101 00102 ast_verb(1, "Loading [Sub]Agent Module\n"); 00103 00104 res_snmp_dont_stop = 1; 00105 if (res_snmp_enabled) 00106 return ast_pthread_create_background(&thread, NULL, agent_thread, NULL); 00107 else 00108 return 0; 00109 }
static int unload_module | ( | void | ) | [static] |
Definition at line 111 of file res_snmp.c.
References AST_PTHREADT_NULL, and ast_verb.
00112 { 00113 ast_verb(1, "Unloading [Sub]Agent Module\n"); 00114 00115 res_snmp_dont_stop = 0; 00116 return ((thread != AST_PTHREADT_NULL) ? pthread_join(thread, NULL) : 0); 00117 }
struct ast_module_info __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_DEFAULT , .description = "SNMP [Sub]Agent for Asterisk" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = "ac1f6a56484a8820659555499174e588" , .load = load_module, .unload = unload_module, } [static] |
Definition at line 122 of file res_snmp.c.
struct ast_module_info* ast_module_info = &__mod_info [static] |
Definition at line 122 of file res_snmp.c.
int res_snmp_enabled [static] |
Definition at line 38 of file res_snmp.c.
pthread_t thread = AST_PTHREADT_NULL [static] |
Definition at line 40 of file res_snmp.c.