diff options
Diffstat (limited to 'addons/ooh323c/src/ootrace.c')
-rw-r--r-- | addons/ooh323c/src/ootrace.c | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/addons/ooh323c/src/ootrace.c b/addons/ooh323c/src/ootrace.c new file mode 100644 index 000000000..0fd5a68ed --- /dev/null +++ b/addons/ooh323c/src/ootrace.c @@ -0,0 +1,131 @@ +/* + * 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; +} + |