dect
/
asterisk
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
asterisk/addons/ooh323c/src/ootrace.c

132 lines
3.3 KiB
C

/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
#include <stdarg.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include "ootypes.h"
#include "ootrace.h"
#include "ooCommon.h"
#include "ooCapability.h"
#include "ooq931.h"
#include "ooh245.h"
#include "ooh323ep.h"
/** Global endpoint structure */
extern OOH323EndPoint gH323ep;
static OOUINT32 gs_traceLevel = TRACELVL;
void ooSetTraceThreshold(OOUINT32 traceLevel)
{
gs_traceLevel = traceLevel;
}
void ooTrace(OOUINT32 traceLevel, const char * fmtspec, ...)
{
va_list arglist;
char logMessage[MAXLOGMSGLEN];
if(traceLevel > gs_traceLevel) return;
va_start (arglist, fmtspec);
/* memset(logMessage, 0, MAXLOGMSGLEN);*/
vsprintf(logMessage, fmtspec, arglist);
va_end(arglist);
ooTraceLogMessage(logMessage);
}
void ooTraceLogMessage(const char * logMessage)
{
char timeString[100];
char currtime[3];
static int lasttime=25;
int printDate =0;
static int printTime=1;
#ifdef _WIN32
SYSTEMTIME systemTime;
GetLocalTime(&systemTime);
GetTimeFormat(LOCALE_SYSTEM_DEFAULT,0, &systemTime, "HH':'mm':'ss",
timeString, 100);
GetTimeFormat(LOCALE_SYSTEM_DEFAULT,0, &systemTime, "H", currtime, 3);
if(lasttime> atoi(currtime))
printDate=1;
lasttime = atoi(currtime);
#else
struct tm *ptime;
char dateString[15];
time_t t = time(NULL);
ptime = localtime(&t);
strftime(timeString, 100, "%H:%M:%S", ptime);
strftime(currtime, 3, "%H", ptime);
if(lasttime>atoi(currtime))
printDate = 1;
lasttime = atoi(currtime);
#endif
#ifdef _WIN32
if(printDate)
{
printDate = 0;
fprintf(gH323ep.fptraceFile, "---------Date %d/%d/%d---------\n",
systemTime.wMonth, systemTime.wDay, systemTime.wYear);
}
if(printTime) {
fprintf(gH323ep.fptraceFile, "%s:%03d %s", timeString,
systemTime.wMilliseconds, logMessage);
}
else
fprintf(gH323ep.fptraceFile, "%s", logMessage);
fflush(gH323ep.fptraceFile);
#else
if(printDate)
{
printDate = 0;
strftime(dateString, 15, "%m/%d/%Y", ptime);
fprintf(gH323ep.fptraceFile, "---------Date %s---------\n",
dateString);
}
if(printTime) {
struct timeval systemTime;
gettimeofday(&systemTime, NULL);
fprintf(gH323ep.fptraceFile, "%s:%03ld %s", timeString,
systemTime.tv_usec/1000, logMessage);
}
else
fprintf(gH323ep.fptraceFile, "%s", logMessage);
fflush(gH323ep.fptraceFile);
#endif
if(strchr(logMessage, '\n'))
printTime = 1;
else
printTime = 0;
}
int ooLogAsn1Error(int stat, const char * fname, int lno)
{
OOTRACEERR4("Asn1Error: %d at %s:%d\n", stat, fname, lno);
return stat;
}