[dovecot-cvs] dovecot/src/lib-dict dict-sql.c,1.5,1.6

cras at dovecot.org cras at dovecot.org
Fri Jan 27 00:01:10 EET 2006


Update of /var/lib/cvs/dovecot/src/lib-dict
In directory talvi:/tmp/cvs-serv4769/src/lib-dict

Modified Files:
	dict-sql.c 
Log Message:
Added support for dynamically building SQL drivers.



Index: dict-sql.c
===================================================================
RCS file: /var/lib/cvs/dovecot/src/lib-dict/dict-sql.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- dict-sql.c	14 Jan 2006 18:47:27 -0000	1.5
+++ dict-sql.c	26 Jan 2006 22:01:07 -0000	1.6
@@ -1,6 +1,7 @@
 /* Copyright (C) 2005 Timo Sirainen */
 
 #include "lib.h"
+#include "array.h"
 #include "istream.h"
 #include "str.h"
 #include "strescape.h"
@@ -288,15 +289,16 @@
 
 void dict_sql_register(void)
 {
-	int i, count;
+        const struct sql_db *const *drivers;
+	unsigned int i, count;
 
 	/* @UNSAFE */
-	for (count = 0; sql_db_drivers[count] != NULL; count++) ;
-	dict_sql_classes = i_new(struct dict, count);
+	drivers = array_get(&sql_drivers, &count);
+	dict_sql_classes = i_new(struct dict, count + 1);
 
 	for (i = 0; i < count; i++) {
 		dict_sql_classes[i] = sql_dict;
-		dict_sql_classes[i].name = sql_db_drivers[i]->name;
+		dict_sql_classes[i].name = drivers[i]->name;
 
 		dict_class_register(&dict_sql_classes[i]);
 	}
@@ -306,7 +308,7 @@
 {
 	int i;
 
-	for (i = 0; sql_db_drivers[i] != NULL; i++)
+	for (i = 0; dict_sql_classes[i].name != NULL; i++)
 		dict_class_unregister(&dict_sql_classes[i]);
 	i_free(dict_sql_classes);
 }



More information about the dovecot-cvs mailing list