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

Diff of /radius/radiusd/scheme.c

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

revision 1.35 by gray, Fri Apr 18 05:27:10 2003 UTC revision 1.36 by gray, Sat Apr 26 10:39:43 2003 UTC
# Line 30  Line 30 
30  #include <setjmp.h>  #include <setjmp.h>
31  #include <errno.h>  #include <errno.h>
32    
33    unsigned scheme_gc_interval = 3600;
34    
35  /* Protos to be moved to radscm */  /* Protos to be moved to radscm */
36  SCM scm_makenum (unsigned long val);  SCM scm_makenum (unsigned long val);
37  SCM radscm_avl_to_list(VALUE_PAIR *pair);  SCM radscm_avl_to_list(VALUE_PAIR *pair);
# Line 44  catch_body(void *data) Line 46  catch_body(void *data)
46          radscm_init();          radscm_init();
47          rscm_radlog_init();          rscm_radlog_init();
48          rscm_rewrite_init();          rscm_rewrite_init();
49          rad_mainloop(data);          radiusd_main();
50          return SCM_BOOL_F;          return SCM_BOOL_F;
51  }  }
52    
# Line 56  catch_handler(void *data, SCM tag, SCM t Line 58  catch_handler(void *data, SCM tag, SCM t
58    
59    
60  void  void
61  rad_boot(void *closure, int argc, char **argv)  scheme_boot(void *closure, int argc, char **argv)
62  {  {
63          scm_internal_catch(SCM_BOOL_T,          scm_internal_catch(SCM_BOOL_T,
64                             catch_body, closure,                             catch_body, closure,
# Line 76  scheme_debug(int val) Line 78  scheme_debug(int val)
78  static SCM  static SCM
79  eval_catch_body (void *list)  eval_catch_body (void *list)
80  {  {
81          return scm_eval((SCM)list);          return scm_primitive_eval_x((SCM)list);
82  }  }
83    
84  static SCM  static SCM
# Line 128  scheme_auth(char *procname, RADIUS_REQ * Line 130  scheme_auth(char *procname, RADIUS_REQ *
130          if (SCM_IMP(res) && SCM_BOOLP(res))          if (SCM_IMP(res) && SCM_BOOLP(res))
131                  return res == SCM_BOOL_F;                  return res == SCM_BOOL_F;
132          if (SCM_NIMP(res) && SCM_CONSP(res)) {          if (SCM_NIMP(res) && SCM_CONSP(res)) {
133                  int code = SCM_CAR(res);                  SCM code = SCM_CAR(res);
134                  VALUE_PAIR *list = radscm_list_to_avl(SCM_CDR(res));                  VALUE_PAIR *list = radscm_list_to_avl(SCM_CDR(res));
135                  avl_merge(user_reply_ptr, &list);                  avl_merge(user_reply_ptr, &list);
136                  avl_free(list);                  avl_free(list);
# Line 167  scheme_acct(char *procname, RADIUS_REQ * Line 169  scheme_acct(char *procname, RADIUS_REQ *
169          return 1;          return 1;
170  }  }
171    
172    void
173    scheme_add_load_path(char *path)
174    {
175            rscm_add_load_path(path);
176    }
177    
178  void  void
179  scheme_load(char *filename)  scheme_load(char *filename)
# Line 183  scheme_end_reconfig() Line 190  scheme_end_reconfig()
190  void  void
191  scheme_read_eval_loop()  scheme_read_eval_loop()
192  {  {
193          SCM list;          SCM list;
194          int status;          int status;
195          SCM sym_top_repl = scm_symbol_value0("top-repl");          SCM sym_top_repl = RAD_SCM_SYMBOL_VALUE("top-repl");
196          SCM sym_begin = scm_symbol_value0("begin");          SCM sym_begin = RAD_SCM_SYMBOL_VALUE("begin");
197            
198          list = scm_cons(sym_begin, SCM_LIST1(scm_cons(sym_top_repl, SCM_EOL)));          list = scm_cons(sym_begin, scm_list_1(scm_cons(sym_top_repl, SCM_EOL)));
199          status = scm_exit_status(scm_eval_x(list));          status = scm_exit_status(scm_primitive_eval_x(list));
200          printf("%d\n", status);          printf("%d\n", status);
201  }  }
202    
203    
204    
205  /* *************************** Configuration ******************************* */  /* *************************** Configuration ******************************* */
206    
# Line 262  struct cfg_stmt guile_stmt[] = { Line 270  struct cfg_stmt guile_stmt[] = {
270          { "debug", CS_STMT, NULL, scheme_cfg_debug, NULL, NULL, NULL },          { "debug", CS_STMT, NULL, scheme_cfg_debug, NULL, NULL, NULL },
271          { "gc-interval", CS_STMT, NULL, cfg_get_integer, &scheme_gc_interval,          { "gc-interval", CS_STMT, NULL, cfg_get_integer, &scheme_gc_interval,
272            NULL, NULL },            NULL, NULL },
         { "task-timeout", CS_STMT, NULL, cfg_get_integer, &scheme_task_timeout,  
           NULL, NULL},  
273          { NULL }          { NULL }
274  };  };
275    

Legend:
Removed from v.1.35  
changed lines
  Added in v.1.36

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