** **
\*****************************************************************************/
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <signal.h>
-#include <stdarg.h>
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <sys/file.h>
-#include <errno.h>
-#include <sys/mman.h>
-#include <sys/resource.h>
#include "main.h"
MESSAGES
now_tm = localtime(&now); \
}
+#ifdef SOCKET_MISDN
+FILE *debug_fp = NULL;
+#else
int global_debug = 0;
+#endif
int quit=0;
#if 0
pthread_mutex_t mutexd; // debug output mutex
//pthread_mutex_t mutext; // trace output mutex
pthread_mutex_t mutexe; // error output mutex
+pthread_mutex_t mutex_lcr; // lcr process mutex
int memuse = 0;
int mmemuse = 0;
last_debug = debug_count;
if (!nooutput)
printf("\033[34m--------------------- %04d.%02d.%02d %02d:%02d:%02d %06d\033[36m\n", now_tm->tm_year+1900, now_tm->tm_mon+1, now_tm->tm_mday, now_tm->tm_hour, now_tm->tm_min, now_tm->tm_sec, debug_count%1000000);
+#ifdef SOCKET_MISDN
+ if (debug_fp)
+ fprintf(debug_fp, "--------------------- %04d.%02d.%02d %02d:%02d:%02d %06d\n", now_tm->tm_year+1900, now_tm->tm_mon+1, now_tm->tm_mday, now_tm->tm_hour, now_tm->tm_min, now_tm->tm_sec, debug_count%1000000);
+#else
if (options.deb&DEBUG_LOG && global_debug)
dprint(DBGM_MAN, 0, "--------------------- %04d.%02d.%02d %02d:%02d:%02d %06d\n", now_tm->tm_year+1900, now_tm->tm_mon+1, now_tm->tm_mday, now_tm->tm_hour, now_tm->tm_min, now_tm->tm_sec, debug_count%1000000);
+#endif
}
if (!nooutput)
printf("%s", buffer);
}
+#ifdef SOCKET_MISDN
+ if (debug_fp)
+#else
if (options.deb&DEBUG_LOG && global_debug)
+#endif
{
if (debug_newline)
{
if (function)
+#ifdef SOCKET_MISDN
+ fprintf(debug_fp, "%s%s(in %s() line %d): %s", prefix?prefix:"", prefix?" ":"", function, line, buffer);
+#else
dprint(DBGM_MAN, 0, "%s%s(in %s() line %d): %s", prefix?prefix:"", prefix?" ":"", function, line, buffer);
+#endif
else
+#ifdef SOCKET_MISDN
+ fprintf(debug_fp, "%s%s: %s", prefix?prefix:"", prefix?" ":"", buffer);
+#else
dprint(DBGM_MAN, 0, "%s%s: %s", prefix?prefix:"", prefix?" ":"", buffer);
+#endif
}
}
memset(lcr_fdset, 0, sizeof(lcr_fdset));
#endif
+ /* lock LCR process */
+ pthread_mutex_lock(&mutex_lcr);
+
/* current time */
GET_NOW();
quit = 0;
while(!quit)
{
+
last_d = now_d;
GET_NOW();
if (now_d-last_d > 1.0)
/* did we do nothing? so we wait to give time to other processes */
if (all_idle)
{
+ pthread_mutex_unlock(&mutex_lcr); // unlock LCR
debug_usleep(4000, __FILE__, __LINE__, now_tm->tm_hour, now_tm->tm_min, now_tm->tm_sec);
+ pthread_mutex_lock(&mutex_lcr); // lock LCR
idletime += 4000;
}
}
if (options.schedule > 1)
{
memset(&schedp, 0, sizeof(schedp));
- schedp.sched_priority = 0;
+ schedp.sched_priority = options.schedule;
sched_setscheduler(0, SCHED_OTHER, &schedp);
}
/* reset signals */
/* deinitialize mISDN */
mISDN_deinitialize();
- global_debug = 0;
/* display memory leak */
#define MEMCHECK(a, b) \
MEMCHECK("file descriptor(s) left",fduse)
MEMCHECK("file handler(s) left",fhuse)
+ /* unlock LCR process */
+ pthread_mutex_unlock(&mutex_lcr);
+
/* take me out */
return(ret);
}