Thank you Phil!<br><br>I will try!<br><br><br><div class="gmail_quote">On Mon, May 14, 2012 at 3:25 PM, Phil Mayers <span dir="ltr"><<a href="mailto:p.mayers@imperial.ac.uk" target="_blank">p.mayers@imperial.ac.uk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 14/05/12 12:09, jomajo wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hello Phil. Ofcourse it is not! I don't know (other people) but if they know<br>
any helpful information related with this, please let me know.<br>
</blockquote>
<br></div>
Ah, sorry, I'm confused - you're the same person!<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Can you share more information about Matthew lab ? How he's reserving a time<br>
slot and authenticating users with freeradius?<br>
<br>
This information would be really helpful, because I'm tying to achieve this<br>
too<br>
</blockquote>
<br></div>
So, in brief, you want something like this:<br>
<br>
Let's say you have an SQL table:<br>
<br>
username string, start_time integer, end_time integer<br>
<br>
...and the start/end times are unix seconds-since-epoch. You could implement this as follows.<br>
<br>
First, create three local attributes in raddb/dictionary:<br>
<br>
ATTRIBUTE       Resv-Start-Time         3010    integer<br>
ATTRIBUTE       Resv-End-Time           3011    integer<br>
ATTRIBUTE       Resv-Cur-Time           3012    integer<br>
<br>
Second, write an "unlang" policy in your virtual server like so:<br>
<br>
authorize {<br>
  ...<br>
  update request {<br>
    Resv-Start-Time := "%{sql:select start_time from resv where username='%{User-Name}'}"<br>
    Resv-End-Time := "%{sql:select end_time from resv where username='%{User-Name}'}"<br>
    Resv-Cur-Time := "%l"<br>
  }<br>
<br>
  if (Resv-Cur-Time < Resv-Start-Time) {<br>
    reject<br>
    update reply {<br>
      Reply-Message := "your slot has not yet started"<br>
    }<br>
  }<br>
<br>
  if (Resv-Cur-Time > Resv-End-Time) {<br>
    reject<br>
    update reply {<br>
      Reply-Message := "your slot has finished"<br>
    }<br>
  }<br>
<br>
  # you probably want to set the Session-Timeout so they get kicked off<br>
  update reply {<br>
    Session-Timeout := "%{expr:%{Resv-End-Time} - %{Resv-Cur-Time}}"<br>
  }<br>
<br>
  ...<br>
}<br>
<br>
Hopefully it's clear what this does, and how it works.<div class="HOEnZb"><div class="h5"><br>
-<br>
List info/subscribe/unsubscribe? See <a href="http://www.freeradius.org/list/users.html" target="_blank">http://www.freeradius.org/<u></u>list/users.html</a><br>
</div></div></blockquote></div><br>