2
0
Эх сурвалжийг харах

- Database capability check in AVP
- Typo fixed

Jan Janak 21 жил өмнө
parent
commit
d6cfddeaca
3 өөрчлөгдсөн 11 нэмэгдсэн , 3 устгасан
  1. 1 0
      db/db.h
  2. 4 3
      db/db_cap.h
  3. 6 0
      db/db_fifo.c

+ 1 - 0
db/db.h

@@ -40,6 +40,7 @@
 #include "db_con.h"
 #include "db_con.h"
 #include "db_row.h"
 #include "db_row.h"
 #include "db_res.h"
 #include "db_res.h"
+#include "db_cap.h"
 
 
 
 
 /*
 /*

+ 4 - 3
db/db_cap.h

@@ -42,16 +42,17 @@ typedef enum db_cap {
 
 
 
 
 /*
 /*
- * All database functions except raw_query
+ * All database capabilities except raw_query which should be checked
+ * separately when needed
  */
  */
-#define DB_CAP_ALL (DB_CAP_QUERY | DB_CAP_INSERT | DB_CAP_DELETE | DB_CAP_UPDATE)	
+#define DB_CAP_ALL (DB_CAP_QUERY | DB_CAP_INSERT | DB_CAP_DELETE | DB_CAP_UPDATE)
 
 
 
 
 /*
 /*
  * True if all the capabilities in cpv are supported by module
  * True if all the capabilities in cpv are supported by module
  * represented by dbf, false otherwise
  * represented by dbf, false otherwise
  */
  */
-#define DB_CAPABILITY(dbf, cpv) ((dbf)->cap & (cpv)) == (cpv))
+#define DB_CAPABILITY(dbf, cpv) (((dbf).cap & (cpv)) == (cpv))
 
 
 
 
 #endif /* DB_CAP_H */
 #endif /* DB_CAP_H */

+ 6 - 0
db/db_fifo.c

@@ -567,6 +567,12 @@ static inline void print_res(db_res_t* res, FILE *rpl)
 int init_db_fifo(char* fifo_db_url)
 int init_db_fifo(char* fifo_db_url)
 {
 {
 	if ( bind_dbmod(fifo_db_url, &fifo_dbf)==0 ) {
 	if ( bind_dbmod(fifo_db_url, &fifo_dbf)==0 ) {
+		if (!DB_CAPABILITY(fifo_dbf, DB_CAP_ALL | DB_CAP_RAW_QUERY)) {
+			LOG(L_ERR, "ERROR: init_db_fifo: Database module does "
+			    "not implement all function needed by AVP code\n");
+			return -1;
+		}
+
 		if ( (fifo_db_con=fifo_dbf.init( fifo_db_url ))==0) {
 		if ( (fifo_db_con=fifo_dbf.init( fifo_db_url ))==0) {
 			/* connection failed */
 			/* connection failed */
 			LOG(L_ERR,"ERROR: init_db_fifo: unable to connect to database -> "
 			LOG(L_ERR,"ERROR: init_db_fifo: unable to connect to database -> "