src/server/daemon/config.c

changeset 31
280250e45ba6
parent 30
27c7511c0e34
child 33
96dbfe4f91e5
equal deleted inserted replaced
30:27c7511c0e34 31:280250e45ba6
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;

mercurial