How to extract A/V pairs from an Access-Request packet

Maria Ripolles mariaripolles63 at yahoo.es
Thu Jan 5 15:44:51 CET 2006


Thank you very much Joe for your very very fast response :-)

Joe Maimon <jmaimon at ttec.com> escribió:  

Maria Ripolles wrote:

> 
> Hy all,
> 
> I am developing a custom module 

Perhaps what you are doing can be done via a shell script called with 
the exec module?

> and I am a bit lost with the code. I am 
> not a C programmer so sorry if my question is very stupid.

Well its not going to be peaches and cream for you then.

> 
> I want to extract the differents A/V pairs contained in the 
> Access-Request packets and check if any of them is the attribute 
> "Connect-Info". In that case I would like to pass the value of the 
> "Connect-Info" attribute to a function called auxiliar.
> Here is my code:
> 
> static int auxiliar (char * value) { ..... }
> 
> static int mymodule_authorize (void *instance, REQUEST *request) {
> ....
> 
> VALUE_PAIR *request_pairs;
> request_pairs=request->packet->vps;
> 
> VALUE_PAIR *aux = NULL;
> 
> char * Attribute_Name = NULL;
> char *Attribute_Value = NULL;
> int type = 0;
> 
> for ( aux=request_pairs; aux; aux=aux->next)
> {
> Attribute_Name = aux->name;
> Attribute_Value = aux->strvalue;
> 
> if (aux->attribute == PW_CONNECT_INFO)
> {
> type=auxiliar(aux->strvalue); /* is this correct? I mean, 
> is aux->strvalue a char * type? */
> }
> 
> .....
> }
> 
> 
> 

strvalue is a char * in older versions. In CVS head its a union and you 
can access it (due to a compatibility macro) by vp->vp_strvalue the last 
time I looked.

you can use the pairfind() function to find the attribute you are 
looking for.

Consider that Connect-info may appear zero or more times in a request.

> Am I on the right track?

Eyeball review suggests that your code might work.

> 
> Thank you a lot for your help and best regards
> 
> 
> LLama Gratis a cualquier PC del Mundo.
> Llamadas a fijos y moviles desde 1 centimo por minuto.
> http://es.voice.yahoo.com 
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> - 
> List info/subscribe/unsubscribe? See http://www.freeradius.org/list/devel.html
- 
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/devel.html



		
---------------------------------

LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y moviles desde 1 centimo por minuto.
http://es.voice.yahoo.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeradius.org/pipermail/freeradius-devel/attachments/20060105/65821d9d/attachment.html>


More information about the Freeradius-Devel mailing list