Re: Patch to add netfilter mark support

From: Amos Jeffries <squid3_at_treenet.co.nz>
Date: Thu, 16 Sep 2010 02:03:45 +1200

On 16/09/10 00:50, Andrew Beverley wrote:
> On Wed, 2010-09-15 at 19:44 +1200, Amos Jeffries wrote:
>> On 15/09/10 18:12, Andrew Beverley wrote:
>>> On Wed, 2010-09-15 at 02:06 +0000, Amos Jeffries wrote:
>>>> On Tue, 14 Sep 2010 23:55:20 +0100, Andrew Beverley<andy_at_andybev.com>
>>>> wrote:
>>>>>> * Config.accessList.outgoingTos, Config.accessList.clientsideTos,
>>>>>> Config.accessList.outgoingNfmark, Config.accessList.clientsideNfmark
>>>> can
>>>>>> become members of the Qos scope Config object. All the parsing /free
>>>>>> stuff
>>>>>> can be moved there too with some #define parse_...() etc for the legacy
>>>>>> parser.
>>>>>>
>>>>>
>>>>> I've moved all the configuration variables and functions to the Qos
>>>>> scope. I have renamed parse_acl_tos(acl_tos ** head) as
>>>>> Ip::Qos::Config::parseConfigAclTos(acl_tos ** head).
>>>>>
>>>>> However, I'm unable to compile because of the following error:
>>>>>
>>>>> Qos.cc: In member function ‘void
>>>>> Ip::Qos::Config::parseConfigAclTos(acl_tos**)’:
>>>>> Qos.cc:377: error: argument of type ‘void (Ip::Qos::Config::)(void*)’
>>>> does
>>>>> not match ‘void (*)(void*)’
>>>>>
>>>>> The code at line 377 is:
>>>>>
>>>>> CBDATA_INIT_TYPE_FREECB(acl_tos, freedConfigAclTos);
>>>>>
>>>>> I have
>>>>>
>>>>> CBDATA_TYPE(acl_tos);
>>>>>
>>>>> specified before the parseConfigAclTos function.
>>>>>
>>>>> Could you give me any ideas as to what I am doing wrong here? If you
>>>>> need me to send through any more of the code then please let me know.
>>>>
>>>> Do you have this with a cast?
>>>> #define parse_acl_tos(X) Ip::Qos::Config::parseConfigAclTos((acl_tos
>>>> **)X)
>>>>
>>>> with the cf.data.pre "TYPE: acl_tos" unchanged.
>>>
>>> No, I had changed it. However, I have now changed it back to the above,
>>> but still get the same error. Any other ideas?
>>>
>>> Qos.cc: In member function ‘void Ip::Qos::Config::parseConfigAclTos(acl_tos**)’:
>>> Qos.cc:377: error: argument of type ‘void (Ip::Qos::Config::)(void*)’ does not match ‘void (*)(void*)’
>>>
>>> I have attached my current Qos.cc and Qos.h
>>>
>>> Thanks,
>>>
>>> Andy
>>>
>>
>> Darn CBDATA strikes again. What the hell, lets skip this shuffle change
>> then and get the rest of the work in separately.
>
> So have the configuration variables in Qos class (I already have this
> working), and keep the config functions in cache_cf.cc?

If that works, great. This CBDATA fubar is making me doubt my certainty
about that too.

Amos

-- 
Please be using
   Current Stable Squid 2.7.STABLE9 or 3.1.8
   Beta testers wanted for 3.2.0.2
Received on Wed Sep 15 2010 - 14:03:50 MDT

This archive was generated by hypermail 2.2.0 : Wed Sep 15 2010 - 12:00:06 MDT