removed "lcr query", use "isdninfo" instead.
[lcr.git] / main.c
diff --git a/main.c b/main.c
index 931ac2a..49d7fe4 100644 (file)
--- a/main.c
+++ b/main.c
@@ -26,11 +26,7 @@ struct timezone now_tz;
                now_tm = localtime(&now); \
        }
 
-#ifdef SOCKET_MISDN
 FILE *debug_fp = NULL;
-#else
-int global_debug = 0;
-#endif
 int quit=0;
 
 #if 0
@@ -72,13 +68,8 @@ void debug(const char *function, int line, char *prefix, char *buffer)
                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)
@@ -91,26 +82,14 @@ void debug(const char *function, int line, char *prefix, char *buffer)
                        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
                }
        }
 
@@ -121,7 +100,7 @@ void debug(const char *function, int line, char *prefix, char *buffer)
 }
 
 
-void _printdebug(const char *function, int line, unsigned long mask, const char *fmt, ...)
+void _printdebug(const char *function, int line, unsigned int mask, const char *fmt, ...)
 {
        char buffer[4096];
        va_list args;
@@ -176,7 +155,7 @@ void sighandler(int sigset)
                return;
        if (!quit)
        {
-               quit=1;
+               quit = sigset;
                /* set scheduler & priority */
                if (options.schedule > 1)
                {
@@ -185,7 +164,7 @@ void sighandler(int sigset)
                        sched_setscheduler(0, SCHED_OTHER, &schedp);
                }
                fprintf(stderr, "LCR: Signal received: %d\n", sigset);
-               PERROR("Signal received: %d\n", sigset);
+               PDEBUG(DEBUG_LOG, "Signal received: %d\n", sigset);
        }
 }
 
@@ -207,7 +186,8 @@ int main(int argc, char *argv[])
        struct sched_param      schedp;
        char                    *debug_prefix = "alloc";
        int                     created_mutexd = 0,/* created_mutext = 0,*/ created_mutexe = 0,
-                               created_lock = 0, created_signal = 0, created_debug = 0;
+                               created_lock = 0, created_signal = 0, created_debug = 0,
+                               created_misdn = 0;
        int                     idletime = 0, idlecheck = 0;
        char                    tracetext[256];
 
@@ -295,18 +275,23 @@ int main(int argc, char *argv[])
        /* query available isdn ports */
        if (!(strcasecmp(argv[1],"query")))
        {
-               mISDN_port_info();
+               fprintf(stderr, "-> Using 'isdninfo'\n");
+               system("isdninfo");
                ret = 0;
                goto free;
        }
 
        /* read options */
        if (read_options() == 0)
+       {
+               PERROR("%s", options_error);
                goto free;
+       }
 
        /* init mISDN */
        if (mISDN_initialize() < 0)
                goto free;
+       created_misdn = 1;
        created_debug = 1;
 
        /* read ruleset(s) */
@@ -657,8 +642,8 @@ BUDETECT
        SPRINT(tracetext, "%s terminated", NAME);
        printf("%s\n", tracetext);
        start_trace(0, NULL, NULL, NULL, 0, 0, 0, tracetext);
-       if (ret)
-               add_trace("error", NULL, "%d", ret);
+       if (quit)
+               add_trace("signal", NULL, "%d", quit);
        end_trace();
        ret=0;
 
@@ -751,7 +736,8 @@ free:
                        fprintf(stderr, "cannot destroy 'PDEBUG' mutex\n");
 
        /* deinitialize mISDN */
-       mISDN_deinitialize();
+       if (created_misdn)
+               mISDN_deinitialize();
 
        /* display memory leak */
 #define MEMCHECK(a, b) \