Show module statistics using radmin

Himanshu Pandey pandey_himanshu80 at rediffmail.com
Tue Sep 30 09:51:56 CEST 2014


Hi,

To show my module statistics using radmin I referred command.c and radmin.c and added my new command 
"show module statistics <module>".

To
 brief you, I added an usigned array of module return codes in 
module_instance_t structure and updated the array in call_modsingle() 
function using the statement: 

modsingle *sp;
sp->modinst->rtcode[result] = sp->modinst->rtcode[result] + 1; 

I tested this and it is giving 100% correct results.

Now
 I have written a function static int 
command_show_module_statistics(rad_listen_t *listener, int argc, char 
*argv[]) in command.c file. I have used radius methods & structures 
only in this function, so guide me which is correct/wrong or what else 
radius methods or structures should be used. The problem is that correct
 module statistics are not being diplayed rather it is displaying 0 
statistics for all modules.Please help me resolve this. Here goes the 
function code:

static int command_show_module_statistics(rad_listen_t *listener, int argc, char *argv[])
{
 int i;
 CONF_SECTION *cs;
 module_instance_t const *mi;

 if (argc != 1) {
 cprintf(listener, "ERROR: No module name was given\n");
 return 0;
 }

 cs = cf_section_find("modules");
 if (!cs) return 0;

 mi = find_module_instance(cs, argv[0], false);
 if (!mi) {
 cprintf(listener, "ERROR: No such module \"%s\"\n", argv[0]);
 return 0;
 }

 for (i = 0; i < RLM_MODULE_NUMCODES; i++) {
 cprintf(listener, "\nRTCODE[%d]=%ld\n",i,mi->rtcode[i]);
 }

 return 1; /* success */
}

Regards,
Sonu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeradius.org/pipermail/freeradius-devel/attachments/20140930/e3e5c705/attachment.html>


More information about the Freeradius-Devel mailing list