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

📄 sipproxy.c

📁 非常不错的网管开发包
💻 C
📖 第 1 页 / 共 3 页
字号:
/* 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 + -