Check if pid file did not open.
[lcr.git] / main.c
diff --git a/main.c b/main.c
index 2335067..51da4a1 100644 (file)
--- a/main.c
+++ b/main.c
@@ -268,8 +268,8 @@ int main(int argc, char *argv[])
        /* query available isdn ports */
        if (!(strcasecmp(argv[1],"query")))
        {
-               fprintf(stderr, "-> Using 'isdninfo'\n");
-               system("isdninfo");
+               fprintf(stderr, "-> Using 'misdn_info'\n");
+               system("misdn_info");
                ret = 0;
                goto free;
        }
@@ -314,6 +314,7 @@ int main(int argc, char *argv[])
        if (!(strcasecmp(argv[1],"fork")))
        {
                pid_t pid;
+               FILE *pidfile;
 
                /* do daemon fork */
                pid = fork();
@@ -344,6 +345,14 @@ int main(int argc, char *argv[])
                        exit(0);
                }
                nooutput = 1;
+
+               /* write pid file */
+               pidfile = fopen("/var/run/lcr.pid","w");
+               if (pidfile)
+               {
+                       fprintf(pidfile, "%d\n", getpid());
+                       fclose(pidfile);
+               }
        } else
        /* if not start */
        if (!!strcasecmp(argv[1],"start"))
@@ -410,16 +419,16 @@ int main(int argc, char *argv[])
                switch(errno)
                {
                        case ENOMEM:
-                       fprintf(stderr, "Warning: Not enough memory to lock paging, exitting...\n");
+                       fprintf(stderr, "Warning: Not enough memory to lock paging.\n");
                        break;
                        case EPERM:
-                       fprintf(stderr, "Warning: No permission to lock paging, exitting...\n");
+                       fprintf(stderr, "Warning: No permission to lock paging.\n");
                        break;
                        case EFAULT:
-                       fprintf(stderr, "Warning: 'Bad address' while locking paging, exitting...\n");
+                       fprintf(stderr, "Warning: 'Bad address' while locking paging.\n");
                        break;
                        default:
-                       fprintf(stderr, "Warning: Unknown error %d while locking paging, exitting...\n", errno);
+                       fprintf(stderr, "Warning: Unknown error %d while locking paging.\n", errno);
                }
        }
 
@@ -445,7 +454,7 @@ int main(int argc, char *argv[])
 
        /*** main loop ***/
        SPRINT(tracetext, "%s %s started, waiting for calls...", NAME, VERSION_STRING);
-       start_trace(0, NULL, NULL, NULL, 0, 0, 0, tracetext);
+       start_trace(-1, NULL, NULL, NULL, 0, 0, 0, tracetext);
        printf("%s\n", tracetext);
        end_trace();
        GET_NOW();
@@ -635,7 +644,7 @@ BUDETECT
        }
        SPRINT(tracetext, "%s terminated", NAME);
        printf("%s\n", tracetext);
-       start_trace(0, NULL, NULL, NULL, 0, 0, 0, tracetext);
+       start_trace(-1, NULL, NULL, NULL, 0, 0, 0, tracetext);
        if (quit)
                add_trace((char *)"signal", NULL, "%d", quit);
        end_trace();
@@ -742,7 +751,7 @@ free:
        if (b) \
        { \
                SPRINT(tracetext, a, NAME); \
-               start_trace(0, NULL, NULL, NULL, 0, 0, 0, tracetext); \
+               start_trace(-1, NULL, NULL, NULL, 0, 0, 0, tracetext); \
                if (ret) add_trace("blocks", NULL, "%d", b); \
                end_trace(); \
                printf("\n******************************\n\007"); \