📄 sipproxy.c
字号:
/* This file was generated by mib2c and is intended for use as a mib module for the ucd-snmp snmpd agent. *//* This should always be included first before anything else */#include <config.h>/* minimal include directives */#include "mibincl.h"#include "util_funcs.h"#include "sipProxy.h"/* * sipProxy_variables_oid: * this is the top level oid that we want to register under. This * is essentially a prefix, with the suffix appearing in the * variable below. */oid sipProxy_variables_oid[] = { 1,3,6,1,4,1,5738,3,42,1,4 };/* * variable4 sipProxy_variables: * this variable defines function callbacks and type return information * for the sipProxy mib section */struct variable4 sipProxy_variables[] = {/* magic number , variable type , ro/rw , callback fn , L, oidsuffix */#define SIPREQUESTMAXEXPIRES 1 { SIPREQUESTMAXEXPIRES, ASN_GAUGE , RWRITE, var_sipProxy, 2, { 1,1 } },#define SIPPROXYSTATEFUL 2 { SIPPROXYSTATEFUL , ASN_INTEGER , RWRITE, var_sipProxy, 2, { 1,2 } },#define SIPPROXYSENDSCANCEL 3 { SIPPROXYSENDSCANCEL , ASN_INTEGER , RWRITE, var_sipProxy, 2, { 1,3 } },#define SIPPROXYFORWARDALL1XX 4 { SIPPROXYFORWARDALL1XX, ASN_INTEGER , RWRITE, var_sipProxy, 2, { 1,4 } },#define SIPPROXYRECURSION 5 { SIPPROXYRECURSION , ASN_INTEGER , RWRITE, var_sipProxy, 2, { 1,5 } },#define SIPPROXYPROVIDEALTERNATIVES 6 { SIPPROXYPROVIDEALTERNATIVES, ASN_INTEGER , RWRITE, var_sipProxy, 2, { 1,6 } },#define SIPPROXYRECORDROUTE 7 { SIPPROXYRECORDROUTE , ASN_INTEGER , RWRITE, var_sipProxy, 2, { 1,7 } },#define SIPPROXYUSECOMPACT 8 { SIPPROXYUSECOMPACT , ASN_INTEGER , RWRITE, var_sipProxy, 2, { 1,8 } },#define SIPPROXYRETRANSMISSIONBUFFER 9 { SIPPROXYRETRANSMISSIONBUFFER, ASN_INTEGER , RWRITE, var_sipProxy, 2, { 1,9 } },#define SIPPROXYAUTHMETHOD 10 { SIPPROXYAUTHMETHOD , ASN_INTEGER , RWRITE, var_sipProxy, 2, { 1,10 } },#define SIPPROXYAUTHPGPALGORITHM 11 { SIPPROXYAUTHPGPALGORITHM, ASN_INTEGER , RWRITE, var_sipProxy, 2, { 1,11 } },#define SIPPROXYAUTHREALM 12 { SIPPROXYAUTHREALM , ASN_OCTET_STR , RWRITE, var_sipProxy, 2, { 1,12 } },#define SIPPROXYNONCELIFETIME 13 { SIPPROXYNONCELIFETIME, ASN_INTEGER , RWRITE, var_sipProxy, 2, { 1,13 } },#define SIPPGPPRIVATEKEY 14 { SIPPGPPRIVATEKEY , ASN_OCTET_STR , RWRITE, var_sipProxy, 2, { 1,14 } },#define SIPRXPROXYAUTHREALM 18 { SIPRXPROXYAUTHREALM , ASN_OCTET_STR , RWRITE, var_sipRxProxyAuthTable, 4, { 1,15,1,2 } },#define SIPRXPROXYAUTHPASSWORD 19 { SIPRXPROXYAUTHPASSWORD, ASN_OCTET_STR , RWRITE, var_sipRxProxyAuthTable, 4, { 1,15,1,3 } },#define SIPRXPROXYAUTHSTATUS 20 { SIPRXPROXYAUTHSTATUS, ASN_INTEGER , RWRITE, var_sipRxProxyAuthTable, 4, { 1,15,1,4 } },#define SIPHIDERESPECT 21 { SIPHIDERESPECT , ASN_INTEGER , RWRITE, var_sipProxy, 2, { 1,16 } },#define SIPNUMPROXYREQUIREFAILURES 22 { SIPNUMPROXYREQUIREFAILURES, ASN_COUNTER , RONLY , var_sipProxy, 2, { 2,1 } },};/* (L = length of the oidsuffix) *//* * init_sipProxy(): * Initialization routine. This is called when the agent starts up. * At a minimum, registration of your variables should take place here. */void init_sipProxy(void) { /* register ourselves with the agent to handle our mib tree */ REGISTER_MIB("sipProxy", sipProxy_variables, variable4, sipProxy_variables_oid); /* place any other initialization junk you need here */}/* * var_sipProxy(): * This function is called every time the agent gets a request for * a scalar variable that might be found within your mib section * registered above. It is up to you to do the right thing and * return the correct value. * You should also correct the value of "var_len" if necessary. * * Please see the documentation for more information about writing * module extensions, and check out the examples in the examples * and mibII directories. */unsigned char *var_sipProxy(struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method){ /* variables we may use later */ static long long_ret; static unsigned char string[SPRINT_MAX_LEN]; static oid objid[MAX_OID_LEN]; static struct counter64 c64; if (header_generic(vp,name,length,exact,var_len,write_method) == MATCH_FAILED ) return NULL; /* * this is where we do the value assignments for the mib results. */ switch(vp->magic) { case SIPREQUESTMAXEXPIRES: *write_method = write_sipRequestMaxExpires; long_ret = 0; return (unsigned char *) &long_ret; case SIPPROXYSTATEFUL: *write_method = write_sipProxyStateful; long_ret = 0; return (unsigned char *) &long_ret; case SIPPROXYSENDSCANCEL: *write_method = write_sipProxySendsCancel; long_ret = 0; return (unsigned char *) &long_ret; case SIPPROXYFORWARDALL1XX: *write_method = write_sipProxyForwardAll1xx; long_ret = 0; return (unsigned char *) &long_ret; case SIPPROXYRECURSION: *write_method = write_sipProxyRecursion; long_ret = 0; return (unsigned char *) &long_ret; case SIPPROXYPROVIDEALTERNATIVES: *write_method = write_sipProxyProvideAlternatives; long_ret = 0; return (unsigned char *) &long_ret; case SIPPROXYRECORDROUTE: *write_method = write_sipProxyRecordRoute; long_ret = 0; return (unsigned char *) &long_ret; case SIPPROXYUSECOMPACT: *write_method = write_sipProxyUseCompact; long_ret = 0; return (unsigned char *) &long_ret; case SIPPROXYRETRANSMISSIONBUFFER: *write_method = write_sipProxyRetransmissionBuffer; long_ret = 0; return (unsigned char *) &long_ret; case SIPPROXYAUTHMETHOD: *write_method = write_sipProxyAuthMethod; long_ret = 0; return (unsigned char *) &long_ret; case SIPPROXYAUTHPGPALGORITHM: *write_method = write_sipProxyAuthPgpAlgorithm; long_ret = 0; return (unsigned char *) &long_ret; case SIPPROXYAUTHREALM: *write_method = write_sipProxyAuthRealm; *string = 0; *var_len = strlen(string); return (unsigned char *) string; case SIPPROXYNONCELIFETIME: *write_method = write_sipProxyNonceLifeTime; long_ret = 0; return (unsigned char *) &long_ret; case SIPPGPPRIVATEKEY: *write_method = write_sipPgpPrivateKey; *string = 0; *var_len = strlen(string); return (unsigned char *) string; case SIPHIDERESPECT: *write_method = write_sipHideRespect; long_ret = 0; return (unsigned char *) &long_ret; case SIPNUMPROXYREQUIREFAILURES: long_ret = 0; return (unsigned char *) &long_ret; default: ERROR_MSG(""); } return NULL;}/* * var_sipRxProxyAuthTable(): * Handle this table separately from the scalar value case. * The workings of this are basically the same as for var_sipProxy above. */unsigned char *var_sipRxProxyAuthTable(struct variable *vp, oid *name, size_t *length, int exact, size_t *var_len, WriteMethod **write_method){ /* variables we may use later */ static long long_ret; static unsigned char string[SPRINT_MAX_LEN]; static oid objid[MAX_OID_LEN]; static struct counter64 c64; /* * This assumes that the table is a 'simple' table. * See the implementation documentation for the meaning of this. * You will need to provide the correct value for the TABLE_SIZE parameter * * If this table does not meet the requirements for a simple table, * you will need to provide the replacement code yourself. * Mib2c is not smart enough to write this for you. * Again, see the implementation documentation for what is required. */#define TABLE_SIZE 1 //todo. fix later if (header_simple_table(vp,name,length,exact,var_len,write_method, TABLE_SIZE) == MATCH_FAILED ) return NULL; /* * this is where we do the value assignments for the mib results. */ switch(vp->magic) { case SIPRXPROXYAUTHREALM: *write_method = write_sipRxProxyAuthRealm; *string = 0; *var_len = strlen(string); return (unsigned char *) string; case SIPRXPROXYAUTHPASSWORD: *write_method = write_sipRxProxyAuthPassword; *string = 0; *var_len = strlen(string); return (unsigned char *) string; case SIPRXPROXYAUTHSTATUS: *write_method = write_sipRxProxyAuthStatus; long_ret = 0; return (unsigned char *) &long_ret; default: ERROR_MSG(""); } return NULL;}intwrite_sipRequestMaxExpires(int action, u_char *var_val, u_char var_val_type, size_t var_val_len, u_char *statP, oid *name, size_t name_len){ static long *long_ret; int size; switch ( action ) { case RESERVE1: if (var_val_type != ASN_GAUGE){ fprintf(stderr, "write to sipRequestMaxExpires not ASN_GAUGE\n"); return SNMP_ERR_WRONGTYPE; } if (var_val_len > sizeof(long_ret)){ fprintf(stderr,"write to sipRequestMaxExpires: bad length\n"); return SNMP_ERR_WRONGLENGTH; } break; case RESERVE2: size = var_val_len; long_ret = (long *) var_val; break; case FREE: /* Release any resources that have been allocated */ break; case ACTION: /* The variable has been stored in long_ret for you to use, and you have just been asked to do something with it. Note that anything done here must be reversable in the UNDO case */ break; case UNDO: /* Back out any changes made in the ACTION case */ break; case COMMIT: /* Things are working well, so it's now safe to make the change permanently. Make sure that anything done here can't fail! */ break; } return SNMP_ERR_NOERROR;}intwrite_sipProxyStateful(int action, u_char *var_val, u_char var_val_type, size_t var_val_len, u_char *statP, oid *name, size_t name_len){ static long *long_ret; int size; switch ( action ) { case RESERVE1: if (var_val_type != ASN_INTEGER){ fprintf(stderr, "write to sipProxyStateful not ASN_INTEGER\n"); return SNMP_ERR_WRONGTYPE; } if (var_val_len > sizeof(long_ret)){ fprintf(stderr,"write to sipProxyStateful: bad length\n"); return SNMP_ERR_WRONGLENGTH; } break; case RESERVE2: size = var_val_len; long_ret = (long *) var_val; break; case FREE: /* Release any resources that have been allocated */ break; case ACTION: /* The variable has been stored in long_ret for you to use, and you have just been asked to do something with it. Note that anything done here must be reversable in the UNDO case */ break; case UNDO: /* Back out any changes made in the ACTION case */ break; case COMMIT: /* Things are working well, so it's now safe to make the change permanently. Make sure that anything done here can't fail! */ break; } return SNMP_ERR_NOERROR;}intwrite_sipProxySendsCancel(int action, u_char *var_val, u_char var_val_type, size_t var_val_len, u_char *statP, oid *name, size_t name_len){ static long *long_ret; int size; switch ( action ) { case RESERVE1: if (var_val_type != ASN_INTEGER){ fprintf(stderr, "write to sipProxySendsCancel not ASN_INTEGER\n"); return SNMP_ERR_WRONGTYPE; } if (var_val_len > sizeof(long_ret)){ fprintf(stderr,"write to sipProxySendsCancel: bad length\n"); return SNMP_ERR_WRONGLENGTH; } break; case RESERVE2: size = var_val_len; long_ret = (long *) var_val; break; case FREE: /* Release any resources that have been allocated */ break; case ACTION: /* The variable has been stored in long_ret for you to use, and you have just been asked to do something with it. Note that anything done here must be reversable in the UNDO case */ break; case UNDO: /* Back out any changes made in the ACTION case */ break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -