/[radius]/radius/radiusd/auth.c
ViewVC logotype

Diff of /radius/radiusd/auth.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.81 by gray, Tue Jul 29 10:25:22 2003 UTC revision 1.82 by gray, Sun Sep 28 22:16:19 2003 UTC
# Line 835  sfn_init(AUTH_MACH *m) Line 835  sfn_init(AUTH_MACH *m)
835          }          }
836  }  }
837    
838    static void
839    pair_set_value(VALUE_PAIR *p, Datatype type, Datum *datum)
840    {
841            efree(p->avp_strvalue);
842            switch (type) {
843            case Integer:
844                    p->avp_lvalue = datum->ival;
845                    break;
846                    
847            case String:
848                    p->avp_strvalue = datum->sval;
849                    p->avp_strlength = strlen(p->avp_strvalue);
850                    break;
851                    
852            default:
853                    insist_fail("bad Datatype");
854            }
855            p->eval_type = eval_const;
856    }
857    
858  void  void
859  sfn_eval_reply(AUTH_MACH *m)  sfn_eval_reply(AUTH_MACH *m)
860  {  {
# Line 842  sfn_eval_reply(AUTH_MACH *m) Line 862  sfn_eval_reply(AUTH_MACH *m)
862          int errcnt = 0;          int errcnt = 0;
863                    
864          for (p = m->user_reply; p; p = p->next) {          for (p = m->user_reply; p; p = p->next) {
865                  if (p->eval) {                  Datatype type;
866                          Datatype type;                  Datum datum;
867                          Datum datum;                  
868                    switch (p->eval_type) {
869                          if (interpret(p->avp_strvalue, m->req, &type, &datum)) {                  case eval_const:
870                            break;
871    
872                    case eval_interpret:
873                            if (rewrite_interpret(p->avp_strvalue,
874                                                  m->req, &type, &datum)) {
875                                  errcnt++;                                  errcnt++;
876                                  continue;                                  continue;
877                          }                          }
878                          efree(p->avp_strvalue);                          pair_set_value(p, type, &datum);
879                          switch (type) {                          break;
880                          case Integer:  
881                                  p->avp_lvalue = datum.ival;                  case eval_compiled:
882                                  break;                          if (rewrite_eval(p->avp_strvalue,
883                          case String:                                                m->req, &type, &datum)) {
884                                  p->avp_strvalue = datum.sval;                                  errcnt++;
885                                  p->avp_strlength = strlen(p->avp_strvalue);                                  continue;
                                 break;  
                         default:  
                                 abort();  
886                          }                          }
887                          p->eval = 0;                          pair_set_value(p, type, &datum);
888                            break;
889    
890                    default:
891                            insist_fail("bad eval_type");
892                  }                  }
893          }          }
894          if (errcnt)          if (errcnt)
# Line 1076  sfn_ipaddr(AUTH_MACH *m) Line 1102  sfn_ipaddr(AUTH_MACH *m)
1102                    
1103          /* Assign an IP if necessary */          /* Assign an IP if necessary */
1104          if (!avl_find(m->user_reply, DA_FRAMED_IP_ADDRESS)) {          if (!avl_find(m->user_reply, DA_FRAMED_IP_ADDRESS)) {
 #if 0  
                 /* **************************************************  
                  * Keep it here until IP allocation is ready  
                  */  
                 if (p = alloc_ip_pair(m->namepair->avp_strvalue, m->req))  
                         avl_add_pair(&m->user_reply, p);  
                 else  
 #endif    
1105                  if (p = avl_find(m->req->request, DA_FRAMED_IP_ADDRESS)) {                  if (p = avl_find(m->req->request, DA_FRAMED_IP_ADDRESS)) {
1106                          /* termserver hint */                          /* termserver hint */
1107                          avl_add_pair(&m->user_reply, avp_dup(p));                          avl_add_pair(&m->user_reply, avp_dup(p));

Legend:
Removed from v.1.81  
changed lines
  Added in v.1.82

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26