[Freeswitch-svn] [commit] r2800 - freeswitch/branches/voctel/src/mod/applications/mod_phonecard

Freeswitch SVN voctel at freeswitch.org
Sat Sep 23 02:15:57 EDT 2006


Author: voctel
Date: Sat Sep 23 02:15:56 2006
New Revision: 2800

Modified:
   freeswitch/branches/voctel/src/mod/applications/mod_phonecard/mod_phonecard.c
   freeswitch/branches/voctel/src/mod/applications/mod_phonecard/mod_phonecard.h

Log:
doing some compile fixes

Modified: freeswitch/branches/voctel/src/mod/applications/mod_phonecard/mod_phonecard.c
==============================================================================
--- freeswitch/branches/voctel/src/mod/applications/mod_phonecard/mod_phonecard.c	(original)
+++ freeswitch/branches/voctel/src/mod/applications/mod_phonecard/mod_phonecard.c	Sat Sep 23 02:15:56 2006
@@ -36,7 +36,7 @@
 //-- PostgreSQL 
 #include <libpq-fe.h>
 
-static const char modname[] = "mod_voctel";
+static const char modname[] = "mod_phonecard";
 static const char global_app_name[] = "phonecard";
 static char *global_cf_name = "phonecard.conf";
 
@@ -50,14 +50,60 @@
 
 static int db_connected = 0;
 
-/* PostgreSQL declarations */
+//-- PostgreSQL declarations
 PGconn *DBConn;
 
 switch_mutex_t *db_lock;
 
+//-- function used to connect/verify database connection
+int db_connected(void) {
+    PGresult *result;
+
+	//-- check to see if we are already connected
+	if (dbconnected) {
+        result = PQexec(DBConn,"SELECT 1");
+
+        PQclear(result);
+
+        //-- check for connectivity
+        if (PQstatus(DBConn)!= CONNECTION_OK) {
+            dbconnected = 0;
+
+            PQreset(DBConn);
+
+            //-- log the database error
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "FATAL - Database connection lost '%s'\n", db_hostname);
+        }
+        else {
+			db_connected = 1;
+        }
+	}
+	else {
+		//-- we are not connected - so make the initial connection
+        DBConn = PQsetdbLogin(dbhost, dbport, NULL, NULL, dbname, dbuser, dbpass);
+        if (PQstatus(DBConn) != CONNECTION_OK) {
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "FATAL - Couldn't connect to database server '%s'. \n", db_hostname);
+			db_connected = 0;
+		}
+		else {
+            switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Successfully connected to database '%s:%s'.\n", db_hostname, db_name);
+			db_connected = 1;
+		}
+	}
+
+	return db_connected;
+}
+
 //-- main application routine
 static void phonecard_main(switch_core_session_t *session, char *data)
 {
+	//--
+	if (!mydata) {
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Pool Failure\n");
+		return;
+	}
+
+
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Hello World!\n");
 }
 

Modified: freeswitch/branches/voctel/src/mod/applications/mod_phonecard/mod_phonecard.h
==============================================================================
--- freeswitch/branches/voctel/src/mod/applications/mod_phonecard/mod_phonecard.h	(original)
+++ freeswitch/branches/voctel/src/mod/applications/mod_phonecard/mod_phonecard.h	Sat Sep 23 02:15:56 2006
@@ -30,11 +30,9 @@
  * mod_phonecard.h -- Calling Card Module
  *
  */
-/*! \brief Function used to connect to MS SQL */
-extern int mssql_connect(void);
 
-/*! \brief Function used to connect to MS SQL */
-extern int mssql_disconnect(void);
+/*! \brief Function used to connect to PostgreSQL */
+extern int db_connected(void);
 
 
 



More information about the Freeswitch-svn mailing list