[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freeradius-users
Subject:    =?UTF-8?B?5Zue5aSN77ya?= Freeradius-Users Digest, Vol 58, Issue 74
From:       miaowang () foxmail ! com
Date:       2010-04-30 7:44:57
Message-ID: jWYzVKb5m3hw.chYWBYfB () smtp ! foxmail ! com
[Download RAW message or body]



原信息
主题: Freeradius-Users Digest, Vol 58, Issue 74
发件人: freeradius-users-request@lists.freeradius.org
日期: 2010/02/20 19:20

Send Freeradius-Users mailing list submissions to
	freeradius-users@lists.freeradius.org

To subscribe or unsubscribe via the World Wide Web, visit
	http://lists.freeradius.org/mailman/listinfo/freeradius-users
or, via email, send a message with subject or body 'help' to
	freeradius-users-request@lists.freeradius.org

You can reach the person managing the list at
	freeradius-users-owner@lists.freeradius.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Freeradius-Users digest..."


Today's Topics:

   1. Re: modules instantiation (Alan DeKok)
   2. Re: modules instantiation (Doug Hardie)


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

Message: 1
Date: Sat, 20 Feb 2010 03:07:15 +0100
From: Alan DeKok <aland@deployingradius.com>
Subject: Re: modules instantiation
To: FreeRadius users mailing list
	<freeradius-users@lists.freeradius.org>
Message-ID: <4B7F43D3.20302@deployingradius.com>
Content-Type: text/plain; charset=ISO-8859-1

Latha Krishnamurthi wrote:
> I see that a new instance is getting created when the first one is busy
> handling a request. (I do this this by adding a sleep in the module and
> printing the threadid) I am expecting the xxx_instantiate function to
> get called each time a new instance is created (reading in the
> documentation).

  No.  The module is NOT having "a new instance created".

  A module "instance" is defined by a module configuration.  One
configuration: one instance.

  The "instance" data is *constant*.  The module gets called multiple
times simultaneously from multiple threads when multiple requests are
received.

> This does not happen. I am actually connecting to a
> server in the instantiate function and storing the socket id in the
> *instance, so that I can use it later in the authenticate etc.

  Why?

  Is that connection changing the way the module behaves?

> But it seems that the socket id is the same for all the instances.
> *instance seems to be shared by all the instances ??
> 
> Am I missing something/configuration, your help is grately appreciated.

  If you need to store data that is associated with a particulare
*request*, and is valid only for the lifetime of a request, see
request_data_add(), and request_data_get().

  Alan DeKok.


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

Message: 2
Date: Fri, 19 Feb 2010 18:36:14 -0800
From: Doug Hardie <bc979@lafn.org>
Subject: Re: modules instantiation
To: FreeRadius users mailing list
	<freeradius-users@lists.freeradius.org>
Message-ID: <D8F32319-334A-46E4-B298-4025E188FE45@lafn.org>
Content-Type: text/plain; charset=us-ascii


On 19 February 2010, at 17:35, Latha Krishnamurthi wrote:

> Thankyou very much for your prompt reply. I was referring to this documentation.
> 
> http://wiki.freeradius.org/Modules2
> > > The xxx_instantiate module is called each time a new instance is started. \
> > > Generally this >>module is used to establish the data for the instance that \
> > > needs to be retained during the >>life of the instance. For example, reading \
> > > the configuration variables. cf_section_parse>>(conf, data, module_config) is \
> > > used to do this function.
> 
> > > Setup struct rlm_xxx_t to hold data that needs to be accessed by all instances \
> > > of the >>rlm. This data is not necessarily the same for each instance. There is \
> > > a separate copy >>for each instance. For example, this is the place to store \
> > > configuration variables that will >>be provided in FreeRADIUS.conf.

Well, it sure seemed clear when I wrote it, but now I tend to agree that its a bit \
misleading.  Those words were lifted from the original version 1 document and perhaps \
something changed with version 2, but I don't recall any such changes.  In any case, \
it does need a revision.  

> 
> It is described like I can have the module specific data in the instance and use it \
> in the life time of the instance. 
> So if I need to use a unique socket connection for each thread, I have no place to \
> store the instance specific data ? I need to have a global pool and lock it with \
> mutex ?? (looks like rlm_ldap does something similar ?)

Alan responded with something I was not aware of.  I suspect thats the way you need \
to go.

> 
> Thanks in advance
> LK
> 
> --- On Fri, 2/19/10, Doug Hardie <bc979@lafn.org> wrote:
> 
> From: Doug Hardie <bc979@lafn.org>
> Subject: Re: modules instantiation
> To: "FreeRadius users mailing list" <freeradius-users@lists.freeradius.org>
> Date: Friday, February 19, 2010, 3:49 PM
> 
> 
> On 19 February 2010, at 15:24, Latha Krishnamurthi wrote:
> > 
> > I am using the free radius 2.1.3. I have a module rlm_xxx and have initialized it \
> > as thread safe. I have configured the start_servers as 3. The issue I am having \
> > is as follows. 
> > I see that a new instance is getting created when the first one is busy handling \
> > a request. (I do this this by adding a sleep in the module and printing the \
> > threadid) I am expecting the xxx_instantiate function to get called each time a \
> > new instance is created (reading in the documentation). This does not happen. I \
> > am actually connecting to a server in the instantiate function and storing the \
> > socket id in the *instance, so that I can use it later in the authenticate etc. 
> > But it seems that the socket id is the same for all the instances. *instance \
> > seems to be shared by all the instances ?? 
> > Am I missing something/configuration, your help is grately appreciated.
> 
> I believe this is an issue of terminology.  Instantiation in this case refers to \
> the configuration process prior to the start of the server accepting Radius \
> requests.  It does not refer to instantiation of new threads.  I am not aware of \
> any hook you can use for instatiation of new threads.  In one of the older version \
> rlm_example files is the following comment: 
> *      If the module needs to temporarily modify it's instantiation
> *      data, the type should be changed to RLM_TYPE_THREAD_UNSAFE.
> *      The server will then take care of ensuring that the module
> *      is single-threaded.
> 
> 
> 
> -
> List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
> 
> -
> List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html




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

-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html


End of Freeradius-Users Digest, Vol 58, Issue 74
************************************************




-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic