Exemplo n.º 1
0
   void tearDown()
      {
         OdbcHandle handle = NULL;
         
         CPPUNIT_ASSERT((handle=odbcConnect(DATABASE_NAME,
                                            "localhost",
                                            POSTGRESQL_USER,
                                            "{PostgreSQL}"))!=NULL);
         if (handle)
         {                                                     
            char sqlStatement[256];            
            // Clear tables
            sprintf(sqlStatement, "DELETE FROM call_state_events *;");
            CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement));
            sprintf(sqlStatement, "DELETE FROM observer_state_events *;");
            CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement));             
         }
#ifdef ODBC_LOGGING         
         OsSysLog::flush();
#endif         
      }
Exemplo n.º 2
0
/*------------
 !                      _ASK_SQL()
 !-----------------------------------------------------------------------*/
short PD_style _ASK_SQL( OpndType *lpOpnd, short ParaNum, \
					short *OpndTop, short *CurState )
{
    char  *szSQL = NULL, *sz;
    int   i, j;

    if( *CurState == 0 || *CurState == LASTWORKTIMEOFACTION )
    {
	*OpndTop -= ParaNum;
	return  0;
    }

    j = 0;
    for(i = 0;  i < ParaNum;  i++) {
	sz = xGetOpndString(&lpOpnd[i]);
	j += strlen(sz) + 2;

	if( szSQL == NULL )
	    szSQL = zeroMalloc(j);
	else
	    szSQL = realloc(szSQL, j);

	strcat(szSQL, sz);
    }

    if( szSQL != NULL ) {
	sz = odbcExecute(szSQL);
	free( szSQL );
    } else {
	sz = "szSQL";
    }

    if( sz != NULL ) {
	ErrorSet.xERROR = iOPrError;
	strZcpy(ErrorSet.string, sz, XES_LENGTH);
	*OpndTop -= ParaNum;
	return  1;

    }

    *OpndTop -= ParaNum;    /* maintain the opnd stack */

    return  0;

} /* end of function _ASK_SQL() */
Exemplo n.º 3
0
 void testOdbcValidateObserverData()
    {
       OdbcHandle handle = NULL;
       char sqlStatement[256];
    
       CPPUNIT_ASSERT((handle=odbcConnect(DATABASE_NAME,
                                          "localhost",
                                          POSTGRESQL_USER,
                                          "{PostgreSQL}"))!=NULL);
       
       if (handle)
       {
          databaseWrite(handle);
          int cols;            
          
          // Get data from call_state_observer_events
          sprintf(sqlStatement, "SELECT * FROM observer_state_events;");
          CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement));
          
          CPPUNIT_ASSERT((cols=odbcResultColumns(handle)) == 6);
          
          CPPUNIT_ASSERT(odbcGetNextRow(handle));
          
          char buffer[256];
          
          CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 2, buffer, 256));
          CPPUNIT_ASSERT(strcmp(buffer, "10.1.20.3:5060") == 0);
          CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 3, buffer, 256));
          CPPUNIT_ASSERT(strcmp(buffer, "0") == 0);
          CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 4, buffer, 256));
          // When returning a timestamp as string data the fractional component
          // is truncated - this is expected behavior
          CPPUNIT_ASSERT(strcmp(buffer, "2006-03-10 12:59:00") == 0);            
   
          CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 5, buffer, 256));
          CPPUNIT_ASSERT(strcmp(buffer, "101") == 0);
          CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 6, buffer, 256));
          CPPUNIT_ASSERT(strcmp(buffer, "AuthProxyCseObserver") == 0);    
                         
          CPPUNIT_ASSERT(odbcDisconnect(handle));                           
       }
    }
bool CallStateEventWriter_DB::writeLog(const char* event)
{
   bool bRet = false;

   if (mbWriteable)
   {
      if (mHandle)
      {
         odbcExecute(mHandle, event);
         bRet = true;
      }
      Os::Logger::instance().log(FAC_CDR, PRI_DEBUG,
                    "%s::writeLog", ModuleName);
   }
   else
   {
      Os::Logger::instance().log(FAC_CDR, PRI_ERR,
                    "%s::writeLog log %s not writeable", ModuleName, mLogName.data());
   }
   return bRet;
}
Exemplo n.º 5
0
 void databaseWrite(OdbcHandle handle)
    {
       if (handle)
       {
          char sqlStatement[256];            
          // Clear tables
          sprintf(sqlStatement, "DELETE FROM call_state_events *;");
          CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement));
          sprintf(sqlStatement, "DELETE FROM observer_state_events *;");
          CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement));            
          
          sprintf(sqlStatement,
                  "INSERT INTO observer_state_events VALUES (DEFAULT,"
                  "\'10.1.20.3:5060\',"
                  "0,"
                  "timestamp \'2006-03-10 12:59:00.666\',"
                  "101,"
                  "\'AuthProxyCseObserver\');");
               
          CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement));
     
          sprintf(sqlStatement,
                  "INSERT INTO call_state_events VALUES (DEFAULT,"
                  "\'10.1.20.3:5060\',"
                  "1,"
                  "timestamp \'2006-03-10 13:00:00.123\',"
                  "\'R\',"
                  "12,"
                  "\'call-111111\',"
                  "\'12345\',"
                  "\'67890\',"
                  "\'sip:[email protected]\',"
                  "\'sip:[email protected]\',"
                  "\'10.1.1.71\',"
                  "\'refer-to\',"
                  "\'referred-by\',"                    
                  "0,"
                  "\'No Reason\',"
                  "\'\');");
               
          CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement));
          
          sprintf(sqlStatement,
                  "INSERT INTO call_state_events VALUES (DEFAULT,"
                  "\'10.1.20.3:5060\',"
                  "2,"
                  "timestamp \'2006-03-10 13:00:10.573\',"
                  "\'S\',"
                  "13,"
                  "\'call-111112\',"
                  "\'54321\',"
                  "\'09876\',"
                  "\'sip:[email protected]\',"
                  "\'sip:[email protected]\',"
                  "\'10.1.20.71\',"
                  "\'refer-to-2\',"
                  "\'referred-by-2\',"                    
                  "0,"
                  "\'No Reason-2\',"
                  "\'\');");
               
          CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement)); 
       }
    }
Exemplo n.º 6
0
   void testOdbcValidateEventData()
      {
         OdbcHandle handle = NULL;
         char sqlStatement[256];
      
         CPPUNIT_ASSERT((handle=odbcConnect(DATABASE_NAME,
                                            "localhost",
                                            POSTGRESQL_USER,
                                            "{PostgreSQL}"))!=NULL);
         
         if (handle)
         {
            databaseWrite(handle);
            
            int cols;           
          
            // Get data from call_state_events
            sprintf(sqlStatement, "SELECT * FROM call_state_events;");
            CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement));
            
            CPPUNIT_ASSERT((cols=odbcResultColumns(handle)) == 17);   

            CPPUNIT_ASSERT(odbcGetNextRow(handle));
            
            char buffer[256];            

            // First record
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 2, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "10.1.20.3:5060") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 3, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "1") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 4, buffer, 256));
            // When returning a timestamp as string data the fractional component
            // is truncated - this is expected behavior
            CPPUNIT_ASSERT(strcmp(buffer, "2006-03-10 13:00:00") == 0);            
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 5, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "R") == 0);            
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 7, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "call-111111") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 8, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "12345") == 0);    
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 9, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "67890") == 0);               
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 10, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "sip:[email protected]") == 0);               
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 11, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "sip:[email protected]") == 0);                                       
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 12, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "10.1.1.71") == 0);               
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 13, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "refer-to") == 0);   
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 14, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "referred-by") == 0);                                                   
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 15, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "0") == 0);                           
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 16, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "No Reason") == 0);                           
            
            CPPUNIT_ASSERT(odbcGetNextRow(handle));            

            // Second record            
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 2, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "10.1.20.3:5060") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 3, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "2") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 4, buffer, 256));
            // When returning a timestamp as string data the fractional component
            // is truncated - this is expected behavior
            CPPUNIT_ASSERT(strcmp(buffer, "2006-03-10 13:00:10") == 0);            
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 5, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "S") == 0);            
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 7, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "call-111112") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 8, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "54321") == 0);    
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 9, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "09876") == 0);               
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 10, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "sip:[email protected]") == 0);               
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 11, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "sip:[email protected]") == 0);                                       
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 12, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "10.1.20.71") == 0);               
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 13, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "refer-to-2") == 0);
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 14, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "referred-by-2") == 0);                  
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 15, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "0") == 0);                           
            CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 16, buffer, 256));
            CPPUNIT_ASSERT(strcmp(buffer, "No Reason-2") == 0);                                       
            
            // End of rows 
            CPPUNIT_ASSERT(!odbcGetNextRow(handle));
           
            CPPUNIT_ASSERT(odbcDisconnect(handle));
         }
      }