40 void func_init() { |
40 void func_init() { |
41 function_map = ucx_map_new(1337); |
41 function_map = ucx_map_new(1337); |
42 } |
42 } |
43 |
43 |
44 void add_function(FuncStruct *func) { |
44 void add_function(FuncStruct *func) { |
45 printf("add_function %s\n", func->name); |
|
46 struct FuncStruct *f = malloc(sizeof(FuncStruct)); |
45 struct FuncStruct *f = malloc(sizeof(FuncStruct)); |
47 *f = *func; |
46 *f = *func; |
|
47 char *name = strdup(func->name); |
|
48 for(int i=0;name[i]!='\0';i++) { |
|
49 if(name[i] == '_') { |
|
50 name[i] = '-'; |
|
51 } |
|
52 } |
|
53 f->name = name; |
|
54 printf("add_function %s\n", f->name); |
48 ucx_map_cstr_put(function_map, (char*)f->name, f); |
55 ucx_map_cstr_put(function_map, (char*)f->name, f); |
49 } |
56 } |
50 |
57 |
51 void add_functions(FuncStruct *funcs) { |
58 void add_functions(FuncStruct *funcs) { |
52 int i = 0; |
59 int i = 0; |
55 i++; |
62 i++; |
56 } |
63 } |
57 } |
64 } |
58 |
65 |
59 FuncStruct* get_function(char *name) { |
66 FuncStruct* get_function(char *name) { |
|
67 for(int i=0;name[i]!='\0';i++) { |
|
68 if(name[i] == '_') { |
|
69 name[i] = '-'; |
|
70 } |
|
71 } |
60 return ucx_map_cstr_get(function_map, name); |
72 return ucx_map_cstr_get(function_map, name); |
61 } |
73 } |
62 |
74 |
63 FuncStruct* func_resolve(pblock *pb, Session *sn, Request *rq) { |
75 FuncStruct* func_resolve(pblock *pb, Session *sn, Request *rq) { |
64 char *name = pblock_findkeyval(pb_key_fn, pb); |
76 char *name = pblock_findkeyval(pb_key_fn, pb); |