Use "local" instead of "system" header file inclusion.
[asterisk/asterisk.git] / addons / ooh323c / src / ootrace.c
1 /*
2  * Copyright (C) 2004-2005 by Objective Systems, Inc.
3  *
4  * This software is furnished under an open source license and may be 
5  * used and copied only in accordance with the terms of this license. 
6  * The text of the license may generally be found in the root 
7  * directory of this installation in the COPYING file.  It 
8  * can also be viewed online at the following URL:
9  *
10  *   http://www.obj-sys.com/open/license.html
11  *
12  * Any redistributions of this file including modified versions must 
13  * maintain this copyright notice.
14  *
15  *****************************************************************************/
16
17 #include "asterisk.h"
18 #include "asterisk/lock.h"
19 #include <stdarg.h>
20 #include <stdlib.h>
21 #include <stdio.h>
22 #include <time.h>
23
24 #include "ootypes.h"
25 #include "ootrace.h"
26 #include "ooCommon.h"
27 #include "ooCapability.h"
28 #include "ooq931.h"
29 #include "ooh245.h"
30 #include "ooh323ep.h"
31
32 /** Global endpoint structure */
33 extern OOH323EndPoint gH323ep;
34
35 static OOUINT32 gs_traceLevel = TRACELVL;
36
37 void ooSetTraceThreshold(OOUINT32 traceLevel)
38 {
39    gs_traceLevel = traceLevel;
40 }
41
42 void ooTrace(OOUINT32 traceLevel, const char * fmtspec, ...) __attribute__((format(printf, 2, 3)));
43
44 void ooTrace(OOUINT32 traceLevel, const char * fmtspec, ...) {
45    va_list arglist;
46    char logMessage[MAXLOGMSGLEN];
47    if(traceLevel > gs_traceLevel) return;
48    va_start (arglist, fmtspec);
49    /*   memset(logMessage, 0, MAXLOGMSGLEN);*/
50    vsprintf(logMessage, fmtspec, arglist);   
51    va_end(arglist);
52    ooTraceLogMessage(logMessage);
53 }
54
55 void ooTraceLogMessage(const char * logMessage)
56 {
57    char timeString[100];
58    char currtime[3];
59    static int lasttime=25;
60    int printDate =0;
61    static int printTime=1;
62    
63 #ifdef _WIN32
64    
65    SYSTEMTIME systemTime;
66    GetLocalTime(&systemTime);
67    GetTimeFormat(LOCALE_SYSTEM_DEFAULT,0, &systemTime, "HH':'mm':'ss", 
68                                                               timeString, 100);
69    GetTimeFormat(LOCALE_SYSTEM_DEFAULT,0, &systemTime, "H", currtime, 3);
70    if(lasttime> atoi(currtime))
71       printDate=1;
72    lasttime = atoi(currtime);
73    
74 #else
75    struct tm *ptime;
76    char dateString[10];
77    time_t t = time(NULL);
78    ptime = localtime(&t);
79    strftime(timeString, 100, "%H:%M:%S", ptime);
80    strftime(currtime, 3, "%H", ptime);
81    if(lasttime>atoi(currtime))
82        printDate = 1;
83    lasttime = atoi(currtime);   
84 #endif
85
86       
87 #ifdef _WIN32
88    if(printDate)
89    {
90       printDate = 0;
91       fprintf(gH323ep.fptraceFile, "---------Date %d/%d/%d---------\n",
92                       systemTime.wMonth, systemTime.wDay, systemTime.wYear);
93    }
94    if(printTime) {
95       fprintf(gH323ep.fptraceFile, "%s:%03d  %s", timeString, 
96               systemTime.wMilliseconds, logMessage);
97    }
98    else
99       fprintf(gH323ep.fptraceFile, "%s", logMessage);
100    
101    fflush(gH323ep.fptraceFile);
102 #else
103    if(printDate)
104    {
105       printDate = 0;
106       strftime(dateString, 10, "%d", ptime);
107       fprintf(gH323ep.fptraceFile, "---------Date %s---------\n", 
108               dateString);
109    }
110    if(printTime) {
111       struct timeval systemTime;
112       gettimeofday(&systemTime, NULL);
113       fprintf(gH323ep.fptraceFile, "%s:%03ld  %s", timeString, 
114                (long) systemTime.tv_usec/1000, logMessage);
115    }
116    else
117       fprintf(gH323ep.fptraceFile, "%s", logMessage);
118
119    fflush(gH323ep.fptraceFile);
120 #endif
121    
122    if(strchr(logMessage, '\n'))
123       printTime = 1;
124    else
125       printTime = 0;
126
127 }
128
129 int ooLogAsn1Error(int stat, const char * fname, int lno)
130 {
131    OOTRACEERR4("Asn1Error: %d at %s:%d\n", stat, fname, lno);
132    return stat;
133 }
134