Hi Jatin!
I don't know much about SNMP but your problem might come from your function
temp.
What exactly is temp returning if popen or fscanf fails? There is no return
statement in these pathes. So the function might return anything. Probably 0.
I would return a specific value, so that you can see that something went wrong.
For example -1, as this is invalid in your value range (0-100).
And as far as I know, fscanf returns the number of successfully read items.
That would be 1 in your case, so compare with ==1 instead of !=-1 (which should
be EOF anyway).
And as I see in the other function, you are using snmp_log, so why don't use it
in case of errors in the function temp?
Come to think of it, I didn't even know that functions and variables can have
the same name (temp). Thinking a little bit more about it, I see that it should
work. But even so, I wouldn't do that.
And I would do it a little bit my way:
int temp()
{
int val=0;
FILE *pipe = NULL;
/* cpu.sh is a script which returns value between 0-100 */
pipe=popen("/home/jatin/net-snmp-5.7.2.rc1/agent/mibgroup/cpu.sh","r");
if(!pipe)
{
snmp_log(LOG_ERR, "popen failed in temp(), errno: %d\n", errno);
return -1;
}
if( fscanf(pipe,"%d",&val) != 1)
{
snmp_log(LOG_ERR, "fscanf failed in temp() \n");
return -1;
}
return val;
}
And just a tip: Turn on compiler warnings and don't ignore them afterwards
:-). Every more or less recent compiler I know would have issued a warning for
not having a return in all pathes for a function that is not "void". Let the
compiler help you :-).
I hope this helps
Walter
From: Jatin Bodarya [mailto:[email protected]]
Sent: Mittwoch, 12. September 2012 08:49
To: [email protected]
Subject: net-snmp agent problem
Hello everyone,
I have generated a C code with mib2c tool, than implemented it
according to my need. Everything is working fine .I have assigned values with
system calls. These system call calling a shell script and getting output from
there. When I am using SNMPGET or WALK it gives correct values . I am running
these scripts with infinite for( ; ; ) loop to get the data. Bt when I am
trying to get these data with SNMPWALK after 10-15 times it is returning me
all the values " 0 " .What may be the reason behind it? I want that it should
return a correct value continuously, What methods or changes I can do ??
Please help me ..
Below are my functions..
Thanks in advance.
int
handle_cpuPercentUsage(netsnmp_mib_handler*handler,netsnmp_handler_registration
*reginfo,
netsnmp_agent_request_info *reqinfo,netsnmp_request_info *requests)
{
for(;;)
{
int *dat=(int *)temp(); /// temp function for getting value
switch(reqinfo->mode)
{
case MODE_GET:
snmp_set_var_typed_value(requests->requestvb,
ASN_INTEGER,
(u_char
*)&dat,sizeof(dat));
break;
default:
snmp_log(LOG_ERR, "unknown mode (%d) in
handle_cpuPercentUsage\n",
reqinfo->mode );
return SNMP_ERR_GENERR;
}
return SNMP_ERR_NOERROR;
sleep(1);
}
}
int temp()
{
int temp=0;
FILE *pipe = NULL;
/* cpu.sh is a script which returns value between 0-100 */
pipe=popen("/home/jatin/net-snmp-5.7.2.rc1/agent/mibgroup/cpu.sh","r");
if(pipe != NULL)
{
if( fscanf(pipe,"%d",&temp) != -1)
{
return temp;
}
}
}
#####################################################################################
This message and any attachments are solely for the use of the intended
recipients. They may contain privileged and/or confidential information or
other information protected from disclosure. If you are not an intended
recipient, you are hereby notified that you received this email in error and
that any review, dissemination, distribution or copying of this email and any
attachment is strictly prohibited. If you have received this email in error,
please contact the sender and delete the message and any attachment from your
system.
Thank You.
ANDRITZ HYDRO GmbH
Rechtsform/ Legal form: Gesellschaft mit beschränkter Haftung / Corporation
Firmensitz/ Registered seat: Wien
Firmenbuchgericht/ Court of registry: Handelsgericht Wien
Firmenbuchnummer/ Company registration: FN 61833 g
DVR: 0605077
UID-Nr.: ATU14756806
#####################################################################################
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders