sorry, my fault, I overlooked the return()
And I couldn't find the solution either :(

Markus

On Apr 13, Markus Gaugusch <[email protected]> wrote:

That's easy: make a break :)
(After each case block)

Br,
Markus
--
Sent from my Android phone with K-9 Mail. Please excuse my brevity.

liuying <[email protected]> wrote:

      Hi:
              I have a problem about snmpset,when I set only one
      variable,all the values of variables are changed .


              I want to change the value of only one variable,what can I do
      to solve the problem? Looking forward for your help!

       

        Here is parts of my program,"example_int"is a global variable:

       
       case DOWNSNDPACK:
              long_ret = example_int;
              *write_method = write_exampleint;
              return (u_char *) & long_ret;
          
        case DOWNRCVPACK:
              long_ret = example_int;
              *write_method = write_exampleint;
              return (u_char *) & long_ret;
             
          case DOWNFLOW:
              long_ret = example_int;
              *write_method = write_exampleint;
              return (u_char *) & long_ret;
       
          case CPURATE:
              strcpy(string, example_str);
              *var_len = strlen(string);
       *write_method = write_examplestr;
              return (u_char *) string;
             
       int  write_exampleint(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)
      {
          #define MAX_EXAMPLE_INT 100
          static long     intval;
          static long     old_intval;
         
          switch (action) {
          case RESERVE1:
              if (var_val_type != ASN_INTEGER) {
                  DEBUGMSGTL(("example", "%x not integer type",
      var_val_type));
                  return SNMP_ERR_WRONGTYPE;
              }
              if (var_val_len > sizeof(long)) {
                  DEBUGMSGTL(("example", "wrong length %x", var_val_len));
                  return SNMP_ERR_WRONGLENGTH;
              }

              intval = *((long *) var_val);
              if (intval > MAX_EXAMPLE_INT) {
                  DEBUGMSGTL(("example", "wrong value %x", intval));
                  return SNMP_ERR_WRONGVALUE;
              }
              break;

          case RESERVE2:
              break;

          case FREE:
              break;

          case ACTION:
              old_intval = example_int;
              example_int = intval;
              break;

          case UNDO:
              example_int = old_intval;
              break;

          case COMMIT:
              break;

          }
          return SNMP_ERR_NOERROR;
      }


------------------------------------------------------------------------------
Forrester Wave Report - Recovery time is now measured in hours and minutes
not days. Key insights are discussed in the 2010 Forrester Wave Report as
part of an in-depth evaluation of disaster recovery service providers.
Forrester found the best-in-class provider in terms of services and vision.
Read this report now!  http://p.sf.net/sfu/ibm-webcastpromo
_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users

Reply via email to