X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=main.c;h=35b972f30408f2d1aa1bcebe21569dc311ad5267;hp=7290af9773f1a73595162c6c77b4538bdaab5008;hb=f3b94bf3a9599359805eaf20f3b036272c7af522;hpb=f851ca0d9e22673b7cc0a7c2f539c9d51b9b77f8 diff --git a/main.c b/main.c index 7290af9..35b972f 100644 --- a/main.c +++ b/main.c @@ -187,7 +187,6 @@ int main(int argc, char *argv[]) #endif char tracetext[256], lock[128]; char options_error[256]; - int polling = 0; #if 0 /* init fdset */ @@ -270,7 +269,6 @@ int main(int argc, char *argv[]) PERROR("%s", options_error); goto free; } - polling = options.polling; #ifdef WITH_MISDN /* init mISDN */ @@ -332,11 +330,13 @@ int main(int argc, char *argv[]) nooutput = 1; /* write pid file */ - pidfile = fopen("/var/run/lcr.pid","w"); + SPRINT(lock, "%s/lcr.pid", options.lock); + pidfile = fopen(lock,"w"); if (pidfile) { fprintf(pidfile, "%d\n", getpid()); fclose(pidfile); - } + } else + fprintf(stderr, "Failed to create PID file: %s\n", lock); } else /* if not start */ if (!!strcasecmp(argv[1],"start")) { @@ -370,7 +370,6 @@ int main(int argc, char *argv[]) #ifdef WITH_SIP /* init SIP globals */ sip_init(); - polling = 1; /* must poll, because of SIP events */ #endif #ifdef WITH_SS5 @@ -490,7 +489,11 @@ init is done when interface is up usleep(10000); } #else +#ifdef WITH_SIP + if (options.polling || any_sip_interface) { +#else if (options.polling) { +#endif if (!select_main(1, NULL, NULL, NULL)) { #ifdef WITH_SIP /* FIXME: check if work was done */ @@ -579,8 +582,10 @@ free: if (created_lock) flock(lockfd, LOCK_UN); if (lockfd >= 0) { - chmod(lock, 0700); - unlink(lock); + if (created_lock) { + chmod(lock, 0700); + unlink(lock); + } close(lockfd); } @@ -625,12 +630,6 @@ exit is done when interface is down sip_exit(); #endif -#ifdef WITH_MISDN - /* close loopback, if used by GSM or remote */ - if (mISDNloop.sock > -1) - mISDNloop_close(); -#endif - /* display memory leak */ #define MEMCHECK(a, b) \ if (b) { \