[Freeswitch-svn] [commit] r12474 - freeswitch/trunk/src

FreeSWITCH SVN mrene at freeswitch.org
Thu Mar 5 13:39:21 PST 2009


Author: mrene
Date: Thu Mar  5 15:39:21 2009
New Revision: 12474

Log:
generic parses fixes

Modified:
   freeswitch/trunk/src/switch_xml_config.c

Modified: freeswitch/trunk/src/switch_xml_config.c
==============================================================================
--- freeswitch/trunk/src/switch_xml_config.c	(original)
+++ freeswitch/trunk/src/switch_xml_config.c	Thu Mar  5 15:39:21 2009
@@ -40,7 +40,8 @@
 	switch_size_t count = 0;
 	
 	if (!*event) {
-		switch_event_create(event, SWITCH_EVENT_REQUEST_PARAMS);
+		/* SWITCH_EVENT_CLONE will not insert any generic event headers */
+		switch_event_create(event, SWITCH_EVENT_CLONE);
 		switch_assert(*event);
 	}
 
@@ -74,13 +75,17 @@
 SWITCH_DECLARE(switch_status_t) switch_xml_config_parse_event(switch_event_t *event, int count, int reload, switch_xml_config_item_t *instructions)
 {
 	switch_xml_config_item_t *item;
-	int file_count = 0, matched_count = 0;
+	int matched_count = 0;
 	
 	for (item = instructions; item->key; item++) {
 		const char *value = switch_event_get_header(event, item->key);
 		switch_bool_t changed = SWITCH_FALSE;
 		switch_xml_config_callback_t callback = (switch_xml_config_callback_t)item->function;
 		
+		if (value) {
+			matched_count++;
+		}
+		
 		if (reload && !switch_test_flag(item, CONFIG_RELOADABLE)) {
 			continue;
 		}
@@ -283,14 +288,14 @@
 			callback(item, (reload ? CONFIG_RELOAD : CONFIG_LOAD), changed);
 		}
 	}
-	
-	if (file_count > matched_count) {
+
+	if (count != matched_count) {
 		/* User made a mistake, find it */
 		switch_event_header_t *header;
 		for (header = event->headers; header; header = header->next) {
 			switch_bool_t found = SWITCH_FALSE;
 			for (item = instructions; item->key; item++) {
-				if (strcasecmp(header->name, item->key)) {
+				if (!strcasecmp(header->name, item->key)) {
 					found = SWITCH_TRUE;
 					break;
 				}
@@ -298,7 +303,7 @@
 			
 			if (!found) {
 				/* Tell the user */
-				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Configuration parameter [%s] is unfortunately not valid, you might want to double-check that.\n", header->name);
+				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Configuration parameter [%s] is unfortunately not valid, you might want to double-check that.\n", header->name);
 			}
 		}
 	}



More information about the Freeswitch-svn mailing list