134 /* horrible error */ |
134 /* horrible error */ |
135 return NULL; |
135 return NULL; |
136 } |
136 } |
137 |
137 |
138 /* convert ServerConfig to ServerConfiguration */ |
138 /* convert ServerConfig to ServerConfiguration */ |
139 for(int i=0;i<serverconf->objects->size;i++) { |
139 UcxMapIterator iter = ucx_map_iterator(serverconf->objects); |
140 UcxMapElement *elm = &serverconf->objects->map[i]; |
140 UCX_MAP_FOREACH(UcxList*, list, serverconf->objects, iter) { |
141 while(elm != NULL) { |
141 UCX_FOREACH(UcxList*, list, elm) { |
142 UcxList *list = elm->data; |
142 |
143 while(list != NULL) { |
143 ServerConfigObject *scfgobj = elm->data; |
144 |
144 |
145 ServerConfigObject *scfgobj = list->data; |
145 /* handle config object */ |
146 |
146 int hr = 0; |
147 /* handle config object */ |
147 if(!sstrcmp(scfgobj->type, sstr("Runtime"))) { |
148 int hr = 0; |
148 hr = cfg_handle_runtime(serverconfig, scfgobj); |
149 if(!sstrcmp(scfgobj->type, sstr("Runtime"))) { |
149 } else if(!sstrcmp(scfgobj->type, sstr("EventHandler"))) { |
150 hr = cfg_handle_runtime(serverconfig, scfgobj); |
150 hr = cfg_handle_eventhandler(serverconfig, scfgobj); |
151 } else if(!sstrcmp(scfgobj->type, sstr("EventHandler"))) { |
151 } else if(!sstrcmp(scfgobj->type, sstr("AuthDB"))) { |
152 hr = cfg_handle_eventhandler(serverconfig, scfgobj); |
152 hr = cfg_handle_authdb(serverconfig, scfgobj); |
153 } else if(!sstrcmp(scfgobj->type, sstr("AuthDB"))) { |
153 } else if(!sstrcmp(scfgobj->type, sstr("Listener"))) { |
154 hr = cfg_handle_authdb(serverconfig, scfgobj); |
154 hr = cfg_handle_listener(serverconfig, scfgobj); |
155 } else if(!sstrcmp(scfgobj->type, sstr("Listener"))) { |
155 } else if(!sstrcmp(scfgobj->type, sstr("VirtualServer"))) { |
156 hr = cfg_handle_listener(serverconfig, scfgobj); |
156 hr = cfg_handle_vs(serverconfig, scfgobj); |
157 } else if(!sstrcmp(scfgobj->type, sstr("VirtualServer"))) { |
|
158 hr = cfg_handle_vs(serverconfig, scfgobj); |
|
159 } |
|
160 |
|
161 |
|
162 /* next object */ |
|
163 list = list->next; |
|
164 } |
157 } |
165 |
158 |
166 elm = elm->next; |
159 |
|
160 /* next object */ |
|
161 list = list->next; |
167 } |
162 } |
168 } |
163 } |
169 |
164 |
170 /* check event handler config */ |
165 /* check event handler config */ |
171 if(check_event_handler_cfg() != 0) { |
166 if(check_event_handler_cfg() != 0) { |
186 |
181 |
187 sstr_t vsname = sstr(listener->default_vs.vs_name); |
182 sstr_t vsname = sstr(listener->default_vs.vs_name); |
188 |
183 |
189 /* search for VirtualServer */ |
184 /* search for VirtualServer */ |
190 int b = 0; |
185 int b = 0; |
191 for(int i=0;i<serverconfig->host_vs->size;i++) { |
186 iter = ucx_map_iterator(serverconfig->host_vs); |
192 UcxMapElement *elm = &serverconfig->host_vs->map[i]; |
187 UCX_MAP_FOREACH(VirtualServer*, vs, serverconfig->host_vs, iter) { |
193 while(elm != NULL && elm->data != NULL) { |
188 if(!sstrcmp(vsname, vs->name)) { |
194 VirtualServer *vs = elm->data; |
189 listener->default_vs.vs = vs; |
195 |
|
196 if(!sstrcmp(vsname, vs->name)) { |
|
197 b = 1; |
|
198 listener->default_vs.vs = vs; |
|
199 break; |
|
200 } |
|
201 |
|
202 elm = elm->next; |
|
203 } |
|
204 if(b) { |
|
205 break; |
190 break; |
206 } |
191 } |
207 } |
192 } |
208 |
193 |
209 ls = ls->next; |
194 ls = ls->next; |