usage of "FR_TOKEN op" parameter to pairmake ?
Arran Cudbard-Bell
a.cudbardb at freeradius.org
Tue Feb 4 15:53:32 CET 2014
On 4 Feb 2014, at 08:53, Chaigneau, Nicolas <nicolas.chaigneau at capgemini.com> wrote:
>> De : Alan DeKok
>>
>> Chaigneau, Nicolas wrote:
>>> I'm trying to figure out the purpose of the last parameter to
>> pairmake (FR_TOKEN op).
>>
>> The operator is used in many configuration files. So... there needs
>> to be a way to create / use it.
>>
>>> I assumed it was semantically equivalent to the following unlang
>> syntax :
>>
>> Yes.
>>
>>> But, whatever the operator I'm using (T_OP_EQ, T_OP_ADD or T_OP_SET),
>> it doesn't seem to have any effect. All attributes added through
>> pairmake to the reply vp list are returned to the client anyway.
>>
>> Yes, because you're manually appending them to the list.
>>
>> If you call pairmove(), it uses the operators to move one list to
>> another.
>>
>
>
> Thanks.
>
>
> So I tried using "pairmove". But I'm encountering some strange behaviour when combining the operators.
> I don't know if it's a weird bug or I'm doing it wrong (probably the latter...)
>
> What I'm doing:
>
> // macro for easier use:
> #define pairmove_reply(_vp, _a, _b, _c) _vp = pairmake(request->reply, NULL, _a, _b, _c); pairmove(request->reply, &(request->reply->vps), &_vp); pairfree(&_vp);
Your macro is wrong it should be
#define pairmove_reply(_vp, _a, _b, _c) do {\
_vp = pairmake(request, NULL, _a, _b, _c);\
pairmove(request, &(request->reply->vps), &_vp); \
pairfree(&_vp); \
while (0)
I'll look at it properly later...
Arran Cudbard-Bell <a.cudbardb at freeradius.org>
FreeRADIUS Development Team
FD31 3077 42EC 7FCD 32FE 5EE2 56CF 27F9 30A8 CAA2
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 881 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freeradius.org/pipermail/freeradius-devel/attachments/20140204/d0e722af/attachment.pgp>
More information about the Freeradius-Devel
mailing list